{
  "item": [
    {
      "id": "5d994537-6deb-859b-8f97-ff4b838b478e",
      "name": "workspaces",
      "description": {
        "content": "Workspace management.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "f956d0ac-0b32-8b1e-8035-fa60ad772bd4",
          "name": "Get the current workspace",
          "request": {
            "name": "Get the current workspace",
            "description": {
              "content": "Returns the workspace the current credentials are scoped to: its ID, name, the ID of the organization that owns it, and its notification and logo settings. The organization's own name and members are not included. Requires at least read access to the workspace.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "workspace"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "1849f110-cd19-8d63-8c05-cebcdafb99cf",
              "name": "The current workspace.",
              "originalRequest": {
                "name": "Get the current workspace",
                "description": {
                  "content": "Returns the workspace the current credentials are scoped to: its ID, name, the ID of the organization that owns it, and its notification and logo settings. The organization's own name and members are not included. Requires at least read access to the workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "workspace"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"organization_id\": \"org_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"name\": \"Production\",\n  \"notification_emails\": {\n    \"operational\": [\n      \"alerts@example.com\"\n    ]\n  },\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1080d37b-bd5a-8449-8da3-a928f9b0ed6e",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get the current workspace",
                "description": {
                  "content": "Returns the workspace the current credentials are scoped to: its ID, name, the ID of the organization that owns it, and its notification and logo settings. The organization's own name and members are not included. Requires at least read access to the workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "workspace"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"organization_id\": \"org_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"name\": \"Production\",\n  \"notification_emails\": {\n    \"operational\": [\n      \"alerts@example.com\"\n    ]\n  },\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "45f8b446-ac25-8edf-8d46-85f850785d15",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get the current workspace",
                "description": {
                  "content": "Returns the workspace the current credentials are scoped to: its ID, name, the ID of the organization that owns it, and its notification and logo settings. The organization's own name and members are not included. Requires at least read access to the workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "workspace"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"organization_id\": \"org_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"name\": \"Production\",\n  \"notification_emails\": {\n    \"operational\": [\n      \"alerts@example.com\"\n    ]\n  },\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9ada58ea-c8a9-8233-85a1-cc914a402da0",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get the current workspace",
                "description": {
                  "content": "Returns the workspace the current credentials are scoped to: its ID, name, the ID of the organization that owns it, and its notification and logo settings. The organization's own name and members are not included. Requires at least read access to the workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "workspace"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"organization_id\": \"org_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"name\": \"Production\",\n  \"notification_emails\": {\n    \"operational\": [\n      \"alerts@example.com\"\n    ]\n  },\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "015353cd-eda6-87d6-83ed-6d839069333b",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get the current workspace",
                "description": {
                  "content": "Returns the workspace the current credentials are scoped to: its ID, name, the ID of the organization that owns it, and its notification and logo settings. The organization's own name and members are not included. Requires at least read access to the workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "workspace"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"organization_id\": \"org_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"name\": \"Production\",\n  \"notification_emails\": {\n    \"operational\": [\n      \"alerts@example.com\"\n    ]\n  },\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5f90e300-5d8e-8027-8543-4908857afb79",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get the current workspace",
                "description": {
                  "content": "Returns the workspace the current credentials are scoped to: its ID, name, the ID of the organization that owns it, and its notification and logo settings. The organization's own name and members are not included. Requires at least read access to the workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "workspace"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"organization_id\": \"org_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"name\": \"Production\",\n  \"notification_emails\": {\n    \"operational\": [\n      \"alerts@example.com\"\n    ]\n  },\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fa13acb5-2dca-8009-800d-e6e6e717fa5d",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get the current workspace",
                "description": {
                  "content": "Returns the workspace the current credentials are scoped to: its ID, name, the ID of the organization that owns it, and its notification and logo settings. The organization's own name and members are not included. Requires at least read access to the workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "workspace"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"organization_id\": \"org_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"name\": \"Production\",\n  \"notification_emails\": {\n    \"operational\": [\n      \"alerts@example.com\"\n    ]\n  },\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "ff5464cd-450b-85a4-81e8-6777eae7eaa9",
      "name": "realtime-apps",
      "description": {
        "content": "Realtime app management.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "ba84e00f-125f-81e5-8c44-58e864cacce9",
          "name": "List Realtime regions",
          "request": {
            "name": "List Realtime regions",
            "description": {
              "content": "Returns the regions a Realtime app can be created in. Use one of these identifiers as the `region` when creating an app.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "realtime",
                "regions"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "f9662299-5edd-8040-815c-db605e5e49fb",
              "name": "The available Realtime regions.",
              "originalRequest": {
                "name": "List Realtime regions",
                "description": {
                  "content": "Returns the regions a Realtime app can be created in. Use one of these identifiers as the `region` when creating an app.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "regions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"us1\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3d038566-009f-8252-85da-4efff75950d7",
              "name": "Bad request",
              "originalRequest": {
                "name": "List Realtime regions",
                "description": {
                  "content": "Returns the regions a Realtime app can be created in. Use one of these identifiers as the `region` when creating an app.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "regions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"us1\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e975b69f-5a92-89db-8a79-17c3ffac9879",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List Realtime regions",
                "description": {
                  "content": "Returns the regions a Realtime app can be created in. Use one of these identifiers as the `region` when creating an app.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "regions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"us1\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c7ac9dba-7847-8d4f-80bd-0974a6680569",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List Realtime regions",
                "description": {
                  "content": "Returns the regions a Realtime app can be created in. Use one of these identifiers as the `region` when creating an app.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "regions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"us1\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "61e0b890-34c4-8a26-8ecf-381fb57f5840",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List Realtime regions",
                "description": {
                  "content": "Returns the regions a Realtime app can be created in. Use one of these identifiers as the `region` when creating an app.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "regions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"us1\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c4f25d25-f6d6-8a13-8bd4-179653b42687",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List Realtime regions",
                "description": {
                  "content": "Returns the regions a Realtime app can be created in. Use one of these identifiers as the `region` when creating an app.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "regions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"us1\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "48b7b654-8bfa-8ffa-89bb-4918fbb934a7",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List Realtime regions",
                "description": {
                  "content": "Returns the regions a Realtime app can be created in. Use one of these identifiers as the `region` when creating an app.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "regions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"us1\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "21787a02-c1c2-8efb-8811-d2b50f1ab238",
          "name": "Create a Realtime app",
          "request": {
            "name": "Create a Realtime app",
            "description": {
              "content": "Provisions a new Realtime app for the workspace and returns it with the initial key. Store the key secret when you receive it because later responses do not include it. If you lose the secret, create a new key and revoke this one.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "realtime",
                "apps"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"chat-production\",\n  \"region\": \"eu1\",\n  \"connection_counting\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "56cd75d6-63b2-8f09-8c79-54246ef5c06f",
              "name": "Realtime app created. Includes the initial key's one-time secret.",
              "originalRequest": {
                "name": "Create a Realtime app",
                "description": {
                  "content": "Provisions a new Realtime app for the workspace and returns it with the initial key. Store the key secret when you receive it because later responses do not include it. If you lose the secret, create a new key and revoke this one.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"chat-production\",\n  \"region\": \"eu1\",\n  \"connection_counting\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"app_id\": 432557,\n  \"name\": \"chat-production\",\n  \"region\": \"us1\",\n  \"status\": \"active\",\n  \"key\": {\n    \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"key\": \"d0e95a856ddc1b09d4c8\",\n    \"secret\": \"862925e1991a8b6902f9\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f246b4e5-6e34-84ef-8fd0-ab9d1441f427",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create a Realtime app",
                "description": {
                  "content": "Provisions a new Realtime app for the workspace and returns it with the initial key. Store the key secret when you receive it because later responses do not include it. If you lose the secret, create a new key and revoke this one.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"chat-production\",\n  \"region\": \"eu1\",\n  \"connection_counting\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"app_id\": 432557,\n  \"name\": \"chat-production\",\n  \"region\": \"us1\",\n  \"status\": \"active\",\n  \"key\": {\n    \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"key\": \"d0e95a856ddc1b09d4c8\",\n    \"secret\": \"862925e1991a8b6902f9\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8002fc4e-2447-8393-8dcf-aa64bbecf9f5",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create a Realtime app",
                "description": {
                  "content": "Provisions a new Realtime app for the workspace and returns it with the initial key. Store the key secret when you receive it because later responses do not include it. If you lose the secret, create a new key and revoke this one.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"chat-production\",\n  \"region\": \"eu1\",\n  \"connection_counting\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"app_id\": 432557,\n  \"name\": \"chat-production\",\n  \"region\": \"us1\",\n  \"status\": \"active\",\n  \"key\": {\n    \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"key\": \"d0e95a856ddc1b09d4c8\",\n    \"secret\": \"862925e1991a8b6902f9\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4a3b59df-cd35-813a-878f-d38e77e39230",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create a Realtime app",
                "description": {
                  "content": "Provisions a new Realtime app for the workspace and returns it with the initial key. Store the key secret when you receive it because later responses do not include it. If you lose the secret, create a new key and revoke this one.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"chat-production\",\n  \"region\": \"eu1\",\n  \"connection_counting\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"app_id\": 432557,\n  \"name\": \"chat-production\",\n  \"region\": \"us1\",\n  \"status\": \"active\",\n  \"key\": {\n    \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"key\": \"d0e95a856ddc1b09d4c8\",\n    \"secret\": \"862925e1991a8b6902f9\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "27ce0825-ecaa-8904-8b3c-8867b8261c84",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create a Realtime app",
                "description": {
                  "content": "Provisions a new Realtime app for the workspace and returns it with the initial key. Store the key secret when you receive it because later responses do not include it. If you lose the secret, create a new key and revoke this one.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"chat-production\",\n  \"region\": \"eu1\",\n  \"connection_counting\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"app_id\": 432557,\n  \"name\": \"chat-production\",\n  \"region\": \"us1\",\n  \"status\": \"active\",\n  \"key\": {\n    \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"key\": \"d0e95a856ddc1b09d4c8\",\n    \"secret\": \"862925e1991a8b6902f9\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e9dfcc36-0917-8514-83e7-84bb021e1abc",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create a Realtime app",
                "description": {
                  "content": "Provisions a new Realtime app for the workspace and returns it with the initial key. Store the key secret when you receive it because later responses do not include it. If you lose the secret, create a new key and revoke this one.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"chat-production\",\n  \"region\": \"eu1\",\n  \"connection_counting\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 201,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"app_id\": 432557,\n  \"name\": \"chat-production\",\n  \"region\": \"us1\",\n  \"status\": \"active\",\n  \"key\": {\n    \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"key\": \"d0e95a856ddc1b09d4c8\",\n    \"secret\": \"862925e1991a8b6902f9\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "821dad93-043f-85f0-81dc-cf5886757ee6",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create a Realtime app",
                "description": {
                  "content": "Provisions a new Realtime app for the workspace and returns it with the initial key. Store the key secret when you receive it because later responses do not include it. If you lose the secret, create a new key and revoke this one.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"chat-production\",\n  \"region\": \"eu1\",\n  \"connection_counting\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"app_id\": 432557,\n  \"name\": \"chat-production\",\n  \"region\": \"us1\",\n  \"status\": \"active\",\n  \"key\": {\n    \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"key\": \"d0e95a856ddc1b09d4c8\",\n    \"secret\": \"862925e1991a8b6902f9\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "58b5b8ee-f387-8d4d-8abf-9809515ec7a2",
          "name": "List Realtime apps",
          "request": {
            "name": "List Realtime apps",
            "description": {
              "content": "Returns the workspace's Realtime apps as a paginated list, filterable by a case-insensitive `name` substring. Each entry carries the app's configuration and connection details (`app_id`, `region`) but never key secrets. Use [List a Realtime app's keys](https://bird.com/docs/api/reference/list-realtime-app-keys) and [Create a Realtime app key](https://bird.com/docs/api/reference/create-realtime-app-key) to manage them.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "realtime",
                "apps"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "name",
                  "value": "",
                  "description": "Substring match against the app name (case-insensitive)."
                },
                {
                  "disabled": true,
                  "key": "sort",
                  "value": "",
                  "description": "Field to sort by."
                },
                {
                  "disabled": false,
                  "key": "order",
                  "value": "desc",
                  "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                },
                {
                  "disabled": false,
                  "key": "include_total",
                  "value": "false",
                  "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "b60c7f6a-675b-8755-8218-2a70ae5f5aae",
              "name": "Paginated list of Realtime apps.",
              "originalRequest": {
                "name": "List Realtime apps",
                "description": {
                  "content": "Returns the workspace's Realtime apps as a paginated list, filterable by a case-insensitive `name` substring. Each entry carries the app's configuration and connection details (`app_id`, `region`) but never key secrets. Use [List a Realtime app's keys](https://bird.com/docs/api/reference/list-realtime-app-keys) and [Create a Realtime app key](https://bird.com/docs/api/reference/create-realtime-app-key) to manage them.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "name",
                      "value": "",
                      "description": "Substring match against the app name (case-insensitive)."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Field to sort by."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\",\n      \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"app_id\": 432557,\n      \"name\": \"chat-production\",\n      \"region\": \"us1\",\n      \"status\": \"active\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "379ee756-c721-875d-88e4-b0ef027dfe26",
              "name": "Bad request",
              "originalRequest": {
                "name": "List Realtime apps",
                "description": {
                  "content": "Returns the workspace's Realtime apps as a paginated list, filterable by a case-insensitive `name` substring. Each entry carries the app's configuration and connection details (`app_id`, `region`) but never key secrets. Use [List a Realtime app's keys](https://bird.com/docs/api/reference/list-realtime-app-keys) and [Create a Realtime app key](https://bird.com/docs/api/reference/create-realtime-app-key) to manage them.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "name",
                      "value": "",
                      "description": "Substring match against the app name (case-insensitive)."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Field to sort by."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\",\n      \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"app_id\": 432557,\n      \"name\": \"chat-production\",\n      \"region\": \"us1\",\n      \"status\": \"active\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ff400d81-3bd6-82a2-8e2d-4d5eed323a18",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List Realtime apps",
                "description": {
                  "content": "Returns the workspace's Realtime apps as a paginated list, filterable by a case-insensitive `name` substring. Each entry carries the app's configuration and connection details (`app_id`, `region`) but never key secrets. Use [List a Realtime app's keys](https://bird.com/docs/api/reference/list-realtime-app-keys) and [Create a Realtime app key](https://bird.com/docs/api/reference/create-realtime-app-key) to manage them.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "name",
                      "value": "",
                      "description": "Substring match against the app name (case-insensitive)."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Field to sort by."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\",\n      \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"app_id\": 432557,\n      \"name\": \"chat-production\",\n      \"region\": \"us1\",\n      \"status\": \"active\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "892e81f3-e3bd-83aa-81d8-6074ead7740b",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List Realtime apps",
                "description": {
                  "content": "Returns the workspace's Realtime apps as a paginated list, filterable by a case-insensitive `name` substring. Each entry carries the app's configuration and connection details (`app_id`, `region`) but never key secrets. Use [List a Realtime app's keys](https://bird.com/docs/api/reference/list-realtime-app-keys) and [Create a Realtime app key](https://bird.com/docs/api/reference/create-realtime-app-key) to manage them.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "name",
                      "value": "",
                      "description": "Substring match against the app name (case-insensitive)."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Field to sort by."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\",\n      \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"app_id\": 432557,\n      \"name\": \"chat-production\",\n      \"region\": \"us1\",\n      \"status\": \"active\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9757d82f-930e-85be-80db-b61d4e1bbd39",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List Realtime apps",
                "description": {
                  "content": "Returns the workspace's Realtime apps as a paginated list, filterable by a case-insensitive `name` substring. Each entry carries the app's configuration and connection details (`app_id`, `region`) but never key secrets. Use [List a Realtime app's keys](https://bird.com/docs/api/reference/list-realtime-app-keys) and [Create a Realtime app key](https://bird.com/docs/api/reference/create-realtime-app-key) to manage them.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "name",
                      "value": "",
                      "description": "Substring match against the app name (case-insensitive)."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Field to sort by."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\",\n      \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"app_id\": 432557,\n      \"name\": \"chat-production\",\n      \"region\": \"us1\",\n      \"status\": \"active\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "233b2cf6-f76c-8aed-897d-128d7a49ed47",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List Realtime apps",
                "description": {
                  "content": "Returns the workspace's Realtime apps as a paginated list, filterable by a case-insensitive `name` substring. Each entry carries the app's configuration and connection details (`app_id`, `region`) but never key secrets. Use [List a Realtime app's keys](https://bird.com/docs/api/reference/list-realtime-app-keys) and [Create a Realtime app key](https://bird.com/docs/api/reference/create-realtime-app-key) to manage them.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "name",
                      "value": "",
                      "description": "Substring match against the app name (case-insensitive)."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Field to sort by."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\",\n      \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"app_id\": 432557,\n      \"name\": \"chat-production\",\n      \"region\": \"us1\",\n      \"status\": \"active\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c4ce2c02-9783-876e-87d0-38598d24186f",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List Realtime apps",
                "description": {
                  "content": "Returns the workspace's Realtime apps as a paginated list, filterable by a case-insensitive `name` substring. Each entry carries the app's configuration and connection details (`app_id`, `region`) but never key secrets. Use [List a Realtime app's keys](https://bird.com/docs/api/reference/list-realtime-app-keys) and [Create a Realtime app key](https://bird.com/docs/api/reference/create-realtime-app-key) to manage them.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "name",
                      "value": "",
                      "description": "Substring match against the app name (case-insensitive)."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Field to sort by."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\",\n      \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"app_id\": 432557,\n      \"name\": \"chat-production\",\n      \"region\": \"us1\",\n      \"status\": \"active\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "8bd9c11c-bd66-8f08-8c4b-aa6159cfb803",
          "name": "Get a Realtime app",
          "request": {
            "name": "Get a Realtime app",
            "description": {
              "content": "Returns a single Realtime app with its configuration and connection details (`app_id`, `region`). Key secrets are never included; use [List a Realtime app's keys](https://bird.com/docs/api/reference/list-realtime-app-keys) to manage them. Returns a `404 Not Found` error if the app does not exist in the workspace.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "realtime",
                "apps",
                ":realtime_app_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "realtime_app_id",
                  "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "a087b9cc-f689-8e66-857b-8e3f91c5b94b",
              "name": "Realtime app with its current configuration and status.",
              "originalRequest": {
                "name": "Get a Realtime app",
                "description": {
                  "content": "Returns a single Realtime app with its configuration and connection details (`app_id`, `region`). Key secrets are never included; use [List a Realtime app's keys](https://bird.com/docs/api/reference/list-realtime-app-keys) to manage them. Returns a `404 Not Found` error if the app does not exist in the workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"app_id\": 432557,\n  \"name\": \"chat-production\",\n  \"region\": \"us1\",\n  \"status\": \"active\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "801d784d-6e89-8c7b-8b34-d81e35312101",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get a Realtime app",
                "description": {
                  "content": "Returns a single Realtime app with its configuration and connection details (`app_id`, `region`). Key secrets are never included; use [List a Realtime app's keys](https://bird.com/docs/api/reference/list-realtime-app-keys) to manage them. Returns a `404 Not Found` error if the app does not exist in the workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"app_id\": 432557,\n  \"name\": \"chat-production\",\n  \"region\": \"us1\",\n  \"status\": \"active\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a00ea9bd-69c4-8309-8db5-7a973752e3c5",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a Realtime app",
                "description": {
                  "content": "Returns a single Realtime app with its configuration and connection details (`app_id`, `region`). Key secrets are never included; use [List a Realtime app's keys](https://bird.com/docs/api/reference/list-realtime-app-keys) to manage them. Returns a `404 Not Found` error if the app does not exist in the workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"app_id\": 432557,\n  \"name\": \"chat-production\",\n  \"region\": \"us1\",\n  \"status\": \"active\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "939c42b0-84d9-84b5-8caf-cef847d69fbd",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a Realtime app",
                "description": {
                  "content": "Returns a single Realtime app with its configuration and connection details (`app_id`, `region`). Key secrets are never included; use [List a Realtime app's keys](https://bird.com/docs/api/reference/list-realtime-app-keys) to manage them. Returns a `404 Not Found` error if the app does not exist in the workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"app_id\": 432557,\n  \"name\": \"chat-production\",\n  \"region\": \"us1\",\n  \"status\": \"active\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c4a96575-79ff-8f8e-89ab-bba76280a3c2",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a Realtime app",
                "description": {
                  "content": "Returns a single Realtime app with its configuration and connection details (`app_id`, `region`). Key secrets are never included; use [List a Realtime app's keys](https://bird.com/docs/api/reference/list-realtime-app-keys) to manage them. Returns a `404 Not Found` error if the app does not exist in the workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"app_id\": 432557,\n  \"name\": \"chat-production\",\n  \"region\": \"us1\",\n  \"status\": \"active\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9523f30f-1a79-8037-8ad4-93db524e3ba4",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a Realtime app",
                "description": {
                  "content": "Returns a single Realtime app with its configuration and connection details (`app_id`, `region`). Key secrets are never included; use [List a Realtime app's keys](https://bird.com/docs/api/reference/list-realtime-app-keys) to manage them. Returns a `404 Not Found` error if the app does not exist in the workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"app_id\": 432557,\n  \"name\": \"chat-production\",\n  \"region\": \"us1\",\n  \"status\": \"active\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0b96110d-d65f-8adf-8055-bba73a16d36a",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a Realtime app",
                "description": {
                  "content": "Returns a single Realtime app with its configuration and connection details (`app_id`, `region`). Key secrets are never included; use [List a Realtime app's keys](https://bird.com/docs/api/reference/list-realtime-app-keys) to manage them. Returns a `404 Not Found` error if the app does not exist in the workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"app_id\": 432557,\n  \"name\": \"chat-production\",\n  \"region\": \"us1\",\n  \"status\": \"active\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ee735b50-beb5-8540-86b1-e2ad41b9b92a",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a Realtime app",
                "description": {
                  "content": "Returns a single Realtime app with its configuration and connection details (`app_id`, `region`). Key secrets are never included; use [List a Realtime app's keys](https://bird.com/docs/api/reference/list-realtime-app-keys) to manage them. Returns a `404 Not Found` error if the app does not exist in the workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"app_id\": 432557,\n  \"name\": \"chat-production\",\n  \"region\": \"us1\",\n  \"status\": \"active\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "9df08c81-d589-89e8-89ad-b60551c1f062",
          "name": "Update a Realtime app",
          "request": {
            "name": "Update a Realtime app",
            "description": {
              "content": "Updates a Realtime app's name and configuration flags. Region is immutable; TLS is always enforced. Omitted fields are left unchanged.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "realtime",
                "apps",
                ":realtime_app_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "realtime_app_id",
                  "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "PATCH",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"chat-production\",\n  \"connection_counting\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "6f01d5ee-8369-8603-829c-8a87db2b4aa2",
              "name": "The updated Realtime app.",
              "originalRequest": {
                "name": "Update a Realtime app",
                "description": {
                  "content": "Updates a Realtime app's name and configuration flags. Region is immutable; TLS is always enforced. Omitted fields are left unchanged.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"chat-production\",\n  \"connection_counting\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"app_id\": 432557,\n  \"name\": \"chat-production\",\n  \"region\": \"us1\",\n  \"status\": \"active\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3a5ef6f1-bccc-8b42-8800-eaeec9714998",
              "name": "Bad request",
              "originalRequest": {
                "name": "Update a Realtime app",
                "description": {
                  "content": "Updates a Realtime app's name and configuration flags. Region is immutable; TLS is always enforced. Omitted fields are left unchanged.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"chat-production\",\n  \"connection_counting\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"app_id\": 432557,\n  \"name\": \"chat-production\",\n  \"region\": \"us1\",\n  \"status\": \"active\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e2fa3cc5-bbf9-8f0a-8af0-6346c3413003",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Update a Realtime app",
                "description": {
                  "content": "Updates a Realtime app's name and configuration flags. Region is immutable; TLS is always enforced. Omitted fields are left unchanged.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"chat-production\",\n  \"connection_counting\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"app_id\": 432557,\n  \"name\": \"chat-production\",\n  \"region\": \"us1\",\n  \"status\": \"active\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "11c79e62-c8f1-8523-8381-6948cba63542",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Update a Realtime app",
                "description": {
                  "content": "Updates a Realtime app's name and configuration flags. Region is immutable; TLS is always enforced. Omitted fields are left unchanged.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"chat-production\",\n  \"connection_counting\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"app_id\": 432557,\n  \"name\": \"chat-production\",\n  \"region\": \"us1\",\n  \"status\": \"active\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ef5426a3-6656-885c-8074-e51e19f257bd",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Update a Realtime app",
                "description": {
                  "content": "Updates a Realtime app's name and configuration flags. Region is immutable; TLS is always enforced. Omitted fields are left unchanged.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"chat-production\",\n  \"connection_counting\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"app_id\": 432557,\n  \"name\": \"chat-production\",\n  \"region\": \"us1\",\n  \"status\": \"active\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fe0b8a45-3102-8b7c-811d-5841cc25d864",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Update a Realtime app",
                "description": {
                  "content": "Updates a Realtime app's name and configuration flags. Region is immutable; TLS is always enforced. Omitted fields are left unchanged.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"chat-production\",\n  \"connection_counting\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"app_id\": 432557,\n  \"name\": \"chat-production\",\n  \"region\": \"us1\",\n  \"status\": \"active\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "748b1e7f-6888-8cfc-8f0c-05789281ba13",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Update a Realtime app",
                "description": {
                  "content": "Updates a Realtime app's name and configuration flags. Region is immutable; TLS is always enforced. Omitted fields are left unchanged.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"chat-production\",\n  \"connection_counting\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"app_id\": 432557,\n  \"name\": \"chat-production\",\n  \"region\": \"us1\",\n  \"status\": \"active\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0cd52b3c-1160-8154-8cee-c2d3a8dac741",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Update a Realtime app",
                "description": {
                  "content": "Updates a Realtime app's name and configuration flags. Region is immutable; TLS is always enforced. Omitted fields are left unchanged.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"chat-production\",\n  \"connection_counting\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"id\": \"rap_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"app_id\": 432557,\n  \"name\": \"chat-production\",\n  \"region\": \"us1\",\n  \"status\": \"active\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "de0162ed-adb7-870c-8c01-04178ab0d4e3",
          "name": "Delete a Realtime app",
          "request": {
            "name": "Delete a Realtime app",
            "description": {
              "content": "Permanently deletes the app: disconnects all clients and removes its keys and configuration. This cannot be undone.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "realtime",
                "apps",
                ":realtime_app_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "realtime_app_id",
                  "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "DELETE"
          },
          "response": [
            {
              "id": "7deb42fc-6570-848b-89c4-a0e95abf411a",
              "name": "The app was deleted.",
              "originalRequest": {
                "name": "Delete a Realtime app",
                "description": {
                  "content": "Permanently deletes the app: disconnects all clients and removes its keys and configuration. This cannot be undone.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "dd8ef2ca-6be1-880c-8090-73bf10c53c28",
              "name": "Bad request",
              "originalRequest": {
                "name": "Delete a Realtime app",
                "description": {
                  "content": "Permanently deletes the app: disconnects all clients and removes its keys and configuration. This cannot be undone.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f51c1349-4885-8363-83e7-8ad8710057db",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Delete a Realtime app",
                "description": {
                  "content": "Permanently deletes the app: disconnects all clients and removes its keys and configuration. This cannot be undone.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e75635e8-bc02-8040-8e93-dad26ba7f7cb",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Delete a Realtime app",
                "description": {
                  "content": "Permanently deletes the app: disconnects all clients and removes its keys and configuration. This cannot be undone.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "beb30455-3c92-800a-87e0-480c04e71bed",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Delete a Realtime app",
                "description": {
                  "content": "Permanently deletes the app: disconnects all clients and removes its keys and configuration. This cannot be undone.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1e1fad09-3de5-8016-8e78-e8998a658c14",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Delete a Realtime app",
                "description": {
                  "content": "Permanently deletes the app: disconnects all clients and removes its keys and configuration. This cannot be undone.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "67a2ec06-0e22-81e3-8a86-374d04af5dd5",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Delete a Realtime app",
                "description": {
                  "content": "Permanently deletes the app: disconnects all clients and removes its keys and configuration. This cannot be undone.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "42bd900e-be02-86e1-843a-4ce767faf35b",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Delete a Realtime app",
                "description": {
                  "content": "Permanently deletes the app: disconnects all clients and removes its keys and configuration. This cannot be undone.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "6b2f0770-4bb5-87e2-85c3-d8e2f8952376",
          "name": "List a Realtime app's keys",
          "request": {
            "name": "List a Realtime app's keys",
            "description": {
              "content": "Returns the app's keys, oldest first. Non-revoked only by default; pass include_revoked=true to include revoked keys. An app can hold several keys at once (create a new key, roll it out, then revoke the old one for zero-downtime rotation). Secrets are never included in this response.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "realtime",
                "apps",
                ":realtime_app_id",
                "keys"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "include_revoked",
                  "value": "false",
                  "description": "When true, include revoked keys in the response."
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "realtime_app_id",
                  "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "833cce45-f141-80f7-87a7-6f57f971d484",
              "name": "The app's keys.",
              "originalRequest": {
                "name": "List a Realtime app's keys",
                "description": {
                  "content": "Returns the app's keys, oldest first. Non-revoked only by default; pass include_revoked=true to include revoked keys. An app can hold several keys at once (create a new key, roll it out, then revoke the old one for zero-downtime rotation). Secrets are never included in this response.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "include_revoked",
                      "value": "false",
                      "description": "When true, include revoked keys in the response."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"key\": \"d0e95a856ddc1b09d4c8\",\n      \"secret\": \"862925e1991a8b6902f9\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "61972934-31a7-8ded-8129-23c57383f55e",
              "name": "Bad request",
              "originalRequest": {
                "name": "List a Realtime app's keys",
                "description": {
                  "content": "Returns the app's keys, oldest first. Non-revoked only by default; pass include_revoked=true to include revoked keys. An app can hold several keys at once (create a new key, roll it out, then revoke the old one for zero-downtime rotation). Secrets are never included in this response.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "include_revoked",
                      "value": "false",
                      "description": "When true, include revoked keys in the response."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"key\": \"d0e95a856ddc1b09d4c8\",\n      \"secret\": \"862925e1991a8b6902f9\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3e62c910-20ad-85a2-89e1-d8dbac3f1b5b",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List a Realtime app's keys",
                "description": {
                  "content": "Returns the app's keys, oldest first. Non-revoked only by default; pass include_revoked=true to include revoked keys. An app can hold several keys at once (create a new key, roll it out, then revoke the old one for zero-downtime rotation). Secrets are never included in this response.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "include_revoked",
                      "value": "false",
                      "description": "When true, include revoked keys in the response."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"key\": \"d0e95a856ddc1b09d4c8\",\n      \"secret\": \"862925e1991a8b6902f9\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4e7e9c51-0e44-89ea-8f23-2d1f81ee1742",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List a Realtime app's keys",
                "description": {
                  "content": "Returns the app's keys, oldest first. Non-revoked only by default; pass include_revoked=true to include revoked keys. An app can hold several keys at once (create a new key, roll it out, then revoke the old one for zero-downtime rotation). Secrets are never included in this response.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "include_revoked",
                      "value": "false",
                      "description": "When true, include revoked keys in the response."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"key\": \"d0e95a856ddc1b09d4c8\",\n      \"secret\": \"862925e1991a8b6902f9\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "647ab00f-8816-82cb-8edb-7fd541c1393a",
              "name": "Resource not found",
              "originalRequest": {
                "name": "List a Realtime app's keys",
                "description": {
                  "content": "Returns the app's keys, oldest first. Non-revoked only by default; pass include_revoked=true to include revoked keys. An app can hold several keys at once (create a new key, roll it out, then revoke the old one for zero-downtime rotation). Secrets are never included in this response.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "include_revoked",
                      "value": "false",
                      "description": "When true, include revoked keys in the response."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"key\": \"d0e95a856ddc1b09d4c8\",\n      \"secret\": \"862925e1991a8b6902f9\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ed610b71-e3d5-8436-8357-96f265a5ed10",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List a Realtime app's keys",
                "description": {
                  "content": "Returns the app's keys, oldest first. Non-revoked only by default; pass include_revoked=true to include revoked keys. An app can hold several keys at once (create a new key, roll it out, then revoke the old one for zero-downtime rotation). Secrets are never included in this response.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "include_revoked",
                      "value": "false",
                      "description": "When true, include revoked keys in the response."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"key\": \"d0e95a856ddc1b09d4c8\",\n      \"secret\": \"862925e1991a8b6902f9\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d66ce6ee-9fa8-8720-8664-ccc30887fcaf",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List a Realtime app's keys",
                "description": {
                  "content": "Returns the app's keys, oldest first. Non-revoked only by default; pass include_revoked=true to include revoked keys. An app can hold several keys at once (create a new key, roll it out, then revoke the old one for zero-downtime rotation). Secrets are never included in this response.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "include_revoked",
                      "value": "false",
                      "description": "When true, include revoked keys in the response."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"key\": \"d0e95a856ddc1b09d4c8\",\n      \"secret\": \"862925e1991a8b6902f9\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e1b52e4b-c575-87be-887b-ea15c759fcd8",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List a Realtime app's keys",
                "description": {
                  "content": "Returns the app's keys, oldest first. Non-revoked only by default; pass include_revoked=true to include revoked keys. An app can hold several keys at once (create a new key, roll it out, then revoke the old one for zero-downtime rotation). Secrets are never included in this response.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "include_revoked",
                      "value": "false",
                      "description": "When true, include revoked keys in the response."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"key\": \"d0e95a856ddc1b09d4c8\",\n      \"secret\": \"862925e1991a8b6902f9\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "888cf14c-a226-8fe4-853d-69258e234ffc",
          "name": "Create a Realtime app key",
          "request": {
            "name": "Create a Realtime app key",
            "description": {
              "content": "Adds a new key to the app and returns it with its secret. Store the secret when you receive it because later responses do not include it. Use this together with revoke for zero-downtime rotation: add a key, roll it out across your clients, then revoke the old key.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "realtime",
                "apps",
                ":realtime_app_id",
                "keys"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "realtime_app_id",
                  "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST"
          },
          "response": [
            {
              "id": "1e07a1c2-1adb-8f59-8b35-f505ef4a5e40",
              "name": "Key created. Includes the one-time secret.",
              "originalRequest": {
                "name": "Create a Realtime app key",
                "description": {
                  "content": "Adds a new key to the app and returns it with its secret. Store the secret when you receive it because later responses do not include it. Use this together with revoke for zero-downtime rotation: add a key, roll it out across your clients, then revoke the old key.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"key\": \"d0e95a856ddc1b09d4c8\",\n  \"secret\": \"862925e1991a8b6902f9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d41be5c2-f946-89e7-8038-4d083db424f5",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create a Realtime app key",
                "description": {
                  "content": "Adds a new key to the app and returns it with its secret. Store the secret when you receive it because later responses do not include it. Use this together with revoke for zero-downtime rotation: add a key, roll it out across your clients, then revoke the old key.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Bad Request",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"key\": \"d0e95a856ddc1b09d4c8\",\n  \"secret\": \"862925e1991a8b6902f9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "213caed7-b047-8d4d-8229-35171339b976",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create a Realtime app key",
                "description": {
                  "content": "Adds a new key to the app and returns it with its secret. Store the secret when you receive it because later responses do not include it. Use this together with revoke for zero-downtime rotation: add a key, roll it out across your clients, then revoke the old key.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Unauthorized",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"key\": \"d0e95a856ddc1b09d4c8\",\n  \"secret\": \"862925e1991a8b6902f9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6ae0001b-5fdb-839e-891c-73d823211973",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create a Realtime app key",
                "description": {
                  "content": "Adds a new key to the app and returns it with its secret. Store the secret when you receive it because later responses do not include it. Use this together with revoke for zero-downtime rotation: add a key, roll it out across your clients, then revoke the old key.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Forbidden",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"key\": \"d0e95a856ddc1b09d4c8\",\n  \"secret\": \"862925e1991a8b6902f9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "244fa60f-d4b4-85db-8fa3-ba7e9def42c0",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Create a Realtime app key",
                "description": {
                  "content": "Adds a new key to the app and returns it with its secret. Store the secret when you receive it because later responses do not include it. Use this together with revoke for zero-downtime rotation: add a key, roll it out across your clients, then revoke the old key.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Not Found",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"key\": \"d0e95a856ddc1b09d4c8\",\n  \"secret\": \"862925e1991a8b6902f9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6061c2e6-c249-8cea-8f2b-774d1546a00d",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create a Realtime app key",
                "description": {
                  "content": "Adds a new key to the app and returns it with its secret. Store the secret when you receive it because later responses do not include it. Use this together with revoke for zero-downtime rotation: add a key, roll it out across your clients, then revoke the old key.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"key\": \"d0e95a856ddc1b09d4c8\",\n  \"secret\": \"862925e1991a8b6902f9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ab153901-cc26-8f33-899c-80433bc44a48",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create a Realtime app key",
                "description": {
                  "content": "Adds a new key to the app and returns it with its secret. Store the secret when you receive it because later responses do not include it. Use this together with revoke for zero-downtime rotation: add a key, roll it out across your clients, then revoke the old key.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Too Many Requests",
              "code": 201,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"key\": \"d0e95a856ddc1b09d4c8\",\n  \"secret\": \"862925e1991a8b6902f9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d6e6262b-1baf-83d5-8338-12485fa66fc0",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create a Realtime app key",
                "description": {
                  "content": "Adds a new key to the app and returns it with its secret. Store the secret when you receive it because later responses do not include it. Use this together with revoke for zero-downtime rotation: add a key, roll it out across your clients, then revoke the old key.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Internal Server Error",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"key\": \"d0e95a856ddc1b09d4c8\",\n  \"secret\": \"862925e1991a8b6902f9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "02c01526-8aad-8baf-8810-f5e3f6f63577",
          "name": "Revoke a Realtime app key",
          "request": {
            "name": "Revoke a Realtime app key",
            "description": {
              "content": "Revokes a key immediately and returns it with `revoked_at` set. Clients that still use the key can no longer authenticate. An already revoked key returns `409`. The app's only key cannot be revoked and returns `422`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "realtime",
                "apps",
                ":realtime_app_id",
                "keys",
                ":realtime_app_key_id",
                "revoke"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "realtime_app_id",
                  "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "realtime_app_key_id",
                  "description": "(Required) ID of the Realtime app key (`rak_` prefix), as returned when the key was created."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST"
          },
          "response": [
            {
              "id": "f7ee4263-50c8-8a67-8859-ff25afd1867f",
              "name": "Key revoked. Returns the updated key with `revoked_at` set.",
              "originalRequest": {
                "name": "Revoke a Realtime app key",
                "description": {
                  "content": "Revokes a key immediately and returns it with `revoked_at` set. Clients that still use the key can no longer authenticate. An already revoked key returns `409`. The app's only key cannot be revoked and returns `422`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys",
                    ":realtime_app_key_id",
                    "revoke"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_key_id",
                      "description": "(Required) ID of the Realtime app key (`rak_` prefix), as returned when the key was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"key\": \"d0e95a856ddc1b09d4c8\",\n  \"secret\": \"862925e1991a8b6902f9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0c3b7121-01c5-8ab4-8d1c-a15946461c15",
              "name": "Bad request",
              "originalRequest": {
                "name": "Revoke a Realtime app key",
                "description": {
                  "content": "Revokes a key immediately and returns it with `revoked_at` set. Clients that still use the key can no longer authenticate. An already revoked key returns `409`. The app's only key cannot be revoked and returns `422`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys",
                    ":realtime_app_key_id",
                    "revoke"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_key_id",
                      "description": "(Required) ID of the Realtime app key (`rak_` prefix), as returned when the key was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"key\": \"d0e95a856ddc1b09d4c8\",\n  \"secret\": \"862925e1991a8b6902f9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "450b5145-ba66-84e9-8fd7-120e75090dd8",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Revoke a Realtime app key",
                "description": {
                  "content": "Revokes a key immediately and returns it with `revoked_at` set. Clients that still use the key can no longer authenticate. An already revoked key returns `409`. The app's only key cannot be revoked and returns `422`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys",
                    ":realtime_app_key_id",
                    "revoke"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_key_id",
                      "description": "(Required) ID of the Realtime app key (`rak_` prefix), as returned when the key was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"key\": \"d0e95a856ddc1b09d4c8\",\n  \"secret\": \"862925e1991a8b6902f9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "31062971-9d8b-85a2-8b27-ea4f0ed767ec",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Revoke a Realtime app key",
                "description": {
                  "content": "Revokes a key immediately and returns it with `revoked_at` set. Clients that still use the key can no longer authenticate. An already revoked key returns `409`. The app's only key cannot be revoked and returns `422`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys",
                    ":realtime_app_key_id",
                    "revoke"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_key_id",
                      "description": "(Required) ID of the Realtime app key (`rak_` prefix), as returned when the key was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"key\": \"d0e95a856ddc1b09d4c8\",\n  \"secret\": \"862925e1991a8b6902f9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2ff8e84a-0f6f-81af-87db-2d90295c6bff",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Revoke a Realtime app key",
                "description": {
                  "content": "Revokes a key immediately and returns it with `revoked_at` set. Clients that still use the key can no longer authenticate. An already revoked key returns `409`. The app's only key cannot be revoked and returns `422`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys",
                    ":realtime_app_key_id",
                    "revoke"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_key_id",
                      "description": "(Required) ID of the Realtime app key (`rak_` prefix), as returned when the key was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"key\": \"d0e95a856ddc1b09d4c8\",\n  \"secret\": \"862925e1991a8b6902f9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8d7cda3c-0cad-88fb-89c8-6903eb42bdd0",
              "name": "Resource conflict",
              "originalRequest": {
                "name": "Revoke a Realtime app key",
                "description": {
                  "content": "Revokes a key immediately and returns it with `revoked_at` set. Clients that still use the key can no longer authenticate. An already revoked key returns `409`. The app's only key cannot be revoked and returns `422`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys",
                    ":realtime_app_key_id",
                    "revoke"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_key_id",
                      "description": "(Required) ID of the Realtime app key (`rak_` prefix), as returned when the key was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Conflict",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"key\": \"d0e95a856ddc1b09d4c8\",\n  \"secret\": \"862925e1991a8b6902f9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0bfc581c-a3fb-801f-87f6-7118dbe65d8f",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Revoke a Realtime app key",
                "description": {
                  "content": "Revokes a key immediately and returns it with `revoked_at` set. Clients that still use the key can no longer authenticate. An already revoked key returns `409`. The app's only key cannot be revoked and returns `422`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys",
                    ":realtime_app_key_id",
                    "revoke"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_key_id",
                      "description": "(Required) ID of the Realtime app key (`rak_` prefix), as returned when the key was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"key\": \"d0e95a856ddc1b09d4c8\",\n  \"secret\": \"862925e1991a8b6902f9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "252ca6f6-ecc8-867c-8d0c-d376b8454fe3",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Revoke a Realtime app key",
                "description": {
                  "content": "Revokes a key immediately and returns it with `revoked_at` set. Clients that still use the key can no longer authenticate. An already revoked key returns `409`. The app's only key cannot be revoked and returns `422`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys",
                    ":realtime_app_key_id",
                    "revoke"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_key_id",
                      "description": "(Required) ID of the Realtime app key (`rak_` prefix), as returned when the key was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"key\": \"d0e95a856ddc1b09d4c8\",\n  \"secret\": \"862925e1991a8b6902f9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "84a3ffff-fd92-84b2-8ef1-ca5ea16d63ad",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Revoke a Realtime app key",
                "description": {
                  "content": "Revokes a key immediately and returns it with `revoked_at` set. Clients that still use the key can no longer authenticate. An already revoked key returns `409`. The app's only key cannot be revoked and returns `422`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "keys",
                    ":realtime_app_key_id",
                    "revoke"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_key_id",
                      "description": "(Required) ID of the Realtime app key (`rak_` prefix), as returned when the key was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rak_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"key\": \"d0e95a856ddc1b09d4c8\",\n  \"secret\": \"862925e1991a8b6902f9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "94ad9493-ff79-89ef-8193-f0ef107771a9",
      "name": "realtime-events",
      "description": {
        "content": "Publish events to a Realtime app's channels from your server (the data plane). Sending to several channels at once broadcasts to all of them.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "eca06615-e270-82a9-8b39-1e5029ad2fab",
          "name": "Publish a Realtime event",
          "request": {
            "name": "Publish a Realtime event",
            "description": {
              "content": "Publishes an event to one or more channels of a Realtime app. Listing several channels broadcasts the event to all of them in one call. Connected clients subscribed to those channels receive it in real time.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "realtime",
                "apps",
                ":realtime_app_id",
                "events"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "realtime_app_id",
                  "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"event\": \"order-updated\",\n  \"channels\": [\n    \"orders\",\n    \"orders-42\"\n  ],\n  \"exclude_connection_id\": \"123.4567\",\n  \"include\": [\n    \"member_count\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "7b84a447-45d6-8611-8ef3-03ff61596fb4",
              "name": "The event was accepted for delivery.",
              "originalRequest": {
                "name": "Publish a Realtime event",
                "description": {
                  "content": "Publishes an event to one or more channels of a Realtime app. Listing several channels broadcasts the event to all of them in one call. Connected clients subscribed to those channels receive it in real time.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"order-updated\",\n  \"channels\": [\n    \"orders\",\n    \"orders-42\"\n  ],\n  \"exclude_connection_id\": \"123.4567\",\n  \"include\": [\n    \"member_count\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"name\": \"orders-42\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b75e0eff-4e76-803a-8075-b85150af17d5",
              "name": "Bad request",
              "originalRequest": {
                "name": "Publish a Realtime event",
                "description": {
                  "content": "Publishes an event to one or more channels of a Realtime app. Listing several channels broadcasts the event to all of them in one call. Connected clients subscribed to those channels receive it in real time.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"order-updated\",\n  \"channels\": [\n    \"orders\",\n    \"orders-42\"\n  ],\n  \"exclude_connection_id\": \"123.4567\",\n  \"include\": [\n    \"member_count\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"name\": \"orders-42\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "90f520de-a1c9-850d-8060-573c9fba9a80",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Publish a Realtime event",
                "description": {
                  "content": "Publishes an event to one or more channels of a Realtime app. Listing several channels broadcasts the event to all of them in one call. Connected clients subscribed to those channels receive it in real time.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"order-updated\",\n  \"channels\": [\n    \"orders\",\n    \"orders-42\"\n  ],\n  \"exclude_connection_id\": \"123.4567\",\n  \"include\": [\n    \"member_count\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"name\": \"orders-42\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "211c63f0-55b1-8742-82b3-3c5186493e70",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Publish a Realtime event",
                "description": {
                  "content": "Publishes an event to one or more channels of a Realtime app. Listing several channels broadcasts the event to all of them in one call. Connected clients subscribed to those channels receive it in real time.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"order-updated\",\n  \"channels\": [\n    \"orders\",\n    \"orders-42\"\n  ],\n  \"exclude_connection_id\": \"123.4567\",\n  \"include\": [\n    \"member_count\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"name\": \"orders-42\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f06494c9-6d31-8e30-8ab7-b7e7619442f6",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Publish a Realtime event",
                "description": {
                  "content": "Publishes an event to one or more channels of a Realtime app. Listing several channels broadcasts the event to all of them in one call. Connected clients subscribed to those channels receive it in real time.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"order-updated\",\n  \"channels\": [\n    \"orders\",\n    \"orders-42\"\n  ],\n  \"exclude_connection_id\": \"123.4567\",\n  \"include\": [\n    \"member_count\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"name\": \"orders-42\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9198f975-90c8-8998-8fb1-da1fbee9c51b",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Publish a Realtime event",
                "description": {
                  "content": "Publishes an event to one or more channels of a Realtime app. Listing several channels broadcasts the event to all of them in one call. Connected clients subscribed to those channels receive it in real time.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"order-updated\",\n  \"channels\": [\n    \"orders\",\n    \"orders-42\"\n  ],\n  \"exclude_connection_id\": \"123.4567\",\n  \"include\": [\n    \"member_count\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"name\": \"orders-42\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3657b5bf-e40c-8d23-895a-4a902ccb0483",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Publish a Realtime event",
                "description": {
                  "content": "Publishes an event to one or more channels of a Realtime app. Listing several channels broadcasts the event to all of them in one call. Connected clients subscribed to those channels receive it in real time.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"order-updated\",\n  \"channels\": [\n    \"orders\",\n    \"orders-42\"\n  ],\n  \"exclude_connection_id\": \"123.4567\",\n  \"include\": [\n    \"member_count\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"name\": \"orders-42\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "49198062-bcb1-80fc-855d-8aab5b56950c",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Publish a Realtime event",
                "description": {
                  "content": "Publishes an event to one or more channels of a Realtime app. Listing several channels broadcasts the event to all of them in one call. Connected clients subscribed to those channels receive it in real time.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"order-updated\",\n  \"channels\": [\n    \"orders\",\n    \"orders-42\"\n  ],\n  \"exclude_connection_id\": \"123.4567\",\n  \"include\": [\n    \"member_count\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"name\": \"orders-42\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "857b39fe-5155-8278-8829-bf522e685d2a",
          "name": "Publish a batch of Realtime events",
          "request": {
            "name": "Publish a batch of Realtime events",
            "description": {
              "content": "Publishes up to 10 events (each to one channel) in a single request.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "realtime",
                "apps",
                ":realtime_app_id",
                "batch-events"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "realtime_app_id",
                  "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"events\": [\n    {\n      \"event\": \"order-updated\",\n      \"channel\": \"orders-42\",\n      \"exclude_connection_id\": \"123.4567\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "51bd63fc-dfb1-8e10-80b2-3bcc047a7fb4",
              "name": "The events were accepted for delivery.",
              "originalRequest": {
                "name": "Publish a batch of Realtime events",
                "description": {
                  "content": "Publishes up to 10 events (each to one channel) in a single request.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "batch-events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"events\": [\n    {\n      \"event\": \"order-updated\",\n      \"channel\": \"orders-42\",\n      \"exclude_connection_id\": \"123.4567\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"channel\": \"orders-42\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8db5eeef-7479-803d-8e47-50c724f64900",
              "name": "Bad request",
              "originalRequest": {
                "name": "Publish a batch of Realtime events",
                "description": {
                  "content": "Publishes up to 10 events (each to one channel) in a single request.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "batch-events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"events\": [\n    {\n      \"event\": \"order-updated\",\n      \"channel\": \"orders-42\",\n      \"exclude_connection_id\": \"123.4567\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"channel\": \"orders-42\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8b21cb67-7c51-87df-8b61-63684b51d40f",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Publish a batch of Realtime events",
                "description": {
                  "content": "Publishes up to 10 events (each to one channel) in a single request.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "batch-events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"events\": [\n    {\n      \"event\": \"order-updated\",\n      \"channel\": \"orders-42\",\n      \"exclude_connection_id\": \"123.4567\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"channel\": \"orders-42\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d0dcaa00-486a-813a-8bc4-9bca38aa9870",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Publish a batch of Realtime events",
                "description": {
                  "content": "Publishes up to 10 events (each to one channel) in a single request.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "batch-events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"events\": [\n    {\n      \"event\": \"order-updated\",\n      \"channel\": \"orders-42\",\n      \"exclude_connection_id\": \"123.4567\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"channel\": \"orders-42\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "928baf1a-5c15-8ef7-86f8-c9127f29d6e6",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Publish a batch of Realtime events",
                "description": {
                  "content": "Publishes up to 10 events (each to one channel) in a single request.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "batch-events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"events\": [\n    {\n      \"event\": \"order-updated\",\n      \"channel\": \"orders-42\",\n      \"exclude_connection_id\": \"123.4567\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"channel\": \"orders-42\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ddca75ba-f9fa-804a-8dea-ed87a0677d3f",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Publish a batch of Realtime events",
                "description": {
                  "content": "Publishes up to 10 events (each to one channel) in a single request.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "batch-events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"events\": [\n    {\n      \"event\": \"order-updated\",\n      \"channel\": \"orders-42\",\n      \"exclude_connection_id\": \"123.4567\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"channel\": \"orders-42\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "373a1427-80c1-8729-888d-c10f97b1c910",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Publish a batch of Realtime events",
                "description": {
                  "content": "Publishes up to 10 events (each to one channel) in a single request.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "batch-events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"events\": [\n    {\n      \"event\": \"order-updated\",\n      \"channel\": \"orders-42\",\n      \"exclude_connection_id\": \"123.4567\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"channel\": \"orders-42\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d1d66de5-ab9b-895f-83a6-e842290ff345",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Publish a batch of Realtime events",
                "description": {
                  "content": "Publishes up to 10 events (each to one channel) in a single request.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "batch-events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"events\": [\n    {\n      \"event\": \"order-updated\",\n      \"channel\": \"orders-42\",\n      \"exclude_connection_id\": \"123.4567\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"channel\": \"orders-42\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "176660b1-ee44-8f86-846c-c8bbd992351f",
          "name": "List Realtime channels",
          "request": {
            "name": "List Realtime channels",
            "description": {
              "content": "Lists the app's currently occupied channels, optionally filtered by name prefix.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "realtime",
                "apps",
                ":realtime_app_id",
                "channels"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "prefix",
                  "value": "",
                  "description": "Only channels whose name starts with this prefix (for example, `presence-`)."
                },
                {
                  "disabled": true,
                  "key": "include",
                  "value": "",
                  "description": "Per-channel attributes to include. Repeatable. Requesting `member_count` without a presence-channel `prefix`, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                },
                {
                  "disabled": true,
                  "key": "include",
                  "value": "",
                  "description": "Per-channel attributes to include. Repeatable. Requesting `member_count` without a presence-channel `prefix`, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "realtime_app_id",
                  "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "97fb2b26-e381-8a21-8312-309959af0349",
              "name": "The occupied channels.",
              "originalRequest": {
                "name": "List Realtime channels",
                "description": {
                  "content": "Lists the app's currently occupied channels, optionally filtered by name prefix.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "channels"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "prefix",
                      "value": "",
                      "description": "Only channels whose name starts with this prefix (for example, `presence-`)."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Per-channel attributes to include. Repeatable. Requesting `member_count` without a presence-channel `prefix`, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Per-channel attributes to include. Repeatable. Requesting `member_count` without a presence-channel `prefix`, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"name\": \"orders-42\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cb161ac2-213a-8e50-8bcf-2323d611aae5",
              "name": "Bad request",
              "originalRequest": {
                "name": "List Realtime channels",
                "description": {
                  "content": "Lists the app's currently occupied channels, optionally filtered by name prefix.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "channels"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "prefix",
                      "value": "",
                      "description": "Only channels whose name starts with this prefix (for example, `presence-`)."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Per-channel attributes to include. Repeatable. Requesting `member_count` without a presence-channel `prefix`, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Per-channel attributes to include. Repeatable. Requesting `member_count` without a presence-channel `prefix`, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"name\": \"orders-42\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cb0f34c8-2546-8fa9-8956-edb747e9f6c6",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List Realtime channels",
                "description": {
                  "content": "Lists the app's currently occupied channels, optionally filtered by name prefix.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "channels"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "prefix",
                      "value": "",
                      "description": "Only channels whose name starts with this prefix (for example, `presence-`)."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Per-channel attributes to include. Repeatable. Requesting `member_count` without a presence-channel `prefix`, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Per-channel attributes to include. Repeatable. Requesting `member_count` without a presence-channel `prefix`, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"name\": \"orders-42\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e29699cb-10cc-8cf1-84f7-799923283214",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List Realtime channels",
                "description": {
                  "content": "Lists the app's currently occupied channels, optionally filtered by name prefix.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "channels"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "prefix",
                      "value": "",
                      "description": "Only channels whose name starts with this prefix (for example, `presence-`)."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Per-channel attributes to include. Repeatable. Requesting `member_count` without a presence-channel `prefix`, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Per-channel attributes to include. Repeatable. Requesting `member_count` without a presence-channel `prefix`, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"name\": \"orders-42\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3e4a16fa-fd6c-81d6-8f11-01b6a7c077b0",
              "name": "Resource not found",
              "originalRequest": {
                "name": "List Realtime channels",
                "description": {
                  "content": "Lists the app's currently occupied channels, optionally filtered by name prefix.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "channels"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "prefix",
                      "value": "",
                      "description": "Only channels whose name starts with this prefix (for example, `presence-`)."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Per-channel attributes to include. Repeatable. Requesting `member_count` without a presence-channel `prefix`, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Per-channel attributes to include. Repeatable. Requesting `member_count` without a presence-channel `prefix`, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"name\": \"orders-42\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "00ee00de-6090-8f92-8396-ce6e9a069c3e",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List Realtime channels",
                "description": {
                  "content": "Lists the app's currently occupied channels, optionally filtered by name prefix.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "channels"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "prefix",
                      "value": "",
                      "description": "Only channels whose name starts with this prefix (for example, `presence-`)."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Per-channel attributes to include. Repeatable. Requesting `member_count` without a presence-channel `prefix`, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Per-channel attributes to include. Repeatable. Requesting `member_count` without a presence-channel `prefix`, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"name\": \"orders-42\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "bf0a20b9-f878-80a9-8e96-53debc02b987",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List Realtime channels",
                "description": {
                  "content": "Lists the app's currently occupied channels, optionally filtered by name prefix.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "channels"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "prefix",
                      "value": "",
                      "description": "Only channels whose name starts with this prefix (for example, `presence-`)."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Per-channel attributes to include. Repeatable. Requesting `member_count` without a presence-channel `prefix`, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Per-channel attributes to include. Repeatable. Requesting `member_count` without a presence-channel `prefix`, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"name\": \"orders-42\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e300c87c-686b-824a-83f2-eaaf3081f4b9",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List Realtime channels",
                "description": {
                  "content": "Lists the app's currently occupied channels, optionally filtered by name prefix.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "channels"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "prefix",
                      "value": "",
                      "description": "Only channels whose name starts with this prefix (for example, `presence-`)."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Per-channel attributes to include. Repeatable. Requesting `member_count` without a presence-channel `prefix`, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Per-channel attributes to include. Repeatable. Requesting `member_count` without a presence-channel `prefix`, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"name\": \"orders-42\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "0bfafc54-5927-8cd9-8dc2-94a959fdb4f3",
          "name": "Get a Realtime channel",
          "request": {
            "name": "Get a Realtime channel",
            "description": {
              "content": "Returns a single channel's occupancy and optional counts. A channel appears when its first connection subscribes and disappears when its last connection leaves. An unknown or unused name returns `200 OK` with `occupied: false`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "realtime",
                "apps",
                ":realtime_app_id",
                "channels",
                ":channel_name"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "include",
                  "value": "",
                  "description": "Attributes to include. Repeatable. Requesting `member_count` for a non-presence channel, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                },
                {
                  "disabled": true,
                  "key": "include",
                  "value": "",
                  "description": "Attributes to include. Repeatable. Requesting `member_count` for a non-presence channel, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "realtime_app_id",
                  "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "channel_name",
                  "description": "(Required) Name of the Realtime channel to retrieve."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "c776cffc-e32f-89c2-8fad-f03eea1fc023",
              "name": "The channel state.",
              "originalRequest": {
                "name": "Get a Realtime channel",
                "description": {
                  "content": "Returns a single channel's occupancy and optional counts. A channel appears when its first connection subscribes and disappears when its last connection leaves. An unknown or unused name returns `200 OK` with `occupied: false`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "channels",
                    ":channel_name"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Attributes to include. Repeatable. Requesting `member_count` for a non-presence channel, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Attributes to include. Repeatable. Requesting `member_count` for a non-presence channel, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "channel_name",
                      "description": "(Required) Name of the Realtime channel to retrieve."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "62700fd6-f9e2-8e9b-887f-b4fd00a6ab77",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get a Realtime channel",
                "description": {
                  "content": "Returns a single channel's occupancy and optional counts. A channel appears when its first connection subscribes and disappears when its last connection leaves. An unknown or unused name returns `200 OK` with `occupied: false`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "channels",
                    ":channel_name"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Attributes to include. Repeatable. Requesting `member_count` for a non-presence channel, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Attributes to include. Repeatable. Requesting `member_count` for a non-presence channel, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "channel_name",
                      "description": "(Required) Name of the Realtime channel to retrieve."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "62f3691f-a1b6-8d0f-8c14-fc13bbf8e13f",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a Realtime channel",
                "description": {
                  "content": "Returns a single channel's occupancy and optional counts. A channel appears when its first connection subscribes and disappears when its last connection leaves. An unknown or unused name returns `200 OK` with `occupied: false`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "channels",
                    ":channel_name"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Attributes to include. Repeatable. Requesting `member_count` for a non-presence channel, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Attributes to include. Repeatable. Requesting `member_count` for a non-presence channel, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "channel_name",
                      "description": "(Required) Name of the Realtime channel to retrieve."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "246ddf8c-e542-85db-8bfe-6ee189691354",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a Realtime channel",
                "description": {
                  "content": "Returns a single channel's occupancy and optional counts. A channel appears when its first connection subscribes and disappears when its last connection leaves. An unknown or unused name returns `200 OK` with `occupied: false`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "channels",
                    ":channel_name"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Attributes to include. Repeatable. Requesting `member_count` for a non-presence channel, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Attributes to include. Repeatable. Requesting `member_count` for a non-presence channel, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "channel_name",
                      "description": "(Required) Name of the Realtime channel to retrieve."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "784e944f-7d8d-87bb-8e8e-13ab30c1a91f",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a Realtime channel",
                "description": {
                  "content": "Returns a single channel's occupancy and optional counts. A channel appears when its first connection subscribes and disappears when its last connection leaves. An unknown or unused name returns `200 OK` with `occupied: false`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "channels",
                    ":channel_name"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Attributes to include. Repeatable. Requesting `member_count` for a non-presence channel, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Attributes to include. Repeatable. Requesting `member_count` for a non-presence channel, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "channel_name",
                      "description": "(Required) Name of the Realtime channel to retrieve."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a77ee4f0-f6ec-8533-8aef-fa5270bde9d5",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a Realtime channel",
                "description": {
                  "content": "Returns a single channel's occupancy and optional counts. A channel appears when its first connection subscribes and disappears when its last connection leaves. An unknown or unused name returns `200 OK` with `occupied: false`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "channels",
                    ":channel_name"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Attributes to include. Repeatable. Requesting `member_count` for a non-presence channel, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Attributes to include. Repeatable. Requesting `member_count` for a non-presence channel, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "channel_name",
                      "description": "(Required) Name of the Realtime channel to retrieve."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e2c51d7f-7767-8c2b-8aa2-3a52a57a2c5d",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a Realtime channel",
                "description": {
                  "content": "Returns a single channel's occupancy and optional counts. A channel appears when its first connection subscribes and disappears when its last connection leaves. An unknown or unused name returns `200 OK` with `occupied: false`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "channels",
                    ":channel_name"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Attributes to include. Repeatable. Requesting `member_count` for a non-presence channel, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Attributes to include. Repeatable. Requesting `member_count` for a non-presence channel, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "channel_name",
                      "description": "(Required) Name of the Realtime channel to retrieve."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b528afff-5b9b-8eac-8eac-a67f1ef4eae1",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a Realtime channel",
                "description": {
                  "content": "Returns a single channel's occupancy and optional counts. A channel appears when its first connection subscribes and disappears when its last connection leaves. An unknown or unused name returns `200 OK` with `occupied: false`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "channels",
                    ":channel_name"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Attributes to include. Repeatable. Requesting `member_count` for a non-presence channel, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Attributes to include. Repeatable. Requesting `member_count` for a non-presence channel, or `connection_count` when the app's connection-counting flag is off, returns a validation error (400)."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "channel_name",
                      "description": "(Required) Name of the Realtime channel to retrieve."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "07a9c60d-a816-8eb4-894e-ec8caeff4054",
          "name": "List members on a presence channel",
          "request": {
            "name": "List members on a presence channel",
            "description": {
              "content": "Lists the member IDs currently subscribed to a presence channel. IDs only: `member_info` (the profile data attached by your authorization endpoint) is delivered to subscribed clients over the realtime connection and is not available over REST.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "realtime",
                "apps",
                ":realtime_app_id",
                "channels",
                ":channel_name",
                "members"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "realtime_app_id",
                  "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "channel_name",
                  "description": "(Required) Name of the presence channel whose members to list."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "dcdef0df-4fae-8329-87f5-c1f5f9f51fdb",
              "name": "The members on the presence channel.",
              "originalRequest": {
                "name": "List members on a presence channel",
                "description": {
                  "content": "Lists the member IDs currently subscribed to a presence channel. IDs only: `member_info` (the profile data attached by your authorization endpoint) is delivered to subscribed clients over the realtime connection and is not available over REST.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "channels",
                    ":channel_name",
                    "members"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "channel_name",
                      "description": "(Required) Name of the presence channel whose members to list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7fd3778f-17c0-81dc-838f-791680302bc1",
              "name": "Bad request",
              "originalRequest": {
                "name": "List members on a presence channel",
                "description": {
                  "content": "Lists the member IDs currently subscribed to a presence channel. IDs only: `member_info` (the profile data attached by your authorization endpoint) is delivered to subscribed clients over the realtime connection and is not available over REST.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "channels",
                    ":channel_name",
                    "members"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "channel_name",
                      "description": "(Required) Name of the presence channel whose members to list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0c976087-524c-84a7-881c-1705141aeb14",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List members on a presence channel",
                "description": {
                  "content": "Lists the member IDs currently subscribed to a presence channel. IDs only: `member_info` (the profile data attached by your authorization endpoint) is delivered to subscribed clients over the realtime connection and is not available over REST.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "channels",
                    ":channel_name",
                    "members"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "channel_name",
                      "description": "(Required) Name of the presence channel whose members to list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e209ee8c-aacd-8707-87ec-29b0674405ac",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List members on a presence channel",
                "description": {
                  "content": "Lists the member IDs currently subscribed to a presence channel. IDs only: `member_info` (the profile data attached by your authorization endpoint) is delivered to subscribed clients over the realtime connection and is not available over REST.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "channels",
                    ":channel_name",
                    "members"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "channel_name",
                      "description": "(Required) Name of the presence channel whose members to list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5c656089-57db-86c4-8e73-3186aac3e258",
              "name": "Resource not found",
              "originalRequest": {
                "name": "List members on a presence channel",
                "description": {
                  "content": "Lists the member IDs currently subscribed to a presence channel. IDs only: `member_info` (the profile data attached by your authorization endpoint) is delivered to subscribed clients over the realtime connection and is not available over REST.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "channels",
                    ":channel_name",
                    "members"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "channel_name",
                      "description": "(Required) Name of the presence channel whose members to list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "abd5bfa5-99d7-87c2-8588-60faca887cc9",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List members on a presence channel",
                "description": {
                  "content": "Lists the member IDs currently subscribed to a presence channel. IDs only: `member_info` (the profile data attached by your authorization endpoint) is delivered to subscribed clients over the realtime connection and is not available over REST.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "channels",
                    ":channel_name",
                    "members"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "channel_name",
                      "description": "(Required) Name of the presence channel whose members to list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "281da1dd-6014-8c96-8103-2d7e5550ebff",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List members on a presence channel",
                "description": {
                  "content": "Lists the member IDs currently subscribed to a presence channel. IDs only: `member_info` (the profile data attached by your authorization endpoint) is delivered to subscribed clients over the realtime connection and is not available over REST.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "channels",
                    ":channel_name",
                    "members"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "channel_name",
                      "description": "(Required) Name of the presence channel whose members to list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "07889801-2f98-8baf-8351-f7ee4b706679",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List members on a presence channel",
                "description": {
                  "content": "Lists the member IDs currently subscribed to a presence channel. IDs only: `member_info` (the profile data attached by your authorization endpoint) is delivered to subscribed clients over the realtime connection and is not available over REST.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "channels",
                    ":channel_name",
                    "members"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "channel_name",
                      "description": "(Required) Name of the presence channel whose members to list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "8774e9c0-e760-8a96-83f0-a8cd7a3f3e50",
          "name": "Disconnect a member",
          "request": {
            "name": "Disconnect a member",
            "description": {
              "content": "Disconnects all of a member's active connections, for example on sign-out or ban.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "realtime",
                "apps",
                ":realtime_app_id",
                "members",
                ":member_id",
                "disconnect"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "realtime_app_id",
                  "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "member_id",
                  "description": "(Required) Member ID whose connections to disconnect."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST"
          },
          "response": [
            {
              "id": "3048b946-7c58-8b52-89ea-6a3645656600",
              "name": "The member's connections were disconnected.",
              "originalRequest": {
                "name": "Disconnect a member",
                "description": {
                  "content": "Disconnects all of a member's active connections, for example on sign-out or ban.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "members",
                    ":member_id",
                    "disconnect"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "member_id",
                      "description": "(Required) Member ID whose connections to disconnect."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "e523ab66-03b8-8557-82a7-db619b69b988",
              "name": "Bad request",
              "originalRequest": {
                "name": "Disconnect a member",
                "description": {
                  "content": "Disconnects all of a member's active connections, for example on sign-out or ban.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "members",
                    ":member_id",
                    "disconnect"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "member_id",
                      "description": "(Required) Member ID whose connections to disconnect."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a3a5e883-2897-8130-8d53-20f854ac9b7c",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Disconnect a member",
                "description": {
                  "content": "Disconnects all of a member's active connections, for example on sign-out or ban.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "members",
                    ":member_id",
                    "disconnect"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "member_id",
                      "description": "(Required) Member ID whose connections to disconnect."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "53a44a3e-4336-87ed-8f26-bcd7968d24e4",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Disconnect a member",
                "description": {
                  "content": "Disconnects all of a member's active connections, for example on sign-out or ban.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "members",
                    ":member_id",
                    "disconnect"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "member_id",
                      "description": "(Required) Member ID whose connections to disconnect."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0a50f7aa-01be-8696-81ac-b747bc98ba96",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Disconnect a member",
                "description": {
                  "content": "Disconnects all of a member's active connections, for example on sign-out or ban.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "members",
                    ":member_id",
                    "disconnect"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "member_id",
                      "description": "(Required) Member ID whose connections to disconnect."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b17ddb5d-8a6d-8f1e-8ad0-e90d8d5099fa",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Disconnect a member",
                "description": {
                  "content": "Disconnects all of a member's active connections, for example on sign-out or ban.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "members",
                    ":member_id",
                    "disconnect"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "member_id",
                      "description": "(Required) Member ID whose connections to disconnect."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dca0e2cd-f293-8d6c-8861-2fffbec48bf5",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Disconnect a member",
                "description": {
                  "content": "Disconnects all of a member's active connections, for example on sign-out or ban.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "members",
                    ":member_id",
                    "disconnect"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "member_id",
                      "description": "(Required) Member ID whose connections to disconnect."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0ffd462f-be06-846d-8660-956922e2a358",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Disconnect a member",
                "description": {
                  "content": "Disconnects all of a member's active connections, for example on sign-out or ban.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "members",
                    ":member_id",
                    "disconnect"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "member_id",
                      "description": "(Required) Member ID whose connections to disconnect."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "ef49f98d-fc2c-8e39-8483-f96f7f5f4ae9",
          "name": "Send an event to a member",
          "request": {
            "name": "Send an event to a member",
            "description": {
              "content": "Delivers an event to one member of a Realtime app, addressing the person\nrather than a channel. Every connection that member currently holds receives\nit across tabs and devices, without requiring a dedicated channel.\n\nThe member must have signed in on the connection for it to be addressable.\nDelivery is best-effort and not queued. A member with no active connections\nat the time of the call does not receive the event.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "realtime",
                "apps",
                ":realtime_app_id",
                "members",
                ":member_id",
                "events"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "realtime_app_id",
                  "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "member_id",
                  "description": "(Required) The member to deliver the event to."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"event\": \"order-updated\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "b272b459-1e42-8552-8db6-3f388741d35d",
              "name": "The event was accepted for delivery. No body: a member has no channel occupancy or counts to report, and whether they hold connections is not something a publish can confirm.",
              "originalRequest": {
                "name": "Send an event to a member",
                "description": {
                  "content": "Delivers an event to one member of a Realtime app, addressing the person\nrather than a channel. Every connection that member currently holds receives\nit across tabs and devices, without requiring a dedicated channel.\n\nThe member must have signed in on the connection for it to be addressable.\nDelivery is best-effort and not queued. A member with no active connections\nat the time of the call does not receive the event.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "members",
                    ":member_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "member_id",
                      "description": "(Required) The member to deliver the event to."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"order-updated\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "5fc69c1b-7dd2-8d49-86d4-dac927e76cd3",
              "name": "Bad request",
              "originalRequest": {
                "name": "Send an event to a member",
                "description": {
                  "content": "Delivers an event to one member of a Realtime app, addressing the person\nrather than a channel. Every connection that member currently holds receives\nit across tabs and devices, without requiring a dedicated channel.\n\nThe member must have signed in on the connection for it to be addressable.\nDelivery is best-effort and not queued. A member with no active connections\nat the time of the call does not receive the event.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "members",
                    ":member_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "member_id",
                      "description": "(Required) The member to deliver the event to."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"order-updated\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d31a7cd5-29d6-8e12-8b6d-5926b7bce625",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Send an event to a member",
                "description": {
                  "content": "Delivers an event to one member of a Realtime app, addressing the person\nrather than a channel. Every connection that member currently holds receives\nit across tabs and devices, without requiring a dedicated channel.\n\nThe member must have signed in on the connection for it to be addressable.\nDelivery is best-effort and not queued. A member with no active connections\nat the time of the call does not receive the event.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "members",
                    ":member_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "member_id",
                      "description": "(Required) The member to deliver the event to."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"order-updated\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8f03e6d9-09a0-8419-8130-ca0a7dd8ce01",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Send an event to a member",
                "description": {
                  "content": "Delivers an event to one member of a Realtime app, addressing the person\nrather than a channel. Every connection that member currently holds receives\nit across tabs and devices, without requiring a dedicated channel.\n\nThe member must have signed in on the connection for it to be addressable.\nDelivery is best-effort and not queued. A member with no active connections\nat the time of the call does not receive the event.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "members",
                    ":member_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "member_id",
                      "description": "(Required) The member to deliver the event to."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"order-updated\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c493997e-3aff-82e6-8907-b79c10053460",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Send an event to a member",
                "description": {
                  "content": "Delivers an event to one member of a Realtime app, addressing the person\nrather than a channel. Every connection that member currently holds receives\nit across tabs and devices, without requiring a dedicated channel.\n\nThe member must have signed in on the connection for it to be addressable.\nDelivery is best-effort and not queued. A member with no active connections\nat the time of the call does not receive the event.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "members",
                    ":member_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "member_id",
                      "description": "(Required) The member to deliver the event to."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"order-updated\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7fa634b2-84b8-8569-812d-1dbe2d110c26",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Send an event to a member",
                "description": {
                  "content": "Delivers an event to one member of a Realtime app, addressing the person\nrather than a channel. Every connection that member currently holds receives\nit across tabs and devices, without requiring a dedicated channel.\n\nThe member must have signed in on the connection for it to be addressable.\nDelivery is best-effort and not queued. A member with no active connections\nat the time of the call does not receive the event.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "members",
                    ":member_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "member_id",
                      "description": "(Required) The member to deliver the event to."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"order-updated\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "68c8cacb-c95f-804d-8a9d-0629763ef889",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Send an event to a member",
                "description": {
                  "content": "Delivers an event to one member of a Realtime app, addressing the person\nrather than a channel. Every connection that member currently holds receives\nit across tabs and devices, without requiring a dedicated channel.\n\nThe member must have signed in on the connection for it to be addressable.\nDelivery is best-effort and not queued. A member with no active connections\nat the time of the call does not receive the event.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "members",
                    ":member_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "member_id",
                      "description": "(Required) The member to deliver the event to."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"order-updated\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6cb5559f-4734-86d9-8166-7bfc6fde76a3",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Send an event to a member",
                "description": {
                  "content": "Delivers an event to one member of a Realtime app, addressing the person\nrather than a channel. Every connection that member currently holds receives\nit across tabs and devices, without requiring a dedicated channel.\n\nThe member must have signed in on the connection for it to be addressable.\nDelivery is best-effort and not queued. A member with no active connections\nat the time of the call does not receive the event.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "realtime",
                    "apps",
                    ":realtime_app_id",
                    "members",
                    ":member_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "realtime_app_id",
                      "description": "(Required) ID of the Realtime app (`rap_` prefix), as returned when the app was created."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "member_id",
                      "description": "(Required) The member to deliver the event to."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event\": \"order-updated\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "37cee47b-9cd5-86e6-8394-423def22a8e4",
      "name": "email-messages",
      "description": {
        "content": "Send emails to recipients you address explicitly in `to`, `cc`, and `bcc`. Use this for transactional sends (receipts, password resets, alerts) and for marketing sends where you already have the recipient addresses on hand. The same endpoint accepts every content type. Set `category` to control suppression policy.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "37987648-2686-838f-85bb-2529dd5b4982",
          "name": "Create an email message",
          "request": {
            "name": "Create an email message",
            "description": {
              "content": "Sends an email to the recipients you list explicitly in `to`/`cc`/`bcc`. Use it for\ntransactional sends (receipts, password resets, alerts) and for marketing sends where\nyou have the recipient addresses on hand. To submit many independent messages in one\nrequest, use [Create a batch of email messages](https://bird.com/docs/api/reference/create-email-message-batch)\ninstead. The `category` field controls suppression policy independently of content:\nset it to `marketing` when sending marketing content.\n\nThe `202` response means the message is safely accepted and awaiting delivery.\nFetch it by `id` or subscribe to webhook events to follow delivery. The\nrequest never half-succeeds: an unverified sender domain or any field-level\nvalidation failure rejects it immediately with a `422` naming the reason.\nSuppression is evaluated per recipient after acceptance, so a suppressed recipient\nappears as `rejected` on the message's recipient list rather than as a synchronous\nerror. New workspaces can send from the shared onboarding domain before verifying\ntheir own. The [quickstart](https://bird.com/docs/get-started/send-your-first-email) covers its\nrecipient and volume limits.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "messages"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"from\": {\n    \"email\": \"noreply@acme.com\",\n    \"name\": \"Acme Support\"\n  },\n  \"to\": [\n    {\n      \"email\": \"delivered@messagebird.dev\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    \"manager@acme.com\"\n  ],\n  \"reply_to\": [\n    \"support@acme.com\"\n  ],\n  \"subject\": \"Welcome aboard\",\n  \"html\": \"<h1>Hi there 👋</h1>\",\n  \"text\": \"Hi there\",\n  \"headers\": {\n    \"X-Campaign\": \"spring-2026\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"metadata\": {\n    \"user_id\": \"usr_12345\"\n  },\n  \"category\": \"transactional\",\n  \"track_clicks\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "f6d46c0b-9609-8764-8c25-f2bad1543cfc",
              "name": "Message accepted for asynchronous delivery.",
              "originalRequest": {
                "name": "Create an email message",
                "description": {
                  "content": "Sends an email to the recipients you list explicitly in `to`/`cc`/`bcc`. Use it for\ntransactional sends (receipts, password resets, alerts) and for marketing sends where\nyou have the recipient addresses on hand. To submit many independent messages in one\nrequest, use [Create a batch of email messages](https://bird.com/docs/api/reference/create-email-message-batch)\ninstead. The `category` field controls suppression policy independently of content:\nset it to `marketing` when sending marketing content.\n\nThe `202` response means the message is safely accepted and awaiting delivery.\nFetch it by `id` or subscribe to webhook events to follow delivery. The\nrequest never half-succeeds: an unverified sender domain or any field-level\nvalidation failure rejects it immediately with a `422` naming the reason.\nSuppression is evaluated per recipient after acceptance, so a suppressed recipient\nappears as `rejected` on the message's recipient list rather than as a synchronous\nerror. New workspaces can send from the shared onboarding domain before verifying\ntheir own. The [quickstart](https://bird.com/docs/get-started/send-your-first-email) covers its\nrecipient and volume limits.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"from\": {\n    \"email\": \"noreply@acme.com\",\n    \"name\": \"Acme Support\"\n  },\n  \"to\": [\n    {\n      \"email\": \"delivered@messagebird.dev\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    \"manager@acme.com\"\n  ],\n  \"reply_to\": [\n    \"support@acme.com\"\n  ],\n  \"subject\": \"Welcome aboard\",\n  \"html\": \"<h1>Hi there 👋</h1>\",\n  \"text\": \"Hi there\",\n  \"headers\": {\n    \"X-Campaign\": \"spring-2026\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"metadata\": {\n    \"user_id\": \"usr_12345\"\n  },\n  \"category\": \"transactional\",\n  \"track_clicks\": false\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"from\": {\n    \"email\": \"jane@acme.com\",\n    \"name\": \"Jane Doe\"\n  },\n  \"to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"bcc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"category\": \"marketing\",\n  \"reply_to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"status\": \"scheduled\",\n  \"requested_language\": \"pt-BR\",\n  \"resolved_language\": \"pt-BR\",\n  \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"attachments\": [\n    {\n      \"id\": \"ea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432,\n      \"inline\": false\n    }\n  ],\n  \"in_reply_to_message_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "72f3d824-757e-876a-869e-c024277a8458",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create an email message",
                "description": {
                  "content": "Sends an email to the recipients you list explicitly in `to`/`cc`/`bcc`. Use it for\ntransactional sends (receipts, password resets, alerts) and for marketing sends where\nyou have the recipient addresses on hand. To submit many independent messages in one\nrequest, use [Create a batch of email messages](https://bird.com/docs/api/reference/create-email-message-batch)\ninstead. The `category` field controls suppression policy independently of content:\nset it to `marketing` when sending marketing content.\n\nThe `202` response means the message is safely accepted and awaiting delivery.\nFetch it by `id` or subscribe to webhook events to follow delivery. The\nrequest never half-succeeds: an unverified sender domain or any field-level\nvalidation failure rejects it immediately with a `422` naming the reason.\nSuppression is evaluated per recipient after acceptance, so a suppressed recipient\nappears as `rejected` on the message's recipient list rather than as a synchronous\nerror. New workspaces can send from the shared onboarding domain before verifying\ntheir own. The [quickstart](https://bird.com/docs/get-started/send-your-first-email) covers its\nrecipient and volume limits.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"from\": {\n    \"email\": \"noreply@acme.com\",\n    \"name\": \"Acme Support\"\n  },\n  \"to\": [\n    {\n      \"email\": \"delivered@messagebird.dev\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    \"manager@acme.com\"\n  ],\n  \"reply_to\": [\n    \"support@acme.com\"\n  ],\n  \"subject\": \"Welcome aboard\",\n  \"html\": \"<h1>Hi there 👋</h1>\",\n  \"text\": \"Hi there\",\n  \"headers\": {\n    \"X-Campaign\": \"spring-2026\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"metadata\": {\n    \"user_id\": \"usr_12345\"\n  },\n  \"category\": \"transactional\",\n  \"track_clicks\": false\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"from\": {\n    \"email\": \"jane@acme.com\",\n    \"name\": \"Jane Doe\"\n  },\n  \"to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"bcc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"category\": \"marketing\",\n  \"reply_to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"status\": \"scheduled\",\n  \"requested_language\": \"pt-BR\",\n  \"resolved_language\": \"pt-BR\",\n  \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"attachments\": [\n    {\n      \"id\": \"ea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432,\n      \"inline\": false\n    }\n  ],\n  \"in_reply_to_message_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4a54e86f-7008-8fb9-8336-2703971b7c6a",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create an email message",
                "description": {
                  "content": "Sends an email to the recipients you list explicitly in `to`/`cc`/`bcc`. Use it for\ntransactional sends (receipts, password resets, alerts) and for marketing sends where\nyou have the recipient addresses on hand. To submit many independent messages in one\nrequest, use [Create a batch of email messages](https://bird.com/docs/api/reference/create-email-message-batch)\ninstead. The `category` field controls suppression policy independently of content:\nset it to `marketing` when sending marketing content.\n\nThe `202` response means the message is safely accepted and awaiting delivery.\nFetch it by `id` or subscribe to webhook events to follow delivery. The\nrequest never half-succeeds: an unverified sender domain or any field-level\nvalidation failure rejects it immediately with a `422` naming the reason.\nSuppression is evaluated per recipient after acceptance, so a suppressed recipient\nappears as `rejected` on the message's recipient list rather than as a synchronous\nerror. New workspaces can send from the shared onboarding domain before verifying\ntheir own. The [quickstart](https://bird.com/docs/get-started/send-your-first-email) covers its\nrecipient and volume limits.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"from\": {\n    \"email\": \"noreply@acme.com\",\n    \"name\": \"Acme Support\"\n  },\n  \"to\": [\n    {\n      \"email\": \"delivered@messagebird.dev\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    \"manager@acme.com\"\n  ],\n  \"reply_to\": [\n    \"support@acme.com\"\n  ],\n  \"subject\": \"Welcome aboard\",\n  \"html\": \"<h1>Hi there 👋</h1>\",\n  \"text\": \"Hi there\",\n  \"headers\": {\n    \"X-Campaign\": \"spring-2026\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"metadata\": {\n    \"user_id\": \"usr_12345\"\n  },\n  \"category\": \"transactional\",\n  \"track_clicks\": false\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"from\": {\n    \"email\": \"jane@acme.com\",\n    \"name\": \"Jane Doe\"\n  },\n  \"to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"bcc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"category\": \"marketing\",\n  \"reply_to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"status\": \"scheduled\",\n  \"requested_language\": \"pt-BR\",\n  \"resolved_language\": \"pt-BR\",\n  \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"attachments\": [\n    {\n      \"id\": \"ea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432,\n      \"inline\": false\n    }\n  ],\n  \"in_reply_to_message_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6df7d7cb-2192-879d-8883-47b46f30ddaf",
              "name": "Insufficient balance",
              "originalRequest": {
                "name": "Create an email message",
                "description": {
                  "content": "Sends an email to the recipients you list explicitly in `to`/`cc`/`bcc`. Use it for\ntransactional sends (receipts, password resets, alerts) and for marketing sends where\nyou have the recipient addresses on hand. To submit many independent messages in one\nrequest, use [Create a batch of email messages](https://bird.com/docs/api/reference/create-email-message-batch)\ninstead. The `category` field controls suppression policy independently of content:\nset it to `marketing` when sending marketing content.\n\nThe `202` response means the message is safely accepted and awaiting delivery.\nFetch it by `id` or subscribe to webhook events to follow delivery. The\nrequest never half-succeeds: an unverified sender domain or any field-level\nvalidation failure rejects it immediately with a `422` naming the reason.\nSuppression is evaluated per recipient after acceptance, so a suppressed recipient\nappears as `rejected` on the message's recipient list rather than as a synchronous\nerror. New workspaces can send from the shared onboarding domain before verifying\ntheir own. The [quickstart](https://bird.com/docs/get-started/send-your-first-email) covers its\nrecipient and volume limits.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"from\": {\n    \"email\": \"noreply@acme.com\",\n    \"name\": \"Acme Support\"\n  },\n  \"to\": [\n    {\n      \"email\": \"delivered@messagebird.dev\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    \"manager@acme.com\"\n  ],\n  \"reply_to\": [\n    \"support@acme.com\"\n  ],\n  \"subject\": \"Welcome aboard\",\n  \"html\": \"<h1>Hi there 👋</h1>\",\n  \"text\": \"Hi there\",\n  \"headers\": {\n    \"X-Campaign\": \"spring-2026\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"metadata\": {\n    \"user_id\": \"usr_12345\"\n  },\n  \"category\": \"transactional\",\n  \"track_clicks\": false\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Payment Required",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"from\": {\n    \"email\": \"jane@acme.com\",\n    \"name\": \"Jane Doe\"\n  },\n  \"to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"bcc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"category\": \"marketing\",\n  \"reply_to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"status\": \"scheduled\",\n  \"requested_language\": \"pt-BR\",\n  \"resolved_language\": \"pt-BR\",\n  \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"attachments\": [\n    {\n      \"id\": \"ea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432,\n      \"inline\": false\n    }\n  ],\n  \"in_reply_to_message_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "82228043-db21-8e3c-8661-17f018469c76",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create an email message",
                "description": {
                  "content": "Sends an email to the recipients you list explicitly in `to`/`cc`/`bcc`. Use it for\ntransactional sends (receipts, password resets, alerts) and for marketing sends where\nyou have the recipient addresses on hand. To submit many independent messages in one\nrequest, use [Create a batch of email messages](https://bird.com/docs/api/reference/create-email-message-batch)\ninstead. The `category` field controls suppression policy independently of content:\nset it to `marketing` when sending marketing content.\n\nThe `202` response means the message is safely accepted and awaiting delivery.\nFetch it by `id` or subscribe to webhook events to follow delivery. The\nrequest never half-succeeds: an unverified sender domain or any field-level\nvalidation failure rejects it immediately with a `422` naming the reason.\nSuppression is evaluated per recipient after acceptance, so a suppressed recipient\nappears as `rejected` on the message's recipient list rather than as a synchronous\nerror. New workspaces can send from the shared onboarding domain before verifying\ntheir own. The [quickstart](https://bird.com/docs/get-started/send-your-first-email) covers its\nrecipient and volume limits.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"from\": {\n    \"email\": \"noreply@acme.com\",\n    \"name\": \"Acme Support\"\n  },\n  \"to\": [\n    {\n      \"email\": \"delivered@messagebird.dev\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    \"manager@acme.com\"\n  ],\n  \"reply_to\": [\n    \"support@acme.com\"\n  ],\n  \"subject\": \"Welcome aboard\",\n  \"html\": \"<h1>Hi there 👋</h1>\",\n  \"text\": \"Hi there\",\n  \"headers\": {\n    \"X-Campaign\": \"spring-2026\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"metadata\": {\n    \"user_id\": \"usr_12345\"\n  },\n  \"category\": \"transactional\",\n  \"track_clicks\": false\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"from\": {\n    \"email\": \"jane@acme.com\",\n    \"name\": \"Jane Doe\"\n  },\n  \"to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"bcc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"category\": \"marketing\",\n  \"reply_to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"status\": \"scheduled\",\n  \"requested_language\": \"pt-BR\",\n  \"resolved_language\": \"pt-BR\",\n  \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"attachments\": [\n    {\n      \"id\": \"ea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432,\n      \"inline\": false\n    }\n  ],\n  \"in_reply_to_message_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b12806e2-f156-88d7-8339-8eadaeb9f6b2",
              "name": "Request body or message size exceeds the allowed limit",
              "originalRequest": {
                "name": "Create an email message",
                "description": {
                  "content": "Sends an email to the recipients you list explicitly in `to`/`cc`/`bcc`. Use it for\ntransactional sends (receipts, password resets, alerts) and for marketing sends where\nyou have the recipient addresses on hand. To submit many independent messages in one\nrequest, use [Create a batch of email messages](https://bird.com/docs/api/reference/create-email-message-batch)\ninstead. The `category` field controls suppression policy independently of content:\nset it to `marketing` when sending marketing content.\n\nThe `202` response means the message is safely accepted and awaiting delivery.\nFetch it by `id` or subscribe to webhook events to follow delivery. The\nrequest never half-succeeds: an unverified sender domain or any field-level\nvalidation failure rejects it immediately with a `422` naming the reason.\nSuppression is evaluated per recipient after acceptance, so a suppressed recipient\nappears as `rejected` on the message's recipient list rather than as a synchronous\nerror. New workspaces can send from the shared onboarding domain before verifying\ntheir own. The [quickstart](https://bird.com/docs/get-started/send-your-first-email) covers its\nrecipient and volume limits.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"from\": {\n    \"email\": \"noreply@acme.com\",\n    \"name\": \"Acme Support\"\n  },\n  \"to\": [\n    {\n      \"email\": \"delivered@messagebird.dev\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    \"manager@acme.com\"\n  ],\n  \"reply_to\": [\n    \"support@acme.com\"\n  ],\n  \"subject\": \"Welcome aboard\",\n  \"html\": \"<h1>Hi there 👋</h1>\",\n  \"text\": \"Hi there\",\n  \"headers\": {\n    \"X-Campaign\": \"spring-2026\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"metadata\": {\n    \"user_id\": \"usr_12345\"\n  },\n  \"category\": \"transactional\",\n  \"track_clicks\": false\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Request Entity Too Large",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"from\": {\n    \"email\": \"jane@acme.com\",\n    \"name\": \"Jane Doe\"\n  },\n  \"to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"bcc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"category\": \"marketing\",\n  \"reply_to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"status\": \"scheduled\",\n  \"requested_language\": \"pt-BR\",\n  \"resolved_language\": \"pt-BR\",\n  \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"attachments\": [\n    {\n      \"id\": \"ea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432,\n      \"inline\": false\n    }\n  ],\n  \"in_reply_to_message_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0a42832f-db94-8f32-8ff7-59e3a601188c",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create an email message",
                "description": {
                  "content": "Sends an email to the recipients you list explicitly in `to`/`cc`/`bcc`. Use it for\ntransactional sends (receipts, password resets, alerts) and for marketing sends where\nyou have the recipient addresses on hand. To submit many independent messages in one\nrequest, use [Create a batch of email messages](https://bird.com/docs/api/reference/create-email-message-batch)\ninstead. The `category` field controls suppression policy independently of content:\nset it to `marketing` when sending marketing content.\n\nThe `202` response means the message is safely accepted and awaiting delivery.\nFetch it by `id` or subscribe to webhook events to follow delivery. The\nrequest never half-succeeds: an unverified sender domain or any field-level\nvalidation failure rejects it immediately with a `422` naming the reason.\nSuppression is evaluated per recipient after acceptance, so a suppressed recipient\nappears as `rejected` on the message's recipient list rather than as a synchronous\nerror. New workspaces can send from the shared onboarding domain before verifying\ntheir own. The [quickstart](https://bird.com/docs/get-started/send-your-first-email) covers its\nrecipient and volume limits.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"from\": {\n    \"email\": \"noreply@acme.com\",\n    \"name\": \"Acme Support\"\n  },\n  \"to\": [\n    {\n      \"email\": \"delivered@messagebird.dev\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    \"manager@acme.com\"\n  ],\n  \"reply_to\": [\n    \"support@acme.com\"\n  ],\n  \"subject\": \"Welcome aboard\",\n  \"html\": \"<h1>Hi there 👋</h1>\",\n  \"text\": \"Hi there\",\n  \"headers\": {\n    \"X-Campaign\": \"spring-2026\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"metadata\": {\n    \"user_id\": \"usr_12345\"\n  },\n  \"category\": \"transactional\",\n  \"track_clicks\": false\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"from\": {\n    \"email\": \"jane@acme.com\",\n    \"name\": \"Jane Doe\"\n  },\n  \"to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"bcc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"category\": \"marketing\",\n  \"reply_to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"status\": \"scheduled\",\n  \"requested_language\": \"pt-BR\",\n  \"resolved_language\": \"pt-BR\",\n  \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"attachments\": [\n    {\n      \"id\": \"ea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432,\n      \"inline\": false\n    }\n  ],\n  \"in_reply_to_message_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fca6391c-7d93-8dc8-833a-47c72da43c8c",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create an email message",
                "description": {
                  "content": "Sends an email to the recipients you list explicitly in `to`/`cc`/`bcc`. Use it for\ntransactional sends (receipts, password resets, alerts) and for marketing sends where\nyou have the recipient addresses on hand. To submit many independent messages in one\nrequest, use [Create a batch of email messages](https://bird.com/docs/api/reference/create-email-message-batch)\ninstead. The `category` field controls suppression policy independently of content:\nset it to `marketing` when sending marketing content.\n\nThe `202` response means the message is safely accepted and awaiting delivery.\nFetch it by `id` or subscribe to webhook events to follow delivery. The\nrequest never half-succeeds: an unverified sender domain or any field-level\nvalidation failure rejects it immediately with a `422` naming the reason.\nSuppression is evaluated per recipient after acceptance, so a suppressed recipient\nappears as `rejected` on the message's recipient list rather than as a synchronous\nerror. New workspaces can send from the shared onboarding domain before verifying\ntheir own. The [quickstart](https://bird.com/docs/get-started/send-your-first-email) covers its\nrecipient and volume limits.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"from\": {\n    \"email\": \"noreply@acme.com\",\n    \"name\": \"Acme Support\"\n  },\n  \"to\": [\n    {\n      \"email\": \"delivered@messagebird.dev\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    \"manager@acme.com\"\n  ],\n  \"reply_to\": [\n    \"support@acme.com\"\n  ],\n  \"subject\": \"Welcome aboard\",\n  \"html\": \"<h1>Hi there 👋</h1>\",\n  \"text\": \"Hi there\",\n  \"headers\": {\n    \"X-Campaign\": \"spring-2026\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"metadata\": {\n    \"user_id\": \"usr_12345\"\n  },\n  \"category\": \"transactional\",\n  \"track_clicks\": false\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 202,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"from\": {\n    \"email\": \"jane@acme.com\",\n    \"name\": \"Jane Doe\"\n  },\n  \"to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"bcc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"category\": \"marketing\",\n  \"reply_to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"status\": \"scheduled\",\n  \"requested_language\": \"pt-BR\",\n  \"resolved_language\": \"pt-BR\",\n  \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"attachments\": [\n    {\n      \"id\": \"ea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432,\n      \"inline\": false\n    }\n  ],\n  \"in_reply_to_message_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c041a077-dcbf-894d-825a-8a14cb30201e",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create an email message",
                "description": {
                  "content": "Sends an email to the recipients you list explicitly in `to`/`cc`/`bcc`. Use it for\ntransactional sends (receipts, password resets, alerts) and for marketing sends where\nyou have the recipient addresses on hand. To submit many independent messages in one\nrequest, use [Create a batch of email messages](https://bird.com/docs/api/reference/create-email-message-batch)\ninstead. The `category` field controls suppression policy independently of content:\nset it to `marketing` when sending marketing content.\n\nThe `202` response means the message is safely accepted and awaiting delivery.\nFetch it by `id` or subscribe to webhook events to follow delivery. The\nrequest never half-succeeds: an unverified sender domain or any field-level\nvalidation failure rejects it immediately with a `422` naming the reason.\nSuppression is evaluated per recipient after acceptance, so a suppressed recipient\nappears as `rejected` on the message's recipient list rather than as a synchronous\nerror. New workspaces can send from the shared onboarding domain before verifying\ntheir own. The [quickstart](https://bird.com/docs/get-started/send-your-first-email) covers its\nrecipient and volume limits.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"from\": {\n    \"email\": \"noreply@acme.com\",\n    \"name\": \"Acme Support\"\n  },\n  \"to\": [\n    {\n      \"email\": \"delivered@messagebird.dev\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    \"manager@acme.com\"\n  ],\n  \"reply_to\": [\n    \"support@acme.com\"\n  ],\n  \"subject\": \"Welcome aboard\",\n  \"html\": \"<h1>Hi there 👋</h1>\",\n  \"text\": \"Hi there\",\n  \"headers\": {\n    \"X-Campaign\": \"spring-2026\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"metadata\": {\n    \"user_id\": \"usr_12345\"\n  },\n  \"category\": \"transactional\",\n  \"track_clicks\": false\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"from\": {\n    \"email\": \"jane@acme.com\",\n    \"name\": \"Jane Doe\"\n  },\n  \"to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"bcc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"category\": \"marketing\",\n  \"reply_to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"status\": \"scheduled\",\n  \"requested_language\": \"pt-BR\",\n  \"resolved_language\": \"pt-BR\",\n  \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"attachments\": [\n    {\n      \"id\": \"ea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432,\n      \"inline\": false\n    }\n  ],\n  \"in_reply_to_message_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "dcf55993-bfbf-8faf-8d39-2517df90203f",
          "name": "List messages",
          "request": {
            "name": "List messages",
            "description": {
              "content": "Returns the workspace's sent and scheduled messages, newest first, as a cursor page. Each item has the aggregate delivery `status` and per-state recipient counts. Message bodies are omitted.\n\nCombine filters to narrow the page:\n\n- Delivery status.\n- Category.\n- Tag.\n- An exact `to` or `from` address.\n- A `created_after` or `created_before` time window.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "messages"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                },
                {
                  "disabled": false,
                  "key": "created_after",
                  "value": "2026-05-01T00:00:00Z",
                  "description": "Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                },
                {
                  "disabled": false,
                  "key": "created_before",
                  "value": "2026-06-01T00:00:00Z",
                  "description": "Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                },
                {
                  "disabled": true,
                  "key": "status",
                  "value": "",
                  "description": "Filter by aggregate delivery status."
                },
                {
                  "disabled": true,
                  "key": "tag",
                  "value": "",
                  "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                },
                {
                  "disabled": true,
                  "key": "tag",
                  "value": "",
                  "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                },
                {
                  "disabled": true,
                  "key": "category",
                  "value": "",
                  "description": "Filter by category."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "delivered@messagebird.dev",
                  "description": "Filter by recipient address. Exact match against any `to`/`cc`/`bcc` recipient on the message. The address is normalized to lowercase before comparison.\n"
                },
                {
                  "disabled": false,
                  "key": "from",
                  "value": "noreply@acme.com",
                  "description": "Filter by sender address. Exact match against the message `from` field. The address is normalized to lowercase before comparison.\n"
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "71d76815-caf0-827c-8d0c-bc66fc6336be",
              "name": "Paginated list of messages.",
              "originalRequest": {
                "name": "List messages",
                "description": {
                  "content": "Returns the workspace's sent and scheduled messages, newest first, as a cursor page. Each item has the aggregate delivery `status` and per-state recipient counts. Message bodies are omitted.\n\nCombine filters to narrow the page:\n\n- Delivery status.\n- Category.\n- Tag.\n- An exact `to` or `from` address.\n- A `created_after` or `created_before` time window.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "created_after",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": false,
                      "key": "created_before",
                      "value": "2026-06-01T00:00:00Z",
                      "description": "Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter by aggregate delivery status."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Filter by category."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "delivered@messagebird.dev",
                      "description": "Filter by recipient address. Exact match against any `to`/`cc`/`bcc` recipient on the message. The address is normalized to lowercase before comparison.\n"
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "noreply@acme.com",
                      "description": "Filter by sender address. Exact match against the message `from` field. The address is normalized to lowercase before comparison.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"from\": {\n        \"email\": \"jane@acme.com\",\n        \"name\": \"Jane Doe\"\n      },\n      \"to\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"cc\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"bcc\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"category\": \"marketing\",\n      \"reply_to\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"status\": \"scheduled\",\n      \"requested_language\": \"pt-BR\",\n      \"resolved_language\": \"pt-BR\",\n      \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"attachments\": [\n        {\n          \"id\": \"ea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\",\n          \"size\": 215432,\n          \"inline\": false\n        }\n      ],\n      \"in_reply_to_message_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8e04b561-7636-8c97-8313-4145a4d4d0b0",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List messages",
                "description": {
                  "content": "Returns the workspace's sent and scheduled messages, newest first, as a cursor page. Each item has the aggregate delivery `status` and per-state recipient counts. Message bodies are omitted.\n\nCombine filters to narrow the page:\n\n- Delivery status.\n- Category.\n- Tag.\n- An exact `to` or `from` address.\n- A `created_after` or `created_before` time window.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "created_after",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": false,
                      "key": "created_before",
                      "value": "2026-06-01T00:00:00Z",
                      "description": "Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter by aggregate delivery status."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Filter by category."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "delivered@messagebird.dev",
                      "description": "Filter by recipient address. Exact match against any `to`/`cc`/`bcc` recipient on the message. The address is normalized to lowercase before comparison.\n"
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "noreply@acme.com",
                      "description": "Filter by sender address. Exact match against the message `from` field. The address is normalized to lowercase before comparison.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"from\": {\n        \"email\": \"jane@acme.com\",\n        \"name\": \"Jane Doe\"\n      },\n      \"to\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"cc\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"bcc\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"category\": \"marketing\",\n      \"reply_to\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"status\": \"scheduled\",\n      \"requested_language\": \"pt-BR\",\n      \"resolved_language\": \"pt-BR\",\n      \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"attachments\": [\n        {\n          \"id\": \"ea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\",\n          \"size\": 215432,\n          \"inline\": false\n        }\n      ],\n      \"in_reply_to_message_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0c6da909-8f5b-89bb-8711-63d06090856a",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List messages",
                "description": {
                  "content": "Returns the workspace's sent and scheduled messages, newest first, as a cursor page. Each item has the aggregate delivery `status` and per-state recipient counts. Message bodies are omitted.\n\nCombine filters to narrow the page:\n\n- Delivery status.\n- Category.\n- Tag.\n- An exact `to` or `from` address.\n- A `created_after` or `created_before` time window.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "created_after",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": false,
                      "key": "created_before",
                      "value": "2026-06-01T00:00:00Z",
                      "description": "Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter by aggregate delivery status."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Filter by category."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "delivered@messagebird.dev",
                      "description": "Filter by recipient address. Exact match against any `to`/`cc`/`bcc` recipient on the message. The address is normalized to lowercase before comparison.\n"
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "noreply@acme.com",
                      "description": "Filter by sender address. Exact match against the message `from` field. The address is normalized to lowercase before comparison.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"from\": {\n        \"email\": \"jane@acme.com\",\n        \"name\": \"Jane Doe\"\n      },\n      \"to\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"cc\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"bcc\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"category\": \"marketing\",\n      \"reply_to\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"status\": \"scheduled\",\n      \"requested_language\": \"pt-BR\",\n      \"resolved_language\": \"pt-BR\",\n      \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"attachments\": [\n        {\n          \"id\": \"ea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\",\n          \"size\": 215432,\n          \"inline\": false\n        }\n      ],\n      \"in_reply_to_message_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ca06757d-463a-8175-8aa2-a471185fe46e",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List messages",
                "description": {
                  "content": "Returns the workspace's sent and scheduled messages, newest first, as a cursor page. Each item has the aggregate delivery `status` and per-state recipient counts. Message bodies are omitted.\n\nCombine filters to narrow the page:\n\n- Delivery status.\n- Category.\n- Tag.\n- An exact `to` or `from` address.\n- A `created_after` or `created_before` time window.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "created_after",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": false,
                      "key": "created_before",
                      "value": "2026-06-01T00:00:00Z",
                      "description": "Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter by aggregate delivery status."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Filter by category."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "delivered@messagebird.dev",
                      "description": "Filter by recipient address. Exact match against any `to`/`cc`/`bcc` recipient on the message. The address is normalized to lowercase before comparison.\n"
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "noreply@acme.com",
                      "description": "Filter by sender address. Exact match against the message `from` field. The address is normalized to lowercase before comparison.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"from\": {\n        \"email\": \"jane@acme.com\",\n        \"name\": \"Jane Doe\"\n      },\n      \"to\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"cc\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"bcc\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"category\": \"marketing\",\n      \"reply_to\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"status\": \"scheduled\",\n      \"requested_language\": \"pt-BR\",\n      \"resolved_language\": \"pt-BR\",\n      \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"attachments\": [\n        {\n          \"id\": \"ea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\",\n          \"size\": 215432,\n          \"inline\": false\n        }\n      ],\n      \"in_reply_to_message_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b0a52345-07e3-8c4f-87a8-b38f4614fafb",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List messages",
                "description": {
                  "content": "Returns the workspace's sent and scheduled messages, newest first, as a cursor page. Each item has the aggregate delivery `status` and per-state recipient counts. Message bodies are omitted.\n\nCombine filters to narrow the page:\n\n- Delivery status.\n- Category.\n- Tag.\n- An exact `to` or `from` address.\n- A `created_after` or `created_before` time window.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "created_after",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": false,
                      "key": "created_before",
                      "value": "2026-06-01T00:00:00Z",
                      "description": "Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter by aggregate delivery status."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Filter by category."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "delivered@messagebird.dev",
                      "description": "Filter by recipient address. Exact match against any `to`/`cc`/`bcc` recipient on the message. The address is normalized to lowercase before comparison.\n"
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "noreply@acme.com",
                      "description": "Filter by sender address. Exact match against the message `from` field. The address is normalized to lowercase before comparison.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"from\": {\n        \"email\": \"jane@acme.com\",\n        \"name\": \"Jane Doe\"\n      },\n      \"to\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"cc\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"bcc\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"category\": \"marketing\",\n      \"reply_to\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"status\": \"scheduled\",\n      \"requested_language\": \"pt-BR\",\n      \"resolved_language\": \"pt-BR\",\n      \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"attachments\": [\n        {\n          \"id\": \"ea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\",\n          \"size\": 215432,\n          \"inline\": false\n        }\n      ],\n      \"in_reply_to_message_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "02d75275-25d3-8bc9-8c9e-7fefb9ad8595",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List messages",
                "description": {
                  "content": "Returns the workspace's sent and scheduled messages, newest first, as a cursor page. Each item has the aggregate delivery `status` and per-state recipient counts. Message bodies are omitted.\n\nCombine filters to narrow the page:\n\n- Delivery status.\n- Category.\n- Tag.\n- An exact `to` or `from` address.\n- A `created_after` or `created_before` time window.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "created_after",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": false,
                      "key": "created_before",
                      "value": "2026-06-01T00:00:00Z",
                      "description": "Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter by aggregate delivery status."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Filter by category."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "delivered@messagebird.dev",
                      "description": "Filter by recipient address. Exact match against any `to`/`cc`/`bcc` recipient on the message. The address is normalized to lowercase before comparison.\n"
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "noreply@acme.com",
                      "description": "Filter by sender address. Exact match against the message `from` field. The address is normalized to lowercase before comparison.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"from\": {\n        \"email\": \"jane@acme.com\",\n        \"name\": \"Jane Doe\"\n      },\n      \"to\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"cc\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"bcc\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"category\": \"marketing\",\n      \"reply_to\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"status\": \"scheduled\",\n      \"requested_language\": \"pt-BR\",\n      \"resolved_language\": \"pt-BR\",\n      \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"attachments\": [\n        {\n          \"id\": \"ea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\",\n          \"size\": 215432,\n          \"inline\": false\n        }\n      ],\n      \"in_reply_to_message_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "560de48a-0e7a-8580-846b-d0521182bb6f",
          "name": "Create a batch of email messages",
          "request": {
            "name": "Create a batch of email messages",
            "description": {
              "content": "Accepts up to 100 independent email messages and queues them for delivery. All items are validated before any are queued: if one fails validation, the entire batch is rejected. Field-level validation failures and business-rule failures, such as sending from a domain that is not verified, both return `422`. An item can set `scheduled_at` to send it later, on the same terms as a single scheduled send, and one batch can mix scheduled and immediate messages. Cancel a scheduled item before it sends with [Cancel an email message](https://bird.com/docs/api/reference/cancel-email-message). Suppression is evaluated per recipient after acceptance, never as a synchronous error. The `202` response returns one entry per message in submission order, each with its own `id` you can use to fetch that message or match it against webhook events. Attachments are allowed per message. Each message must stay within the 20 MB estimated generated message-size cap, and the serialized JSON request body for the whole batch has a hard 20 MB cap.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "batches"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"messages\": [\n    {\n      \"from\": {\n        \"email\": \"noreply@acme.com\",\n        \"name\": \"Acme Support\"\n      },\n      \"to\": [\n        {\n          \"email\": \"delivered@messagebird.dev\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"subject\": \"Your receipt for order #1234\",\n      \"text\": \"Thanks for your purchase! Your receipt is attached.\"\n    },\n    {\n      \"from\": {\n        \"email\": \"noreply@acme.com\",\n        \"name\": \"Acme Support\"\n      },\n      \"to\": [\n        {\n          \"email\": \"delivered@messagebird.dev\",\n          \"name\": \"John Roe\"\n        }\n      ],\n      \"subject\": \"Your receipt for order #1235\",\n      \"text\": \"Thanks for your purchase! Your receipt is attached.\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "be771830-4cc0-89be-826a-9b2ceb81042b",
              "name": "Batch accepted for asynchronous delivery.",
              "originalRequest": {
                "name": "Create a batch of email messages",
                "description": {
                  "content": "Accepts up to 100 independent email messages and queues them for delivery. All items are validated before any are queued: if one fails validation, the entire batch is rejected. Field-level validation failures and business-rule failures, such as sending from a domain that is not verified, both return `422`. An item can set `scheduled_at` to send it later, on the same terms as a single scheduled send, and one batch can mix scheduled and immediate messages. Cancel a scheduled item before it sends with [Cancel an email message](https://bird.com/docs/api/reference/cancel-email-message). Suppression is evaluated per recipient after acceptance, never as a synchronous error. The `202` response returns one entry per message in submission order, each with its own `id` you can use to fetch that message or match it against webhook events. Attachments are allowed per message. Each message must stay within the 20 MB estimated generated message-size cap, and the serialized JSON request body for the whole batch has a hard 20 MB cap.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "batches"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"messages\": [\n    {\n      \"from\": {\n        \"email\": \"noreply@acme.com\",\n        \"name\": \"Acme Support\"\n      },\n      \"to\": [\n        {\n          \"email\": \"delivered@messagebird.dev\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"subject\": \"Your receipt for order #1234\",\n      \"text\": \"Thanks for your purchase! Your receipt is attached.\"\n    },\n    {\n      \"from\": {\n        \"email\": \"noreply@acme.com\",\n        \"name\": \"Acme Support\"\n      },\n      \"to\": [\n        {\n          \"email\": \"delivered@messagebird.dev\",\n          \"name\": \"John Roe\"\n        }\n      ],\n      \"subject\": \"Your receipt for order #1235\",\n      \"text\": \"Thanks for your purchase! Your receipt is attached.\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"status\": \"accepted\",\n      \"category\": \"marketing\",\n      \"requested_language\": \"pt-BR\",\n      \"resolved_language\": \"pt-BR\",\n      \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\"\n    },\n    {\n      \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mh\",\n      \"status\": \"accepted\",\n      \"category\": \"transactional\",\n      \"scheduled_at\": \"2026-05-22T09:00:00Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "956da8a1-429d-8bdc-8cdc-1e67c8de16f4",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create a batch of email messages",
                "description": {
                  "content": "Accepts up to 100 independent email messages and queues them for delivery. All items are validated before any are queued: if one fails validation, the entire batch is rejected. Field-level validation failures and business-rule failures, such as sending from a domain that is not verified, both return `422`. An item can set `scheduled_at` to send it later, on the same terms as a single scheduled send, and one batch can mix scheduled and immediate messages. Cancel a scheduled item before it sends with [Cancel an email message](https://bird.com/docs/api/reference/cancel-email-message). Suppression is evaluated per recipient after acceptance, never as a synchronous error. The `202` response returns one entry per message in submission order, each with its own `id` you can use to fetch that message or match it against webhook events. Attachments are allowed per message. Each message must stay within the 20 MB estimated generated message-size cap, and the serialized JSON request body for the whole batch has a hard 20 MB cap.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "batches"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"messages\": [\n    {\n      \"from\": {\n        \"email\": \"noreply@acme.com\",\n        \"name\": \"Acme Support\"\n      },\n      \"to\": [\n        {\n          \"email\": \"delivered@messagebird.dev\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"subject\": \"Your receipt for order #1234\",\n      \"text\": \"Thanks for your purchase! Your receipt is attached.\"\n    },\n    {\n      \"from\": {\n        \"email\": \"noreply@acme.com\",\n        \"name\": \"Acme Support\"\n      },\n      \"to\": [\n        {\n          \"email\": \"delivered@messagebird.dev\",\n          \"name\": \"John Roe\"\n        }\n      ],\n      \"subject\": \"Your receipt for order #1235\",\n      \"text\": \"Thanks for your purchase! Your receipt is attached.\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"status\": \"accepted\",\n      \"category\": \"marketing\",\n      \"requested_language\": \"pt-BR\",\n      \"resolved_language\": \"pt-BR\",\n      \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\"\n    },\n    {\n      \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mh\",\n      \"status\": \"accepted\",\n      \"category\": \"transactional\",\n      \"scheduled_at\": \"2026-05-22T09:00:00Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3eaeb77c-b20c-8f62-8049-337e479ee8e0",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create a batch of email messages",
                "description": {
                  "content": "Accepts up to 100 independent email messages and queues them for delivery. All items are validated before any are queued: if one fails validation, the entire batch is rejected. Field-level validation failures and business-rule failures, such as sending from a domain that is not verified, both return `422`. An item can set `scheduled_at` to send it later, on the same terms as a single scheduled send, and one batch can mix scheduled and immediate messages. Cancel a scheduled item before it sends with [Cancel an email message](https://bird.com/docs/api/reference/cancel-email-message). Suppression is evaluated per recipient after acceptance, never as a synchronous error. The `202` response returns one entry per message in submission order, each with its own `id` you can use to fetch that message or match it against webhook events. Attachments are allowed per message. Each message must stay within the 20 MB estimated generated message-size cap, and the serialized JSON request body for the whole batch has a hard 20 MB cap.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "batches"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"messages\": [\n    {\n      \"from\": {\n        \"email\": \"noreply@acme.com\",\n        \"name\": \"Acme Support\"\n      },\n      \"to\": [\n        {\n          \"email\": \"delivered@messagebird.dev\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"subject\": \"Your receipt for order #1234\",\n      \"text\": \"Thanks for your purchase! Your receipt is attached.\"\n    },\n    {\n      \"from\": {\n        \"email\": \"noreply@acme.com\",\n        \"name\": \"Acme Support\"\n      },\n      \"to\": [\n        {\n          \"email\": \"delivered@messagebird.dev\",\n          \"name\": \"John Roe\"\n        }\n      ],\n      \"subject\": \"Your receipt for order #1235\",\n      \"text\": \"Thanks for your purchase! Your receipt is attached.\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"status\": \"accepted\",\n      \"category\": \"marketing\",\n      \"requested_language\": \"pt-BR\",\n      \"resolved_language\": \"pt-BR\",\n      \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\"\n    },\n    {\n      \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mh\",\n      \"status\": \"accepted\",\n      \"category\": \"transactional\",\n      \"scheduled_at\": \"2026-05-22T09:00:00Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "59d1fd94-08e4-8dc1-89cd-cc054d7104a1",
              "name": "Insufficient balance",
              "originalRequest": {
                "name": "Create a batch of email messages",
                "description": {
                  "content": "Accepts up to 100 independent email messages and queues them for delivery. All items are validated before any are queued: if one fails validation, the entire batch is rejected. Field-level validation failures and business-rule failures, such as sending from a domain that is not verified, both return `422`. An item can set `scheduled_at` to send it later, on the same terms as a single scheduled send, and one batch can mix scheduled and immediate messages. Cancel a scheduled item before it sends with [Cancel an email message](https://bird.com/docs/api/reference/cancel-email-message). Suppression is evaluated per recipient after acceptance, never as a synchronous error. The `202` response returns one entry per message in submission order, each with its own `id` you can use to fetch that message or match it against webhook events. Attachments are allowed per message. Each message must stay within the 20 MB estimated generated message-size cap, and the serialized JSON request body for the whole batch has a hard 20 MB cap.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "batches"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"messages\": [\n    {\n      \"from\": {\n        \"email\": \"noreply@acme.com\",\n        \"name\": \"Acme Support\"\n      },\n      \"to\": [\n        {\n          \"email\": \"delivered@messagebird.dev\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"subject\": \"Your receipt for order #1234\",\n      \"text\": \"Thanks for your purchase! Your receipt is attached.\"\n    },\n    {\n      \"from\": {\n        \"email\": \"noreply@acme.com\",\n        \"name\": \"Acme Support\"\n      },\n      \"to\": [\n        {\n          \"email\": \"delivered@messagebird.dev\",\n          \"name\": \"John Roe\"\n        }\n      ],\n      \"subject\": \"Your receipt for order #1235\",\n      \"text\": \"Thanks for your purchase! Your receipt is attached.\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Payment Required",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"status\": \"accepted\",\n      \"category\": \"marketing\",\n      \"requested_language\": \"pt-BR\",\n      \"resolved_language\": \"pt-BR\",\n      \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\"\n    },\n    {\n      \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mh\",\n      \"status\": \"accepted\",\n      \"category\": \"transactional\",\n      \"scheduled_at\": \"2026-05-22T09:00:00Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "38fc9c1e-a628-862e-8684-c0febf4b37b8",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create a batch of email messages",
                "description": {
                  "content": "Accepts up to 100 independent email messages and queues them for delivery. All items are validated before any are queued: if one fails validation, the entire batch is rejected. Field-level validation failures and business-rule failures, such as sending from a domain that is not verified, both return `422`. An item can set `scheduled_at` to send it later, on the same terms as a single scheduled send, and one batch can mix scheduled and immediate messages. Cancel a scheduled item before it sends with [Cancel an email message](https://bird.com/docs/api/reference/cancel-email-message). Suppression is evaluated per recipient after acceptance, never as a synchronous error. The `202` response returns one entry per message in submission order, each with its own `id` you can use to fetch that message or match it against webhook events. Attachments are allowed per message. Each message must stay within the 20 MB estimated generated message-size cap, and the serialized JSON request body for the whole batch has a hard 20 MB cap.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "batches"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"messages\": [\n    {\n      \"from\": {\n        \"email\": \"noreply@acme.com\",\n        \"name\": \"Acme Support\"\n      },\n      \"to\": [\n        {\n          \"email\": \"delivered@messagebird.dev\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"subject\": \"Your receipt for order #1234\",\n      \"text\": \"Thanks for your purchase! Your receipt is attached.\"\n    },\n    {\n      \"from\": {\n        \"email\": \"noreply@acme.com\",\n        \"name\": \"Acme Support\"\n      },\n      \"to\": [\n        {\n          \"email\": \"delivered@messagebird.dev\",\n          \"name\": \"John Roe\"\n        }\n      ],\n      \"subject\": \"Your receipt for order #1235\",\n      \"text\": \"Thanks for your purchase! Your receipt is attached.\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"status\": \"accepted\",\n      \"category\": \"marketing\",\n      \"requested_language\": \"pt-BR\",\n      \"resolved_language\": \"pt-BR\",\n      \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\"\n    },\n    {\n      \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mh\",\n      \"status\": \"accepted\",\n      \"category\": \"transactional\",\n      \"scheduled_at\": \"2026-05-22T09:00:00Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5409d71a-9c35-8920-843f-a0529f563e2f",
              "name": "Request body or message size exceeds the allowed limit",
              "originalRequest": {
                "name": "Create a batch of email messages",
                "description": {
                  "content": "Accepts up to 100 independent email messages and queues them for delivery. All items are validated before any are queued: if one fails validation, the entire batch is rejected. Field-level validation failures and business-rule failures, such as sending from a domain that is not verified, both return `422`. An item can set `scheduled_at` to send it later, on the same terms as a single scheduled send, and one batch can mix scheduled and immediate messages. Cancel a scheduled item before it sends with [Cancel an email message](https://bird.com/docs/api/reference/cancel-email-message). Suppression is evaluated per recipient after acceptance, never as a synchronous error. The `202` response returns one entry per message in submission order, each with its own `id` you can use to fetch that message or match it against webhook events. Attachments are allowed per message. Each message must stay within the 20 MB estimated generated message-size cap, and the serialized JSON request body for the whole batch has a hard 20 MB cap.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "batches"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"messages\": [\n    {\n      \"from\": {\n        \"email\": \"noreply@acme.com\",\n        \"name\": \"Acme Support\"\n      },\n      \"to\": [\n        {\n          \"email\": \"delivered@messagebird.dev\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"subject\": \"Your receipt for order #1234\",\n      \"text\": \"Thanks for your purchase! Your receipt is attached.\"\n    },\n    {\n      \"from\": {\n        \"email\": \"noreply@acme.com\",\n        \"name\": \"Acme Support\"\n      },\n      \"to\": [\n        {\n          \"email\": \"delivered@messagebird.dev\",\n          \"name\": \"John Roe\"\n        }\n      ],\n      \"subject\": \"Your receipt for order #1235\",\n      \"text\": \"Thanks for your purchase! Your receipt is attached.\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Request Entity Too Large",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"status\": \"accepted\",\n      \"category\": \"marketing\",\n      \"requested_language\": \"pt-BR\",\n      \"resolved_language\": \"pt-BR\",\n      \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\"\n    },\n    {\n      \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mh\",\n      \"status\": \"accepted\",\n      \"category\": \"transactional\",\n      \"scheduled_at\": \"2026-05-22T09:00:00Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d26798c6-6808-88b1-83d8-804beea9b138",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create a batch of email messages",
                "description": {
                  "content": "Accepts up to 100 independent email messages and queues them for delivery. All items are validated before any are queued: if one fails validation, the entire batch is rejected. Field-level validation failures and business-rule failures, such as sending from a domain that is not verified, both return `422`. An item can set `scheduled_at` to send it later, on the same terms as a single scheduled send, and one batch can mix scheduled and immediate messages. Cancel a scheduled item before it sends with [Cancel an email message](https://bird.com/docs/api/reference/cancel-email-message). Suppression is evaluated per recipient after acceptance, never as a synchronous error. The `202` response returns one entry per message in submission order, each with its own `id` you can use to fetch that message or match it against webhook events. Attachments are allowed per message. Each message must stay within the 20 MB estimated generated message-size cap, and the serialized JSON request body for the whole batch has a hard 20 MB cap.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "batches"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"messages\": [\n    {\n      \"from\": {\n        \"email\": \"noreply@acme.com\",\n        \"name\": \"Acme Support\"\n      },\n      \"to\": [\n        {\n          \"email\": \"delivered@messagebird.dev\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"subject\": \"Your receipt for order #1234\",\n      \"text\": \"Thanks for your purchase! Your receipt is attached.\"\n    },\n    {\n      \"from\": {\n        \"email\": \"noreply@acme.com\",\n        \"name\": \"Acme Support\"\n      },\n      \"to\": [\n        {\n          \"email\": \"delivered@messagebird.dev\",\n          \"name\": \"John Roe\"\n        }\n      ],\n      \"subject\": \"Your receipt for order #1235\",\n      \"text\": \"Thanks for your purchase! Your receipt is attached.\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"status\": \"accepted\",\n      \"category\": \"marketing\",\n      \"requested_language\": \"pt-BR\",\n      \"resolved_language\": \"pt-BR\",\n      \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\"\n    },\n    {\n      \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mh\",\n      \"status\": \"accepted\",\n      \"category\": \"transactional\",\n      \"scheduled_at\": \"2026-05-22T09:00:00Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a9b4b0de-5f15-87fa-851e-3814c7a75136",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create a batch of email messages",
                "description": {
                  "content": "Accepts up to 100 independent email messages and queues them for delivery. All items are validated before any are queued: if one fails validation, the entire batch is rejected. Field-level validation failures and business-rule failures, such as sending from a domain that is not verified, both return `422`. An item can set `scheduled_at` to send it later, on the same terms as a single scheduled send, and one batch can mix scheduled and immediate messages. Cancel a scheduled item before it sends with [Cancel an email message](https://bird.com/docs/api/reference/cancel-email-message). Suppression is evaluated per recipient after acceptance, never as a synchronous error. The `202` response returns one entry per message in submission order, each with its own `id` you can use to fetch that message or match it against webhook events. Attachments are allowed per message. Each message must stay within the 20 MB estimated generated message-size cap, and the serialized JSON request body for the whole batch has a hard 20 MB cap.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "batches"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"messages\": [\n    {\n      \"from\": {\n        \"email\": \"noreply@acme.com\",\n        \"name\": \"Acme Support\"\n      },\n      \"to\": [\n        {\n          \"email\": \"delivered@messagebird.dev\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"subject\": \"Your receipt for order #1234\",\n      \"text\": \"Thanks for your purchase! Your receipt is attached.\"\n    },\n    {\n      \"from\": {\n        \"email\": \"noreply@acme.com\",\n        \"name\": \"Acme Support\"\n      },\n      \"to\": [\n        {\n          \"email\": \"delivered@messagebird.dev\",\n          \"name\": \"John Roe\"\n        }\n      ],\n      \"subject\": \"Your receipt for order #1235\",\n      \"text\": \"Thanks for your purchase! Your receipt is attached.\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 202,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"status\": \"accepted\",\n      \"category\": \"marketing\",\n      \"requested_language\": \"pt-BR\",\n      \"resolved_language\": \"pt-BR\",\n      \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\"\n    },\n    {\n      \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mh\",\n      \"status\": \"accepted\",\n      \"category\": \"transactional\",\n      \"scheduled_at\": \"2026-05-22T09:00:00Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "74521acc-e8d5-82f1-852f-7618a8a70b15",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create a batch of email messages",
                "description": {
                  "content": "Accepts up to 100 independent email messages and queues them for delivery. All items are validated before any are queued: if one fails validation, the entire batch is rejected. Field-level validation failures and business-rule failures, such as sending from a domain that is not verified, both return `422`. An item can set `scheduled_at` to send it later, on the same terms as a single scheduled send, and one batch can mix scheduled and immediate messages. Cancel a scheduled item before it sends with [Cancel an email message](https://bird.com/docs/api/reference/cancel-email-message). Suppression is evaluated per recipient after acceptance, never as a synchronous error. The `202` response returns one entry per message in submission order, each with its own `id` you can use to fetch that message or match it against webhook events. Attachments are allowed per message. Each message must stay within the 20 MB estimated generated message-size cap, and the serialized JSON request body for the whole batch has a hard 20 MB cap.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "batches"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"messages\": [\n    {\n      \"from\": {\n        \"email\": \"noreply@acme.com\",\n        \"name\": \"Acme Support\"\n      },\n      \"to\": [\n        {\n          \"email\": \"delivered@messagebird.dev\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"subject\": \"Your receipt for order #1234\",\n      \"text\": \"Thanks for your purchase! Your receipt is attached.\"\n    },\n    {\n      \"from\": {\n        \"email\": \"noreply@acme.com\",\n        \"name\": \"Acme Support\"\n      },\n      \"to\": [\n        {\n          \"email\": \"delivered@messagebird.dev\",\n          \"name\": \"John Roe\"\n        }\n      ],\n      \"subject\": \"Your receipt for order #1235\",\n      \"text\": \"Thanks for your purchase! Your receipt is attached.\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"status\": \"accepted\",\n      \"category\": \"marketing\",\n      \"requested_language\": \"pt-BR\",\n      \"resolved_language\": \"pt-BR\",\n      \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\"\n    },\n    {\n      \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mh\",\n      \"status\": \"accepted\",\n      \"category\": \"transactional\",\n      \"scheduled_at\": \"2026-05-22T09:00:00Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "3908ee31-09cb-878c-8143-96c7e246ac3a",
          "name": "Get a message",
          "request": {
            "name": "Get a message",
            "description": {
              "content": "Returns a single message with its aggregate delivery `status` and per-state recipient counts. The response never includes the `html`/`text` bodies. When content storage is enabled for the send, fetch the stored bodies with [Get stored message content](https://bird.com/docs/api/reference/get-email-message-content). Per-recipient statuses and the event timeline are separate sub-resources.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "messages",
                ":message_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "message_id",
                  "description": "(Required) ID of the message to fetch, from the send response's `id` field."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "3aeaea40-118a-809c-85e1-acd497eedd87",
              "name": "Message object.",
              "originalRequest": {
                "name": "Get a message",
                "description": {
                  "content": "Returns a single message with its aggregate delivery `status` and per-state recipient counts. The response never includes the `html`/`text` bodies. When content storage is enabled for the send, fetch the stored bodies with [Get stored message content](https://bird.com/docs/api/reference/get-email-message-content). Per-recipient statuses and the event timeline are separate sub-resources.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message to fetch, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"from\": {\n    \"email\": \"jane@acme.com\",\n    \"name\": \"Jane Doe\"\n  },\n  \"to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"bcc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"category\": \"marketing\",\n  \"reply_to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"status\": \"scheduled\",\n  \"requested_language\": \"pt-BR\",\n  \"resolved_language\": \"pt-BR\",\n  \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"attachments\": [\n    {\n      \"id\": \"ea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432,\n      \"inline\": false\n    }\n  ],\n  \"in_reply_to_message_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fef5a1a0-cb74-8ef2-8124-35be17d4c915",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a message",
                "description": {
                  "content": "Returns a single message with its aggregate delivery `status` and per-state recipient counts. The response never includes the `html`/`text` bodies. When content storage is enabled for the send, fetch the stored bodies with [Get stored message content](https://bird.com/docs/api/reference/get-email-message-content). Per-recipient statuses and the event timeline are separate sub-resources.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message to fetch, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"from\": {\n    \"email\": \"jane@acme.com\",\n    \"name\": \"Jane Doe\"\n  },\n  \"to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"bcc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"category\": \"marketing\",\n  \"reply_to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"status\": \"scheduled\",\n  \"requested_language\": \"pt-BR\",\n  \"resolved_language\": \"pt-BR\",\n  \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"attachments\": [\n    {\n      \"id\": \"ea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432,\n      \"inline\": false\n    }\n  ],\n  \"in_reply_to_message_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f39e2d48-0dea-804f-8705-15ca3b9c293f",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a message",
                "description": {
                  "content": "Returns a single message with its aggregate delivery `status` and per-state recipient counts. The response never includes the `html`/`text` bodies. When content storage is enabled for the send, fetch the stored bodies with [Get stored message content](https://bird.com/docs/api/reference/get-email-message-content). Per-recipient statuses and the event timeline are separate sub-resources.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message to fetch, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"from\": {\n    \"email\": \"jane@acme.com\",\n    \"name\": \"Jane Doe\"\n  },\n  \"to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"bcc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"category\": \"marketing\",\n  \"reply_to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"status\": \"scheduled\",\n  \"requested_language\": \"pt-BR\",\n  \"resolved_language\": \"pt-BR\",\n  \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"attachments\": [\n    {\n      \"id\": \"ea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432,\n      \"inline\": false\n    }\n  ],\n  \"in_reply_to_message_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ff218eea-2783-899b-8653-f5f6ae80bd57",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a message",
                "description": {
                  "content": "Returns a single message with its aggregate delivery `status` and per-state recipient counts. The response never includes the `html`/`text` bodies. When content storage is enabled for the send, fetch the stored bodies with [Get stored message content](https://bird.com/docs/api/reference/get-email-message-content). Per-recipient statuses and the event timeline are separate sub-resources.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message to fetch, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"from\": {\n    \"email\": \"jane@acme.com\",\n    \"name\": \"Jane Doe\"\n  },\n  \"to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"bcc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"category\": \"marketing\",\n  \"reply_to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"status\": \"scheduled\",\n  \"requested_language\": \"pt-BR\",\n  \"resolved_language\": \"pt-BR\",\n  \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"attachments\": [\n    {\n      \"id\": \"ea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432,\n      \"inline\": false\n    }\n  ],\n  \"in_reply_to_message_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "159af082-a684-8777-8e91-1b7a4c6ed2c5",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a message",
                "description": {
                  "content": "Returns a single message with its aggregate delivery `status` and per-state recipient counts. The response never includes the `html`/`text` bodies. When content storage is enabled for the send, fetch the stored bodies with [Get stored message content](https://bird.com/docs/api/reference/get-email-message-content). Per-recipient statuses and the event timeline are separate sub-resources.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message to fetch, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"from\": {\n    \"email\": \"jane@acme.com\",\n    \"name\": \"Jane Doe\"\n  },\n  \"to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"bcc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"category\": \"marketing\",\n  \"reply_to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"status\": \"scheduled\",\n  \"requested_language\": \"pt-BR\",\n  \"resolved_language\": \"pt-BR\",\n  \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"attachments\": [\n    {\n      \"id\": \"ea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432,\n      \"inline\": false\n    }\n  ],\n  \"in_reply_to_message_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8e469c3c-c7da-8255-8d44-e9698362644c",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a message",
                "description": {
                  "content": "Returns a single message with its aggregate delivery `status` and per-state recipient counts. The response never includes the `html`/`text` bodies. When content storage is enabled for the send, fetch the stored bodies with [Get stored message content](https://bird.com/docs/api/reference/get-email-message-content). Per-recipient statuses and the event timeline are separate sub-resources.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message to fetch, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"from\": {\n    \"email\": \"jane@acme.com\",\n    \"name\": \"Jane Doe\"\n  },\n  \"to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"bcc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"category\": \"marketing\",\n  \"reply_to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"status\": \"scheduled\",\n  \"requested_language\": \"pt-BR\",\n  \"resolved_language\": \"pt-BR\",\n  \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"attachments\": [\n    {\n      \"id\": \"ea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432,\n      \"inline\": false\n    }\n  ],\n  \"in_reply_to_message_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "375c77e5-f2ac-8a86-8c08-97dd891ebb9f",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a message",
                "description": {
                  "content": "Returns a single message with its aggregate delivery `status` and per-state recipient counts. The response never includes the `html`/`text` bodies. When content storage is enabled for the send, fetch the stored bodies with [Get stored message content](https://bird.com/docs/api/reference/get-email-message-content). Per-recipient statuses and the event timeline are separate sub-resources.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message to fetch, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"from\": {\n    \"email\": \"jane@acme.com\",\n    \"name\": \"Jane Doe\"\n  },\n  \"to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"bcc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"category\": \"marketing\",\n  \"reply_to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"status\": \"scheduled\",\n  \"requested_language\": \"pt-BR\",\n  \"resolved_language\": \"pt-BR\",\n  \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"template_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"attachments\": [\n    {\n      \"id\": \"ea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432,\n      \"inline\": false\n    }\n  ],\n  \"in_reply_to_message_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "019928e3-5025-83b9-8f0e-091619323d09",
          "name": "Cancel a scheduled message",
          "request": {
            "name": "Cancel a scheduled message",
            "description": {
              "content": "Cancels a message that was scheduled with `scheduled_at` before it sends. Only a message that is still scheduled can be canceled. A message that already started sending, was delivered, or was previously canceled returns a conflict error. The message's status becomes `canceled` and an `email.canceled` webhook event fires. Canceling does not return consumed scheduled-send quota.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "messages",
                ":message_id",
                "cancel"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "message_id",
                  "description": "(Required) ID of the scheduled message to cancel, from the send response's `id` field."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST"
          },
          "response": [
            {
              "id": "5f5a96e4-796e-821f-8d6b-aaf4def41cd1",
              "name": "The message is canceled and no longer eligible to send.",
              "originalRequest": {
                "name": "Cancel a scheduled message",
                "description": {
                  "content": "Cancels a message that was scheduled with `scheduled_at` before it sends. Only a message that is still scheduled can be canceled. A message that already started sending, was delivered, or was previously canceled returns a conflict error. The message's status becomes `canceled` and an `email.canceled` webhook event fires. Canceling does not return consumed scheduled-send quota.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "cancel"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the scheduled message to cancel, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "1a3bc06c-e98e-89c5-803c-82b8db524d71",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Cancel a scheduled message",
                "description": {
                  "content": "Cancels a message that was scheduled with `scheduled_at` before it sends. Only a message that is still scheduled can be canceled. A message that already started sending, was delivered, or was previously canceled returns a conflict error. The message's status becomes `canceled` and an `email.canceled` webhook event fires. Canceling does not return consumed scheduled-send quota.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "cancel"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the scheduled message to cancel, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "73d59885-e5e7-81e5-81e6-34932d8a71e1",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Cancel a scheduled message",
                "description": {
                  "content": "Cancels a message that was scheduled with `scheduled_at` before it sends. Only a message that is still scheduled can be canceled. A message that already started sending, was delivered, or was previously canceled returns a conflict error. The message's status becomes `canceled` and an `email.canceled` webhook event fires. Canceling does not return consumed scheduled-send quota.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "cancel"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the scheduled message to cancel, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "11c8b7da-061f-8205-8a00-2a772fc5c80f",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Cancel a scheduled message",
                "description": {
                  "content": "Cancels a message that was scheduled with `scheduled_at` before it sends. Only a message that is still scheduled can be canceled. A message that already started sending, was delivered, or was previously canceled returns a conflict error. The message's status becomes `canceled` and an `email.canceled` webhook event fires. Canceling does not return consumed scheduled-send quota.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "cancel"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the scheduled message to cancel, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a595dba2-9baf-882e-8ec8-ad7659724a7a",
              "name": "Resource conflict",
              "originalRequest": {
                "name": "Cancel a scheduled message",
                "description": {
                  "content": "Cancels a message that was scheduled with `scheduled_at` before it sends. Only a message that is still scheduled can be canceled. A message that already started sending, was delivered, or was previously canceled returns a conflict error. The message's status becomes `canceled` and an `email.canceled` webhook event fires. Canceling does not return consumed scheduled-send quota.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "cancel"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the scheduled message to cancel, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "bd4b9383-4439-8201-83a6-31c8267e60c1",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Cancel a scheduled message",
                "description": {
                  "content": "Cancels a message that was scheduled with `scheduled_at` before it sends. Only a message that is still scheduled can be canceled. A message that already started sending, was delivered, or was previously canceled returns a conflict error. The message's status becomes `canceled` and an `email.canceled` webhook event fires. Canceling does not return consumed scheduled-send quota.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "cancel"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the scheduled message to cancel, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c07a5582-9cc0-879f-883b-5475992c6c02",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Cancel a scheduled message",
                "description": {
                  "content": "Cancels a message that was scheduled with `scheduled_at` before it sends. Only a message that is still scheduled can be canceled. A message that already started sending, was delivered, or was previously canceled returns a conflict error. The message's status becomes `canceled` and an `email.canceled` webhook event fires. Canceling does not return consumed scheduled-send quota.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "cancel"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the scheduled message to cancel, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2208ff9a-3c4a-886d-84b2-dcd68a5a02c3",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Cancel a scheduled message",
                "description": {
                  "content": "Cancels a message that was scheduled with `scheduled_at` before it sends. Only a message that is still scheduled can be canceled. A message that already started sending, was delivered, or was previously canceled returns a conflict error. The message's status becomes `canceled` and an `email.canceled` webhook event fires. Canceling does not return consumed scheduled-send quota.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "cancel"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the scheduled message to cancel, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "f5e8b315-f1d2-832b-86cb-868cc4434ebe",
          "name": "List recipients of a message",
          "request": {
            "name": "List recipients of a message",
            "description": {
              "content": "Returns the message's per-recipient delivery state as a cursor page: each entry is one `to`/`cc`/`bcc` recipient with its role, current `status`, rejection or bounce detail when delivery failed, and open/click counts. Use it to see which specific addresses failed when the aggregate message `status` is mixed (for example `partial_failure`).\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "messages",
                ":message_id",
                "recipients"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "message_id",
                  "description": "(Required) ID of the message whose recipients to list, from the send response's `id` field."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "29b66340-809b-8157-8c64-ecdb8e3ad791",
              "name": "Paginated list of recipients for this message.",
              "originalRequest": {
                "name": "List recipients of a message",
                "description": {
                  "content": "Returns the message's per-recipient delivery state as a cursor page: each entry is one `to`/`cc`/`bcc` recipient with its role, current `status`, rejection or bounce detail when delivery failed, and open/click counts. Use it to see which specific addresses failed when the aggregate message `status` is mixed (for example `partial_failure`).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "recipients"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message whose recipients to list, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"parent_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"role\": \"to\",\n      \"status\": \"accepted\",\n      \"rejection_reason\": \"recipient_suppressed\",\n      \"bounce_type\": \"hard\",\n      \"bounce_code\": \"550\",\n      \"bounce_description\": \"5.1.1 Unknown user\"\n    }\n  ],\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "06d6ed01-7ccc-8836-8597-82571269ad2a",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List recipients of a message",
                "description": {
                  "content": "Returns the message's per-recipient delivery state as a cursor page: each entry is one `to`/`cc`/`bcc` recipient with its role, current `status`, rejection or bounce detail when delivery failed, and open/click counts. Use it to see which specific addresses failed when the aggregate message `status` is mixed (for example `partial_failure`).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "recipients"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message whose recipients to list, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"parent_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"role\": \"to\",\n      \"status\": \"accepted\",\n      \"rejection_reason\": \"recipient_suppressed\",\n      \"bounce_type\": \"hard\",\n      \"bounce_code\": \"550\",\n      \"bounce_description\": \"5.1.1 Unknown user\"\n    }\n  ],\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "11e88c28-67fc-8439-8ed1-650e27396249",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List recipients of a message",
                "description": {
                  "content": "Returns the message's per-recipient delivery state as a cursor page: each entry is one `to`/`cc`/`bcc` recipient with its role, current `status`, rejection or bounce detail when delivery failed, and open/click counts. Use it to see which specific addresses failed when the aggregate message `status` is mixed (for example `partial_failure`).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "recipients"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message whose recipients to list, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"parent_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"role\": \"to\",\n      \"status\": \"accepted\",\n      \"rejection_reason\": \"recipient_suppressed\",\n      \"bounce_type\": \"hard\",\n      \"bounce_code\": \"550\",\n      \"bounce_description\": \"5.1.1 Unknown user\"\n    }\n  ],\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "10e700b8-0f69-8898-8620-9c85351ed0ca",
              "name": "Resource not found",
              "originalRequest": {
                "name": "List recipients of a message",
                "description": {
                  "content": "Returns the message's per-recipient delivery state as a cursor page: each entry is one `to`/`cc`/`bcc` recipient with its role, current `status`, rejection or bounce detail when delivery failed, and open/click counts. Use it to see which specific addresses failed when the aggregate message `status` is mixed (for example `partial_failure`).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "recipients"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message whose recipients to list, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"parent_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"role\": \"to\",\n      \"status\": \"accepted\",\n      \"rejection_reason\": \"recipient_suppressed\",\n      \"bounce_type\": \"hard\",\n      \"bounce_code\": \"550\",\n      \"bounce_description\": \"5.1.1 Unknown user\"\n    }\n  ],\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e72f4151-7176-875c-8b7b-66832c93f70a",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List recipients of a message",
                "description": {
                  "content": "Returns the message's per-recipient delivery state as a cursor page: each entry is one `to`/`cc`/`bcc` recipient with its role, current `status`, rejection or bounce detail when delivery failed, and open/click counts. Use it to see which specific addresses failed when the aggregate message `status` is mixed (for example `partial_failure`).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "recipients"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message whose recipients to list, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"parent_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"role\": \"to\",\n      \"status\": \"accepted\",\n      \"rejection_reason\": \"recipient_suppressed\",\n      \"bounce_type\": \"hard\",\n      \"bounce_code\": \"550\",\n      \"bounce_description\": \"5.1.1 Unknown user\"\n    }\n  ],\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "32e798a4-d144-8adc-880e-54e1f13bcdba",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List recipients of a message",
                "description": {
                  "content": "Returns the message's per-recipient delivery state as a cursor page: each entry is one `to`/`cc`/`bcc` recipient with its role, current `status`, rejection or bounce detail when delivery failed, and open/click counts. Use it to see which specific addresses failed when the aggregate message `status` is mixed (for example `partial_failure`).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "recipients"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message whose recipients to list, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"parent_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"role\": \"to\",\n      \"status\": \"accepted\",\n      \"rejection_reason\": \"recipient_suppressed\",\n      \"bounce_type\": \"hard\",\n      \"bounce_code\": \"550\",\n      \"bounce_description\": \"5.1.1 Unknown user\"\n    }\n  ],\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9b70d913-8e7e-84cb-825c-9ded4878d0b6",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List recipients of a message",
                "description": {
                  "content": "Returns the message's per-recipient delivery state as a cursor page: each entry is one `to`/`cc`/`bcc` recipient with its role, current `status`, rejection or bounce detail when delivery failed, and open/click counts. Use it to see which specific addresses failed when the aggregate message `status` is mixed (for example `partial_failure`).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "recipients"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message whose recipients to list, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"parent_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"role\": \"to\",\n      \"status\": \"accepted\",\n      \"rejection_reason\": \"recipient_suppressed\",\n      \"bounce_type\": \"hard\",\n      \"bounce_code\": \"550\",\n      \"bounce_description\": \"5.1.1 Unknown user\"\n    }\n  ],\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "48ca54ff-35e6-8c02-8b85-9c141626cf8c",
          "name": "List events for a message",
          "request": {
            "name": "List events for a message",
            "description": {
              "content": "Returns the message's per-recipient event timeline, oldest first, as a cursor page. Lifecycle, failure, and engagement events interleave as they happen, and engagement events (`email.opened`, `email.clicked`) can repeat per recipient. Filter to one event type with `type`. For each recipient's current state rather than its history, use [List recipients of a message](https://bird.com/docs/api/reference/list-email-message-recipients).\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "messages",
                ":message_id",
                "events"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                },
                {
                  "disabled": true,
                  "key": "type",
                  "value": "",
                  "description": "Filter by event type, for example `email.bounced` or `email.opened`."
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "message_id",
                  "description": "(Required) ID of the message whose timeline to read, from the send response's `id` field."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "461dbc1d-3e37-8992-8dde-83260440d256",
              "name": "Paginated event timeline for this message.",
              "originalRequest": {
                "name": "List events for a message",
                "description": {
                  "content": "Returns the message's per-recipient event timeline, oldest first, as a cursor page. Lifecycle, failure, and engagement events interleave as they happen, and engagement events (`email.opened`, `email.clicked`) can repeat per recipient. Filter to one event type with `type`. For each recipient's current state rather than its history, use [List recipients of a message](https://bird.com/docs/api/reference/list-email-message-recipients).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "Filter by event type, for example `email.bounced` or `email.opened`."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message whose timeline to read, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ev_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"email.delivered\",\n      \"recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"bounce_type\": \"hard\",\n      \"bounce_code\": \"5.1.1\",\n      \"rejection_reason\": \"recipient_suppressed\",\n      \"link_name\": \"Faster exports, docs\",\n      \"country\": \"US\"\n    }\n  ],\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4d2cd189-14a4-84c1-8089-024c293b2985",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List events for a message",
                "description": {
                  "content": "Returns the message's per-recipient event timeline, oldest first, as a cursor page. Lifecycle, failure, and engagement events interleave as they happen, and engagement events (`email.opened`, `email.clicked`) can repeat per recipient. Filter to one event type with `type`. For each recipient's current state rather than its history, use [List recipients of a message](https://bird.com/docs/api/reference/list-email-message-recipients).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "Filter by event type, for example `email.bounced` or `email.opened`."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message whose timeline to read, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ev_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"email.delivered\",\n      \"recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"bounce_type\": \"hard\",\n      \"bounce_code\": \"5.1.1\",\n      \"rejection_reason\": \"recipient_suppressed\",\n      \"link_name\": \"Faster exports, docs\",\n      \"country\": \"US\"\n    }\n  ],\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5bf6316f-36d3-8e31-8a42-3514c108a2ac",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List events for a message",
                "description": {
                  "content": "Returns the message's per-recipient event timeline, oldest first, as a cursor page. Lifecycle, failure, and engagement events interleave as they happen, and engagement events (`email.opened`, `email.clicked`) can repeat per recipient. Filter to one event type with `type`. For each recipient's current state rather than its history, use [List recipients of a message](https://bird.com/docs/api/reference/list-email-message-recipients).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "Filter by event type, for example `email.bounced` or `email.opened`."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message whose timeline to read, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ev_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"email.delivered\",\n      \"recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"bounce_type\": \"hard\",\n      \"bounce_code\": \"5.1.1\",\n      \"rejection_reason\": \"recipient_suppressed\",\n      \"link_name\": \"Faster exports, docs\",\n      \"country\": \"US\"\n    }\n  ],\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a8d80b9d-8764-850d-85cd-b0c60975379a",
              "name": "Resource not found",
              "originalRequest": {
                "name": "List events for a message",
                "description": {
                  "content": "Returns the message's per-recipient event timeline, oldest first, as a cursor page. Lifecycle, failure, and engagement events interleave as they happen, and engagement events (`email.opened`, `email.clicked`) can repeat per recipient. Filter to one event type with `type`. For each recipient's current state rather than its history, use [List recipients of a message](https://bird.com/docs/api/reference/list-email-message-recipients).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "Filter by event type, for example `email.bounced` or `email.opened`."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message whose timeline to read, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ev_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"email.delivered\",\n      \"recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"bounce_type\": \"hard\",\n      \"bounce_code\": \"5.1.1\",\n      \"rejection_reason\": \"recipient_suppressed\",\n      \"link_name\": \"Faster exports, docs\",\n      \"country\": \"US\"\n    }\n  ],\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a68b40e6-c0ba-843f-8468-8901dcc3f216",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List events for a message",
                "description": {
                  "content": "Returns the message's per-recipient event timeline, oldest first, as a cursor page. Lifecycle, failure, and engagement events interleave as they happen, and engagement events (`email.opened`, `email.clicked`) can repeat per recipient. Filter to one event type with `type`. For each recipient's current state rather than its history, use [List recipients of a message](https://bird.com/docs/api/reference/list-email-message-recipients).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "Filter by event type, for example `email.bounced` or `email.opened`."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message whose timeline to read, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ev_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"email.delivered\",\n      \"recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"bounce_type\": \"hard\",\n      \"bounce_code\": \"5.1.1\",\n      \"rejection_reason\": \"recipient_suppressed\",\n      \"link_name\": \"Faster exports, docs\",\n      \"country\": \"US\"\n    }\n  ],\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "11a67f40-254c-8456-8a63-5b23fd5c8f0f",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List events for a message",
                "description": {
                  "content": "Returns the message's per-recipient event timeline, oldest first, as a cursor page. Lifecycle, failure, and engagement events interleave as they happen, and engagement events (`email.opened`, `email.clicked`) can repeat per recipient. Filter to one event type with `type`. For each recipient's current state rather than its history, use [List recipients of a message](https://bird.com/docs/api/reference/list-email-message-recipients).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "Filter by event type, for example `email.bounced` or `email.opened`."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message whose timeline to read, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ev_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"email.delivered\",\n      \"recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"bounce_type\": \"hard\",\n      \"bounce_code\": \"5.1.1\",\n      \"rejection_reason\": \"recipient_suppressed\",\n      \"link_name\": \"Faster exports, docs\",\n      \"country\": \"US\"\n    }\n  ],\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cb023240-4ae8-8530-843f-32e229889a79",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List events for a message",
                "description": {
                  "content": "Returns the message's per-recipient event timeline, oldest first, as a cursor page. Lifecycle, failure, and engagement events interleave as they happen, and engagement events (`email.opened`, `email.clicked`) can repeat per recipient. Filter to one event type with `type`. For each recipient's current state rather than its history, use [List recipients of a message](https://bird.com/docs/api/reference/list-email-message-recipients).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "Filter by event type, for example `email.bounced` or `email.opened`."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message whose timeline to read, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ev_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"email.delivered\",\n      \"recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"bounce_type\": \"hard\",\n      \"bounce_code\": \"5.1.1\",\n      \"rejection_reason\": \"recipient_suppressed\",\n      \"link_name\": \"Faster exports, docs\",\n      \"country\": \"US\"\n    }\n  ],\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "ff3a464c-b542-8d89-8cf7-53f37d342fe0",
          "name": "Get stored message content",
          "request": {
            "name": "Get stored message content",
            "description": {
              "content": "Returns the stored HTML and text bodies for a sent message. Content storage must be enabled for the message. Content is available for up to 30 days after sending. A `404` indicates no content was stored for this message. A `425` indicates the content is still being stored and the request can be retried shortly. A `410` indicates the content was stored but has since expired.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "messages",
                ":message_id",
                "content"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "message_id",
                  "description": "(Required) ID of the message whose stored content to fetch, from the send response's `id` field."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "297dd31b-4930-86c2-8617-a1bbe8d21ad8",
              "name": "Stored message content.",
              "originalRequest": {
                "name": "Get stored message content",
                "description": {
                  "content": "Returns the stored HTML and text bodies for a sent message. Content storage must be enabled for the message. Content is available for up to 30 days after sending. A `404` indicates no content was stored for this message. A `425` indicates the content is still being stored and the request can be retried shortly. A `410` indicates the content was stored but has since expired.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "content"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message whose stored content to fetch, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "50130331-46ca-87a6-8114-d1565396af20",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get stored message content",
                "description": {
                  "content": "Returns the stored HTML and text bodies for a sent message. Content storage must be enabled for the message. Content is available for up to 30 days after sending. A `404` indicates no content was stored for this message. A `425` indicates the content is still being stored and the request can be retried shortly. A `410` indicates the content was stored but has since expired.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "content"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message whose stored content to fetch, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "94585e98-5a4e-8afa-8c44-bdd29214f41f",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get stored message content",
                "description": {
                  "content": "Returns the stored HTML and text bodies for a sent message. Content storage must be enabled for the message. Content is available for up to 30 days after sending. A `404` indicates no content was stored for this message. A `425` indicates the content is still being stored and the request can be retried shortly. A `410` indicates the content was stored but has since expired.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "content"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message whose stored content to fetch, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a4ec3855-303c-83d2-8990-d7442f94d424",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get stored message content",
                "description": {
                  "content": "Returns the stored HTML and text bodies for a sent message. Content storage must be enabled for the message. Content is available for up to 30 days after sending. A `404` indicates no content was stored for this message. A `425` indicates the content is still being stored and the request can be retried shortly. A `410` indicates the content was stored but has since expired.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "content"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message whose stored content to fetch, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "933583b1-7b2b-8545-8f31-23cd00aadd14",
              "name": "The resource existed but is no longer available.",
              "originalRequest": {
                "name": "Get stored message content",
                "description": {
                  "content": "Returns the stored HTML and text bodies for a sent message. Content storage must be enabled for the message. Content is available for up to 30 days after sending. A `404` indicates no content was stored for this message. A `425` indicates the content is still being stored and the request can be retried shortly. A `410` indicates the content was stored but has since expired.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "content"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message whose stored content to fetch, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Gone",
              "code": 410,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2c9850cd-f8ee-88b7-80be-af82cbb03870",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get stored message content",
                "description": {
                  "content": "Returns the stored HTML and text bodies for a sent message. Content storage must be enabled for the message. Content is available for up to 30 days after sending. A `404` indicates no content was stored for this message. A `425` indicates the content is still being stored and the request can be retried shortly. A `410` indicates the content was stored but has since expired.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "content"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message whose stored content to fetch, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "79deb864-e738-8c55-83a1-3fc4cf233712",
              "name": "The resource is not available yet. Retry shortly.",
              "originalRequest": {
                "name": "Get stored message content",
                "description": {
                  "content": "Returns the stored HTML and text bodies for a sent message. Content storage must be enabled for the message. Content is available for up to 30 days after sending. A `404` indicates no content was stored for this message. A `425` indicates the content is still being stored and the request can be retried shortly. A `410` indicates the content was stored but has since expired.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "content"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message whose stored content to fetch, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unordered Collection (RFC 3648)",
              "code": 425,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a1de96c6-2565-865c-8b32-fa87b5ec2cd2",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get stored message content",
                "description": {
                  "content": "Returns the stored HTML and text bodies for a sent message. Content storage must be enabled for the message. Content is available for up to 30 days after sending. A `404` indicates no content was stored for this message. A `425` indicates the content is still being stored and the request can be retried shortly. A `410` indicates the content was stored but has since expired.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "content"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message whose stored content to fetch, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8de7ac01-ab44-8ed7-8e88-542dc50c1ee6",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get stored message content",
                "description": {
                  "content": "Returns the stored HTML and text bodies for a sent message. Content storage must be enabled for the message. Content is available for up to 30 days after sending. A `404` indicates no content was stored for this message. A `425` indicates the content is still being stored and the request can be retried shortly. A `410` indicates the content was stored but has since expired.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "content"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message whose stored content to fetch, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c2bd6850-56ee-81df-8b31-c8d39294d0bc",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get stored message content",
                "description": {
                  "content": "Returns the stored HTML and text bodies for a sent message. Content storage must be enabled for the message. Content is available for up to 30 days after sending. A `404` indicates no content was stored for this message. A `425` indicates the content is still being stored and the request can be retried shortly. A `410` indicates the content was stored but has since expired.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "content"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message whose stored content to fetch, from the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "80feaca7-8d07-8996-8e76-2017aa52203f",
          "name": "Get a message attachment",
          "request": {
            "name": "Get a message attachment",
            "description": {
              "content": "Downloads the raw bytes of one attachment from a sent message, returned with the attachment's own content type and a Content-Disposition header that includes its filename. The message must have content storage enabled and the attachment is available for up to 30 days after sending. A `404` indicates the message has no stored content or no attachment with this ID. A `425` indicates the attachment is still being stored and the request can be retried shortly. A `410` indicates the attachment was stored but has since expired.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "messages",
                ":message_id",
                "attachments",
                ":attachment_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "message_id",
                  "description": "(Required) ID of the message the attachment belongs to, from the send response's `id` field."
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "attachment_id",
                  "description": "(Required) Attachment ID, as returned in the message's `attachments` list."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "e62822b8-166f-838a-8261-90aa43592509",
              "name": "The raw attachment bytes.",
              "originalRequest": {
                "name": "Get a message attachment",
                "description": {
                  "content": "Downloads the raw bytes of one attachment from a sent message, returned with the attachment's own content type and a Content-Disposition header that includes its filename. The message must have content storage enabled and the attachment is available for up to 30 days after sending. A `404` indicates the message has no stored content or no attachment with this ID. A `425` indicates the attachment is still being stored and the request can be retried shortly. A `410` indicates the attachment was stored but has since expired.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message the attachment belongs to, from the send response's `id` field."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Attachment ID, as returned in the message's `attachments` list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Has the attachment's filename. The value is `attachment` for regular files, or `inline` for inline images referenced from the HTML body.\n",
                  "key": "Content-Disposition",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/octet-stream"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "bf58369a-192a-8da2-8939-25cbb70418b7",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a message attachment",
                "description": {
                  "content": "Downloads the raw bytes of one attachment from a sent message, returned with the attachment's own content type and a Content-Disposition header that includes its filename. The message must have content storage enabled and the attachment is available for up to 30 days after sending. A `404` indicates the message has no stored content or no attachment with this ID. A `425` indicates the attachment is still being stored and the request can be retried shortly. A `410` indicates the attachment was stored but has since expired.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message the attachment belongs to, from the send response's `id` field."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Attachment ID, as returned in the message's `attachments` list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "aa969008-5ad5-8850-88dc-4d970b81ab31",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a message attachment",
                "description": {
                  "content": "Downloads the raw bytes of one attachment from a sent message, returned with the attachment's own content type and a Content-Disposition header that includes its filename. The message must have content storage enabled and the attachment is available for up to 30 days after sending. A `404` indicates the message has no stored content or no attachment with this ID. A `425` indicates the attachment is still being stored and the request can be retried shortly. A `410` indicates the attachment was stored but has since expired.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message the attachment belongs to, from the send response's `id` field."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Attachment ID, as returned in the message's `attachments` list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0e343d70-f615-8ece-865a-6955839073b1",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a message attachment",
                "description": {
                  "content": "Downloads the raw bytes of one attachment from a sent message, returned with the attachment's own content type and a Content-Disposition header that includes its filename. The message must have content storage enabled and the attachment is available for up to 30 days after sending. A `404` indicates the message has no stored content or no attachment with this ID. A `425` indicates the attachment is still being stored and the request can be retried shortly. A `410` indicates the attachment was stored but has since expired.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message the attachment belongs to, from the send response's `id` field."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Attachment ID, as returned in the message's `attachments` list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "644c7dbb-3e6a-89af-825c-24aa46012676",
              "name": "The resource existed but is no longer available.",
              "originalRequest": {
                "name": "Get a message attachment",
                "description": {
                  "content": "Downloads the raw bytes of one attachment from a sent message, returned with the attachment's own content type and a Content-Disposition header that includes its filename. The message must have content storage enabled and the attachment is available for up to 30 days after sending. A `404` indicates the message has no stored content or no attachment with this ID. A `425` indicates the attachment is still being stored and the request can be retried shortly. A `410` indicates the attachment was stored but has since expired.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message the attachment belongs to, from the send response's `id` field."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Attachment ID, as returned in the message's `attachments` list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Gone",
              "code": 410,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2ea9aa06-1ddd-826d-8a93-5d410d467fd1",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a message attachment",
                "description": {
                  "content": "Downloads the raw bytes of one attachment from a sent message, returned with the attachment's own content type and a Content-Disposition header that includes its filename. The message must have content storage enabled and the attachment is available for up to 30 days after sending. A `404` indicates the message has no stored content or no attachment with this ID. A `425` indicates the attachment is still being stored and the request can be retried shortly. A `410` indicates the attachment was stored but has since expired.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message the attachment belongs to, from the send response's `id` field."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Attachment ID, as returned in the message's `attachments` list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7f0a5f4b-534b-8e53-81e0-9c3d423e1438",
              "name": "The resource is not available yet. Retry shortly.",
              "originalRequest": {
                "name": "Get a message attachment",
                "description": {
                  "content": "Downloads the raw bytes of one attachment from a sent message, returned with the attachment's own content type and a Content-Disposition header that includes its filename. The message must have content storage enabled and the attachment is available for up to 30 days after sending. A `404` indicates the message has no stored content or no attachment with this ID. A `425` indicates the attachment is still being stored and the request can be retried shortly. A `410` indicates the attachment was stored but has since expired.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message the attachment belongs to, from the send response's `id` field."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Attachment ID, as returned in the message's `attachments` list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unordered Collection (RFC 3648)",
              "code": 425,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3f5f7525-aab3-8c83-86c7-c4a5b1d4ce33",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a message attachment",
                "description": {
                  "content": "Downloads the raw bytes of one attachment from a sent message, returned with the attachment's own content type and a Content-Disposition header that includes its filename. The message must have content storage enabled and the attachment is available for up to 30 days after sending. A `404` indicates the message has no stored content or no attachment with this ID. A `425` indicates the attachment is still being stored and the request can be retried shortly. A `410` indicates the attachment was stored but has since expired.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message the attachment belongs to, from the send response's `id` field."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Attachment ID, as returned in the message's `attachments` list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4c410770-ccee-8e6a-80df-3c62b9ee63b0",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a message attachment",
                "description": {
                  "content": "Downloads the raw bytes of one attachment from a sent message, returned with the attachment's own content type and a Content-Disposition header that includes its filename. The message must have content storage enabled and the attachment is available for up to 30 days after sending. A `404` indicates the message has no stored content or no attachment with this ID. A `425` indicates the attachment is still being stored and the request can be retried shortly. A `410` indicates the attachment was stored but has since expired.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message the attachment belongs to, from the send response's `id` field."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Attachment ID, as returned in the message's `attachments` list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c3d43f20-a6d3-85bb-8075-dfb39a57c632",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get a message attachment",
                "description": {
                  "content": "Downloads the raw bytes of one attachment from a sent message, returned with the attachment's own content type and a Content-Disposition header that includes its filename. The message must have content storage enabled and the attachment is available for up to 30 days after sending. A `404` indicates the message has no stored content or no attachment with this ID. A `425` indicates the attachment is still being stored and the request can be retried shortly. A `410` indicates the attachment was stored but has since expired.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "messages",
                    ":message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message the attachment belongs to, from the send response's `id` field."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Attachment ID, as returned in the message's `attachments` list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "6ee1264f-6de1-8dac-8307-30c4ac068d10",
      "name": "email-contacts",
      "description": {
        "content": "Contacts are the people you send broadcasts to. Each contact is unique by email address within a workspace and carries optional name fields and custom properties for personalization. Custom properties are defined once per workspace via the contact properties API and then set per contact.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "72289e58-2ec8-8b5f-8f87-87fea5df989c",
          "name": "Create a contact",
          "request": {
            "name": "Create a contact",
            "description": {
              "content": "Creates a contact in the workspace, identified by an email address, a phone number, or both; at least one is required. Email is stored trimmed and lowercased, and phone in its canonical international form. Creating a second contact with the same email or phone number, or reusing another contact's `external_id`, returns a conflict error.\n\nTo create or update many contacts in one request, or to write a contact without knowing whether the address already exists, use [Create or update contacts in bulk](https://bird.com/docs/api/reference/create-contact-batch) instead.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "contacts"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"alice@acme.com\",\n  \"phone_number\": \"+31612345678\",\n  \"first_name\": \"Alice\",\n  \"last_name\": \"Anderson\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "64d09593-69b6-86ca-85cd-be6224ef99a8",
              "name": "Contact created.",
              "originalRequest": {
                "name": "Create a contact",
                "description": {
                  "content": "Creates a contact in the workspace, identified by an email address, a phone number, or both; at least one is required. Email is stored trimmed and lowercased, and phone in its canonical international form. Creating a second contact with the same email or phone number, or reusing another contact's `external_id`, returns a conflict error.\n\nTo create or update many contacts in one request, or to write a contact without knowing whether the address already exists, use [Create or update contacts in bulk](https://bird.com/docs/api/reference/create-contact-batch) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"alice@acme.com\",\n  \"phone_number\": \"+31612345678\",\n  \"first_name\": \"Alice\",\n  \"last_name\": \"Anderson\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"audiences\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5f6dcbd6-07d0-8e57-843a-c794da0bbb8e",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create a contact",
                "description": {
                  "content": "Creates a contact in the workspace, identified by an email address, a phone number, or both; at least one is required. Email is stored trimmed and lowercased, and phone in its canonical international form. Creating a second contact with the same email or phone number, or reusing another contact's `external_id`, returns a conflict error.\n\nTo create or update many contacts in one request, or to write a contact without knowing whether the address already exists, use [Create or update contacts in bulk](https://bird.com/docs/api/reference/create-contact-batch) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"alice@acme.com\",\n  \"phone_number\": \"+31612345678\",\n  \"first_name\": \"Alice\",\n  \"last_name\": \"Anderson\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"audiences\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f6efd525-0c9f-84c7-825d-ec59aacd1f0c",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create a contact",
                "description": {
                  "content": "Creates a contact in the workspace, identified by an email address, a phone number, or both; at least one is required. Email is stored trimmed and lowercased, and phone in its canonical international form. Creating a second contact with the same email or phone number, or reusing another contact's `external_id`, returns a conflict error.\n\nTo create or update many contacts in one request, or to write a contact without knowing whether the address already exists, use [Create or update contacts in bulk](https://bird.com/docs/api/reference/create-contact-batch) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"alice@acme.com\",\n  \"phone_number\": \"+31612345678\",\n  \"first_name\": \"Alice\",\n  \"last_name\": \"Anderson\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"audiences\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "68dcca2d-15de-8d63-88ca-4b7d4478e387",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create a contact",
                "description": {
                  "content": "Creates a contact in the workspace, identified by an email address, a phone number, or both; at least one is required. Email is stored trimmed and lowercased, and phone in its canonical international form. Creating a second contact with the same email or phone number, or reusing another contact's `external_id`, returns a conflict error.\n\nTo create or update many contacts in one request, or to write a contact without knowing whether the address already exists, use [Create or update contacts in bulk](https://bird.com/docs/api/reference/create-contact-batch) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"alice@acme.com\",\n  \"phone_number\": \"+31612345678\",\n  \"first_name\": \"Alice\",\n  \"last_name\": \"Anderson\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"audiences\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ffba7432-3607-89a2-8048-29457125da26",
              "name": "Resource conflict",
              "originalRequest": {
                "name": "Create a contact",
                "description": {
                  "content": "Creates a contact in the workspace, identified by an email address, a phone number, or both; at least one is required. Email is stored trimmed and lowercased, and phone in its canonical international form. Creating a second contact with the same email or phone number, or reusing another contact's `external_id`, returns a conflict error.\n\nTo create or update many contacts in one request, or to write a contact without knowing whether the address already exists, use [Create or update contacts in bulk](https://bird.com/docs/api/reference/create-contact-batch) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"alice@acme.com\",\n  \"phone_number\": \"+31612345678\",\n  \"first_name\": \"Alice\",\n  \"last_name\": \"Anderson\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"audiences\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f29d5bc3-3074-8aa7-8307-bd7bc7788445",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create a contact",
                "description": {
                  "content": "Creates a contact in the workspace, identified by an email address, a phone number, or both; at least one is required. Email is stored trimmed and lowercased, and phone in its canonical international form. Creating a second contact with the same email or phone number, or reusing another contact's `external_id`, returns a conflict error.\n\nTo create or update many contacts in one request, or to write a contact without knowing whether the address already exists, use [Create or update contacts in bulk](https://bird.com/docs/api/reference/create-contact-batch) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"alice@acme.com\",\n  \"phone_number\": \"+31612345678\",\n  \"first_name\": \"Alice\",\n  \"last_name\": \"Anderson\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"audiences\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2e733d1e-9ef3-82f7-83fc-c6017f9c4d2e",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create a contact",
                "description": {
                  "content": "Creates a contact in the workspace, identified by an email address, a phone number, or both; at least one is required. Email is stored trimmed and lowercased, and phone in its canonical international form. Creating a second contact with the same email or phone number, or reusing another contact's `external_id`, returns a conflict error.\n\nTo create or update many contacts in one request, or to write a contact without knowing whether the address already exists, use [Create or update contacts in bulk](https://bird.com/docs/api/reference/create-contact-batch) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"alice@acme.com\",\n  \"phone_number\": \"+31612345678\",\n  \"first_name\": \"Alice\",\n  \"last_name\": \"Anderson\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 201,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"audiences\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ee59fb09-f680-8ff0-8793-a9d1425b4f6a",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create a contact",
                "description": {
                  "content": "Creates a contact in the workspace, identified by an email address, a phone number, or both; at least one is required. Email is stored trimmed and lowercased, and phone in its canonical international form. Creating a second contact with the same email or phone number, or reusing another contact's `external_id`, returns a conflict error.\n\nTo create or update many contacts in one request, or to write a contact without knowing whether the address already exists, use [Create or update contacts in bulk](https://bird.com/docs/api/reference/create-contact-batch) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"alice@acme.com\",\n  \"phone_number\": \"+31612345678\",\n  \"first_name\": \"Alice\",\n  \"last_name\": \"Anderson\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"audiences\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "9484d7b7-a0cc-88eb-8e9f-8800d3715b03",
          "name": "List contacts",
          "request": {
            "name": "List contacts",
            "description": {
              "content": "Returns a paginated list of contacts in the workspace, newest first. Look up a single contact by its exact `email`, `phone_number`, or `external_id`, or search by email, first name, last name, or phone substring with `q`. Repeat `phone_number` to resolve up to 50 numbers to their contacts in one request, raising `limit` to at least the number of values you pass. Pass `include_total=true` to add the total number of matching contacts to the response.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "contacts"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "email",
                  "value": "user@example.com",
                  "description": "Return the contact with exactly this email address (case-insensitive). Email is unique within a workspace, so this matches at most one contact. An empty value is a validation error, never an unfiltered page."
                },
                {
                  "disabled": false,
                  "key": "phone_number",
                  "value": "+31612345678",
                  "description": "Return the contacts with exactly this phone number in international E.164 form. Repeat the parameter to match any of up to 50 numbers. Set `limit` to at least the number of values you pass. The default `limit` is 25, and a page cut short by it looks exactly like numbers that matched nothing. Different identifier parameters still combine with AND, so `phone_number=a&phone_number=b&email=c` asks for a contact whose phone number is `a` or `b` and whose email is `c`. Encode the leading plus sign as `%2B` (an unencoded `+` arrives as a space and is rejected). Phone numbers are unique within a workspace, so each value matches at most one contact. Non-canonical forms of the same number match the contact they canonicalize to; a value that is not a phone number shape, or an empty value, is a validation error, never an unfiltered page."
                },
                {
                  "disabled": false,
                  "key": "phone_number",
                  "value": "+31698765432",
                  "description": "Return the contacts with exactly this phone number in international E.164 form. Repeat the parameter to match any of up to 50 numbers. Set `limit` to at least the number of values you pass. The default `limit` is 25, and a page cut short by it looks exactly like numbers that matched nothing. Different identifier parameters still combine with AND, so `phone_number=a&phone_number=b&email=c` asks for a contact whose phone number is `a` or `b` and whose email is `c`. Encode the leading plus sign as `%2B` (an unencoded `+` arrives as a space and is rejected). Phone numbers are unique within a workspace, so each value matches at most one contact. Non-canonical forms of the same number match the contact they canonicalize to; a value that is not a phone number shape, or an empty value, is a validation error, never an unfiltered page."
                },
                {
                  "disabled": false,
                  "key": "external_id",
                  "value": "user_12345",
                  "description": "Return the contact with exactly this external_id (your own identifier for the contact). Unique within a workspace, so this matches at most one contact. An empty value is a validation error, never an unfiltered page."
                },
                {
                  "disabled": false,
                  "key": "q",
                  "value": "acme.com",
                  "description": "Case-insensitive substring match against the contact's email address, first name, last name, or phone number. Phone matching is over the digits of the international form, so a full pasted number, a formatted number, or trailing digits all match; a national form with a leading trunk zero does not."
                },
                {
                  "disabled": false,
                  "key": "identifier",
                  "value": "email",
                  "description": "Filter to contacts that have a specific identifier on file."
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                },
                {
                  "disabled": false,
                  "key": "include_total",
                  "value": "false",
                  "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "b7432df5-e28c-8a7e-8798-b5d4d4c22994",
              "name": "A page of contacts.",
              "originalRequest": {
                "name": "List contacts",
                "description": {
                  "content": "Returns a paginated list of contacts in the workspace, newest first. Look up a single contact by its exact `email`, `phone_number`, or `external_id`, or search by email, first name, last name, or phone substring with `q`. Repeat `phone_number` to resolve up to 50 numbers to their contacts in one request, raising `limit` to at least the number of values you pass. Pass `include_total=true` to add the total number of matching contacts to the response.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "email",
                      "value": "user@example.com",
                      "description": "Return the contact with exactly this email address (case-insensitive). Email is unique within a workspace, so this matches at most one contact. An empty value is a validation error, never an unfiltered page."
                    },
                    {
                      "disabled": false,
                      "key": "phone_number",
                      "value": "+31612345678",
                      "description": "Return the contacts with exactly this phone number in international E.164 form. Repeat the parameter to match any of up to 50 numbers. Set `limit` to at least the number of values you pass. The default `limit` is 25, and a page cut short by it looks exactly like numbers that matched nothing. Different identifier parameters still combine with AND, so `phone_number=a&phone_number=b&email=c` asks for a contact whose phone number is `a` or `b` and whose email is `c`. Encode the leading plus sign as `%2B` (an unencoded `+` arrives as a space and is rejected). Phone numbers are unique within a workspace, so each value matches at most one contact. Non-canonical forms of the same number match the contact they canonicalize to; a value that is not a phone number shape, or an empty value, is a validation error, never an unfiltered page."
                    },
                    {
                      "disabled": false,
                      "key": "phone_number",
                      "value": "+31698765432",
                      "description": "Return the contacts with exactly this phone number in international E.164 form. Repeat the parameter to match any of up to 50 numbers. Set `limit` to at least the number of values you pass. The default `limit` is 25, and a page cut short by it looks exactly like numbers that matched nothing. Different identifier parameters still combine with AND, so `phone_number=a&phone_number=b&email=c` asks for a contact whose phone number is `a` or `b` and whose email is `c`. Encode the leading plus sign as `%2B` (an unencoded `+` arrives as a space and is rejected). Phone numbers are unique within a workspace, so each value matches at most one contact. Non-canonical forms of the same number match the contact they canonicalize to; a value that is not a phone number shape, or an empty value, is a validation error, never an unfiltered page."
                    },
                    {
                      "disabled": false,
                      "key": "external_id",
                      "value": "user_12345",
                      "description": "Return the contact with exactly this external_id (your own identifier for the contact). Unique within a workspace, so this matches at most one contact. An empty value is a validation error, never an unfiltered page."
                    },
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "acme.com",
                      "description": "Case-insensitive substring match against the contact's email address, first name, last name, or phone number. Phone matching is over the digits of the international form, so a full pasted number, a formatted number, or trailing digits all match; a national form with a leading trunk zero does not."
                    },
                    {
                      "disabled": false,
                      "key": "identifier",
                      "value": "email",
                      "description": "Filter to contacts that have a specific identifier on file."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"audiences\": [\n        {\n          \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n        }\n      ],\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "df2932f4-dcd4-8e13-8b8c-d52044ace8b2",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List contacts",
                "description": {
                  "content": "Returns a paginated list of contacts in the workspace, newest first. Look up a single contact by its exact `email`, `phone_number`, or `external_id`, or search by email, first name, last name, or phone substring with `q`. Repeat `phone_number` to resolve up to 50 numbers to their contacts in one request, raising `limit` to at least the number of values you pass. Pass `include_total=true` to add the total number of matching contacts to the response.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "email",
                      "value": "user@example.com",
                      "description": "Return the contact with exactly this email address (case-insensitive). Email is unique within a workspace, so this matches at most one contact. An empty value is a validation error, never an unfiltered page."
                    },
                    {
                      "disabled": false,
                      "key": "phone_number",
                      "value": "+31612345678",
                      "description": "Return the contacts with exactly this phone number in international E.164 form. Repeat the parameter to match any of up to 50 numbers. Set `limit` to at least the number of values you pass. The default `limit` is 25, and a page cut short by it looks exactly like numbers that matched nothing. Different identifier parameters still combine with AND, so `phone_number=a&phone_number=b&email=c` asks for a contact whose phone number is `a` or `b` and whose email is `c`. Encode the leading plus sign as `%2B` (an unencoded `+` arrives as a space and is rejected). Phone numbers are unique within a workspace, so each value matches at most one contact. Non-canonical forms of the same number match the contact they canonicalize to; a value that is not a phone number shape, or an empty value, is a validation error, never an unfiltered page."
                    },
                    {
                      "disabled": false,
                      "key": "phone_number",
                      "value": "+31698765432",
                      "description": "Return the contacts with exactly this phone number in international E.164 form. Repeat the parameter to match any of up to 50 numbers. Set `limit` to at least the number of values you pass. The default `limit` is 25, and a page cut short by it looks exactly like numbers that matched nothing. Different identifier parameters still combine with AND, so `phone_number=a&phone_number=b&email=c` asks for a contact whose phone number is `a` or `b` and whose email is `c`. Encode the leading plus sign as `%2B` (an unencoded `+` arrives as a space and is rejected). Phone numbers are unique within a workspace, so each value matches at most one contact. Non-canonical forms of the same number match the contact they canonicalize to; a value that is not a phone number shape, or an empty value, is a validation error, never an unfiltered page."
                    },
                    {
                      "disabled": false,
                      "key": "external_id",
                      "value": "user_12345",
                      "description": "Return the contact with exactly this external_id (your own identifier for the contact). Unique within a workspace, so this matches at most one contact. An empty value is a validation error, never an unfiltered page."
                    },
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "acme.com",
                      "description": "Case-insensitive substring match against the contact's email address, first name, last name, or phone number. Phone matching is over the digits of the international form, so a full pasted number, a formatted number, or trailing digits all match; a national form with a leading trunk zero does not."
                    },
                    {
                      "disabled": false,
                      "key": "identifier",
                      "value": "email",
                      "description": "Filter to contacts that have a specific identifier on file."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"audiences\": [\n        {\n          \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n        }\n      ],\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a8a3ad3e-aa14-825a-817d-2ef45cb704db",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List contacts",
                "description": {
                  "content": "Returns a paginated list of contacts in the workspace, newest first. Look up a single contact by its exact `email`, `phone_number`, or `external_id`, or search by email, first name, last name, or phone substring with `q`. Repeat `phone_number` to resolve up to 50 numbers to their contacts in one request, raising `limit` to at least the number of values you pass. Pass `include_total=true` to add the total number of matching contacts to the response.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "email",
                      "value": "user@example.com",
                      "description": "Return the contact with exactly this email address (case-insensitive). Email is unique within a workspace, so this matches at most one contact. An empty value is a validation error, never an unfiltered page."
                    },
                    {
                      "disabled": false,
                      "key": "phone_number",
                      "value": "+31612345678",
                      "description": "Return the contacts with exactly this phone number in international E.164 form. Repeat the parameter to match any of up to 50 numbers. Set `limit` to at least the number of values you pass. The default `limit` is 25, and a page cut short by it looks exactly like numbers that matched nothing. Different identifier parameters still combine with AND, so `phone_number=a&phone_number=b&email=c` asks for a contact whose phone number is `a` or `b` and whose email is `c`. Encode the leading plus sign as `%2B` (an unencoded `+` arrives as a space and is rejected). Phone numbers are unique within a workspace, so each value matches at most one contact. Non-canonical forms of the same number match the contact they canonicalize to; a value that is not a phone number shape, or an empty value, is a validation error, never an unfiltered page."
                    },
                    {
                      "disabled": false,
                      "key": "phone_number",
                      "value": "+31698765432",
                      "description": "Return the contacts with exactly this phone number in international E.164 form. Repeat the parameter to match any of up to 50 numbers. Set `limit` to at least the number of values you pass. The default `limit` is 25, and a page cut short by it looks exactly like numbers that matched nothing. Different identifier parameters still combine with AND, so `phone_number=a&phone_number=b&email=c` asks for a contact whose phone number is `a` or `b` and whose email is `c`. Encode the leading plus sign as `%2B` (an unencoded `+` arrives as a space and is rejected). Phone numbers are unique within a workspace, so each value matches at most one contact. Non-canonical forms of the same number match the contact they canonicalize to; a value that is not a phone number shape, or an empty value, is a validation error, never an unfiltered page."
                    },
                    {
                      "disabled": false,
                      "key": "external_id",
                      "value": "user_12345",
                      "description": "Return the contact with exactly this external_id (your own identifier for the contact). Unique within a workspace, so this matches at most one contact. An empty value is a validation error, never an unfiltered page."
                    },
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "acme.com",
                      "description": "Case-insensitive substring match against the contact's email address, first name, last name, or phone number. Phone matching is over the digits of the international form, so a full pasted number, a formatted number, or trailing digits all match; a national form with a leading trunk zero does not."
                    },
                    {
                      "disabled": false,
                      "key": "identifier",
                      "value": "email",
                      "description": "Filter to contacts that have a specific identifier on file."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"audiences\": [\n        {\n          \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n        }\n      ],\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b2d1fa12-1237-8f43-8313-c69bea3fec61",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List contacts",
                "description": {
                  "content": "Returns a paginated list of contacts in the workspace, newest first. Look up a single contact by its exact `email`, `phone_number`, or `external_id`, or search by email, first name, last name, or phone substring with `q`. Repeat `phone_number` to resolve up to 50 numbers to their contacts in one request, raising `limit` to at least the number of values you pass. Pass `include_total=true` to add the total number of matching contacts to the response.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "email",
                      "value": "user@example.com",
                      "description": "Return the contact with exactly this email address (case-insensitive). Email is unique within a workspace, so this matches at most one contact. An empty value is a validation error, never an unfiltered page."
                    },
                    {
                      "disabled": false,
                      "key": "phone_number",
                      "value": "+31612345678",
                      "description": "Return the contacts with exactly this phone number in international E.164 form. Repeat the parameter to match any of up to 50 numbers. Set `limit` to at least the number of values you pass. The default `limit` is 25, and a page cut short by it looks exactly like numbers that matched nothing. Different identifier parameters still combine with AND, so `phone_number=a&phone_number=b&email=c` asks for a contact whose phone number is `a` or `b` and whose email is `c`. Encode the leading plus sign as `%2B` (an unencoded `+` arrives as a space and is rejected). Phone numbers are unique within a workspace, so each value matches at most one contact. Non-canonical forms of the same number match the contact they canonicalize to; a value that is not a phone number shape, or an empty value, is a validation error, never an unfiltered page."
                    },
                    {
                      "disabled": false,
                      "key": "phone_number",
                      "value": "+31698765432",
                      "description": "Return the contacts with exactly this phone number in international E.164 form. Repeat the parameter to match any of up to 50 numbers. Set `limit` to at least the number of values you pass. The default `limit` is 25, and a page cut short by it looks exactly like numbers that matched nothing. Different identifier parameters still combine with AND, so `phone_number=a&phone_number=b&email=c` asks for a contact whose phone number is `a` or `b` and whose email is `c`. Encode the leading plus sign as `%2B` (an unencoded `+` arrives as a space and is rejected). Phone numbers are unique within a workspace, so each value matches at most one contact. Non-canonical forms of the same number match the contact they canonicalize to; a value that is not a phone number shape, or an empty value, is a validation error, never an unfiltered page."
                    },
                    {
                      "disabled": false,
                      "key": "external_id",
                      "value": "user_12345",
                      "description": "Return the contact with exactly this external_id (your own identifier for the contact). Unique within a workspace, so this matches at most one contact. An empty value is a validation error, never an unfiltered page."
                    },
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "acme.com",
                      "description": "Case-insensitive substring match against the contact's email address, first name, last name, or phone number. Phone matching is over the digits of the international form, so a full pasted number, a formatted number, or trailing digits all match; a national form with a leading trunk zero does not."
                    },
                    {
                      "disabled": false,
                      "key": "identifier",
                      "value": "email",
                      "description": "Filter to contacts that have a specific identifier on file."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"audiences\": [\n        {\n          \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n        }\n      ],\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4eff7ec2-d070-8e00-8312-c3e1fde189b3",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List contacts",
                "description": {
                  "content": "Returns a paginated list of contacts in the workspace, newest first. Look up a single contact by its exact `email`, `phone_number`, or `external_id`, or search by email, first name, last name, or phone substring with `q`. Repeat `phone_number` to resolve up to 50 numbers to their contacts in one request, raising `limit` to at least the number of values you pass. Pass `include_total=true` to add the total number of matching contacts to the response.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "email",
                      "value": "user@example.com",
                      "description": "Return the contact with exactly this email address (case-insensitive). Email is unique within a workspace, so this matches at most one contact. An empty value is a validation error, never an unfiltered page."
                    },
                    {
                      "disabled": false,
                      "key": "phone_number",
                      "value": "+31612345678",
                      "description": "Return the contacts with exactly this phone number in international E.164 form. Repeat the parameter to match any of up to 50 numbers. Set `limit` to at least the number of values you pass. The default `limit` is 25, and a page cut short by it looks exactly like numbers that matched nothing. Different identifier parameters still combine with AND, so `phone_number=a&phone_number=b&email=c` asks for a contact whose phone number is `a` or `b` and whose email is `c`. Encode the leading plus sign as `%2B` (an unencoded `+` arrives as a space and is rejected). Phone numbers are unique within a workspace, so each value matches at most one contact. Non-canonical forms of the same number match the contact they canonicalize to; a value that is not a phone number shape, or an empty value, is a validation error, never an unfiltered page."
                    },
                    {
                      "disabled": false,
                      "key": "phone_number",
                      "value": "+31698765432",
                      "description": "Return the contacts with exactly this phone number in international E.164 form. Repeat the parameter to match any of up to 50 numbers. Set `limit` to at least the number of values you pass. The default `limit` is 25, and a page cut short by it looks exactly like numbers that matched nothing. Different identifier parameters still combine with AND, so `phone_number=a&phone_number=b&email=c` asks for a contact whose phone number is `a` or `b` and whose email is `c`. Encode the leading plus sign as `%2B` (an unencoded `+` arrives as a space and is rejected). Phone numbers are unique within a workspace, so each value matches at most one contact. Non-canonical forms of the same number match the contact they canonicalize to; a value that is not a phone number shape, or an empty value, is a validation error, never an unfiltered page."
                    },
                    {
                      "disabled": false,
                      "key": "external_id",
                      "value": "user_12345",
                      "description": "Return the contact with exactly this external_id (your own identifier for the contact). Unique within a workspace, so this matches at most one contact. An empty value is a validation error, never an unfiltered page."
                    },
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "acme.com",
                      "description": "Case-insensitive substring match against the contact's email address, first name, last name, or phone number. Phone matching is over the digits of the international form, so a full pasted number, a formatted number, or trailing digits all match; a national form with a leading trunk zero does not."
                    },
                    {
                      "disabled": false,
                      "key": "identifier",
                      "value": "email",
                      "description": "Filter to contacts that have a specific identifier on file."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"audiences\": [\n        {\n          \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n        }\n      ],\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5107a1d6-1d1e-8feb-8862-37cea5dd14e9",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List contacts",
                "description": {
                  "content": "Returns a paginated list of contacts in the workspace, newest first. Look up a single contact by its exact `email`, `phone_number`, or `external_id`, or search by email, first name, last name, or phone substring with `q`. Repeat `phone_number` to resolve up to 50 numbers to their contacts in one request, raising `limit` to at least the number of values you pass. Pass `include_total=true` to add the total number of matching contacts to the response.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "email",
                      "value": "user@example.com",
                      "description": "Return the contact with exactly this email address (case-insensitive). Email is unique within a workspace, so this matches at most one contact. An empty value is a validation error, never an unfiltered page."
                    },
                    {
                      "disabled": false,
                      "key": "phone_number",
                      "value": "+31612345678",
                      "description": "Return the contacts with exactly this phone number in international E.164 form. Repeat the parameter to match any of up to 50 numbers. Set `limit` to at least the number of values you pass. The default `limit` is 25, and a page cut short by it looks exactly like numbers that matched nothing. Different identifier parameters still combine with AND, so `phone_number=a&phone_number=b&email=c` asks for a contact whose phone number is `a` or `b` and whose email is `c`. Encode the leading plus sign as `%2B` (an unencoded `+` arrives as a space and is rejected). Phone numbers are unique within a workspace, so each value matches at most one contact. Non-canonical forms of the same number match the contact they canonicalize to; a value that is not a phone number shape, or an empty value, is a validation error, never an unfiltered page."
                    },
                    {
                      "disabled": false,
                      "key": "phone_number",
                      "value": "+31698765432",
                      "description": "Return the contacts with exactly this phone number in international E.164 form. Repeat the parameter to match any of up to 50 numbers. Set `limit` to at least the number of values you pass. The default `limit` is 25, and a page cut short by it looks exactly like numbers that matched nothing. Different identifier parameters still combine with AND, so `phone_number=a&phone_number=b&email=c` asks for a contact whose phone number is `a` or `b` and whose email is `c`. Encode the leading plus sign as `%2B` (an unencoded `+` arrives as a space and is rejected). Phone numbers are unique within a workspace, so each value matches at most one contact. Non-canonical forms of the same number match the contact they canonicalize to; a value that is not a phone number shape, or an empty value, is a validation error, never an unfiltered page."
                    },
                    {
                      "disabled": false,
                      "key": "external_id",
                      "value": "user_12345",
                      "description": "Return the contact with exactly this external_id (your own identifier for the contact). Unique within a workspace, so this matches at most one contact. An empty value is a validation error, never an unfiltered page."
                    },
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "acme.com",
                      "description": "Case-insensitive substring match against the contact's email address, first name, last name, or phone number. Phone matching is over the digits of the international form, so a full pasted number, a formatted number, or trailing digits all match; a national form with a leading trunk zero does not."
                    },
                    {
                      "disabled": false,
                      "key": "identifier",
                      "value": "email",
                      "description": "Filter to contacts that have a specific identifier on file."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"audiences\": [\n        {\n          \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n        }\n      ],\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "ddc1a1ca-8266-806a-8066-9b1677fe0dbc",
          "name": "Create or update contacts in bulk",
          "request": {
            "name": "Create or update contacts in bulk",
            "description": {
              "content": "Creates or updates up to 1,000 contacts in one request. Each entry is matched automatically against every identifier it supplies: its email address (trimmed and lowercased), its phone number (normalized to international form), and your own `external_id`. An entry with no match creates a contact. An entry whose identifiers all match one contact updates the supplied fields and preserves omitted fields. This lets an email address change under a stable `external_id` without creating a second contact. An entry whose identifiers belong to several contacts fails with an error naming each match; contacts are never merged automatically. Supplying `match_on` makes that field the only matching key, and every entry must include it. You can also add every contact in the request to up to 10 audiences.\n\nEach entry succeeds or fails on its own: the response lists one result per contact in submission order (`created`, `updated`, or `failed` with the reason), and a failed entry does not abort the rest. If the request itself is invalid, for example when an entry in `audience_ids` does not exist, the whole request fails with a validation error and no contacts are written.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "contacts",
                "batch"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"contacts\": [\n    {\n      \"email\": \"alice@acme.com\",\n      \"first_name\": \"Alice\",\n      \"last_name\": \"Anderson\"\n    },\n    {\n      \"email\": \"bob@acme.com\",\n      \"first_name\": \"Bob\",\n      \"last_name\": \"Baker\"\n    }\n  ],\n  \"audience_ids\": [\n    \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "1f4e3a58-223a-8095-859f-be72b4586938",
              "name": "Per-contact results, in submission order.",
              "originalRequest": {
                "name": "Create or update contacts in bulk",
                "description": {
                  "content": "Creates or updates up to 1,000 contacts in one request. Each entry is matched automatically against every identifier it supplies: its email address (trimmed and lowercased), its phone number (normalized to international form), and your own `external_id`. An entry with no match creates a contact. An entry whose identifiers all match one contact updates the supplied fields and preserves omitted fields. This lets an email address change under a stable `external_id` without creating a second contact. An entry whose identifiers belong to several contacts fails with an error naming each match; contacts are never merged automatically. Supplying `match_on` makes that field the only matching key, and every entry must include it. You can also add every contact in the request to up to 10 audiences.\n\nEach entry succeeds or fails on its own: the response lists one result per contact in submission order (`created`, `updated`, or `failed` with the reason), and a failed entry does not abort the rest. If the request itself is invalid, for example when an entry in `audience_ids` does not exist, the whole request fails with a validation error and no contacts are written.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    "batch"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contacts\": [\n    {\n      \"email\": \"alice@acme.com\",\n      \"first_name\": \"Alice\",\n      \"last_name\": \"Anderson\"\n    },\n    {\n      \"email\": \"bob@acme.com\",\n      \"first_name\": \"Bob\",\n      \"last_name\": \"Baker\"\n    }\n  ],\n  \"audience_ids\": [\n    \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"matched_on\": \"email\",\n      \"status\": \"created\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "22b25726-cefa-8fe1-815c-d14d71fe8b6f",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create or update contacts in bulk",
                "description": {
                  "content": "Creates or updates up to 1,000 contacts in one request. Each entry is matched automatically against every identifier it supplies: its email address (trimmed and lowercased), its phone number (normalized to international form), and your own `external_id`. An entry with no match creates a contact. An entry whose identifiers all match one contact updates the supplied fields and preserves omitted fields. This lets an email address change under a stable `external_id` without creating a second contact. An entry whose identifiers belong to several contacts fails with an error naming each match; contacts are never merged automatically. Supplying `match_on` makes that field the only matching key, and every entry must include it. You can also add every contact in the request to up to 10 audiences.\n\nEach entry succeeds or fails on its own: the response lists one result per contact in submission order (`created`, `updated`, or `failed` with the reason), and a failed entry does not abort the rest. If the request itself is invalid, for example when an entry in `audience_ids` does not exist, the whole request fails with a validation error and no contacts are written.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    "batch"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contacts\": [\n    {\n      \"email\": \"alice@acme.com\",\n      \"first_name\": \"Alice\",\n      \"last_name\": \"Anderson\"\n    },\n    {\n      \"email\": \"bob@acme.com\",\n      \"first_name\": \"Bob\",\n      \"last_name\": \"Baker\"\n    }\n  ],\n  \"audience_ids\": [\n    \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"matched_on\": \"email\",\n      \"status\": \"created\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "aa323855-5931-8da5-8ccb-085d838e7f11",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create or update contacts in bulk",
                "description": {
                  "content": "Creates or updates up to 1,000 contacts in one request. Each entry is matched automatically against every identifier it supplies: its email address (trimmed and lowercased), its phone number (normalized to international form), and your own `external_id`. An entry with no match creates a contact. An entry whose identifiers all match one contact updates the supplied fields and preserves omitted fields. This lets an email address change under a stable `external_id` without creating a second contact. An entry whose identifiers belong to several contacts fails with an error naming each match; contacts are never merged automatically. Supplying `match_on` makes that field the only matching key, and every entry must include it. You can also add every contact in the request to up to 10 audiences.\n\nEach entry succeeds or fails on its own: the response lists one result per contact in submission order (`created`, `updated`, or `failed` with the reason), and a failed entry does not abort the rest. If the request itself is invalid, for example when an entry in `audience_ids` does not exist, the whole request fails with a validation error and no contacts are written.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    "batch"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contacts\": [\n    {\n      \"email\": \"alice@acme.com\",\n      \"first_name\": \"Alice\",\n      \"last_name\": \"Anderson\"\n    },\n    {\n      \"email\": \"bob@acme.com\",\n      \"first_name\": \"Bob\",\n      \"last_name\": \"Baker\"\n    }\n  ],\n  \"audience_ids\": [\n    \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"matched_on\": \"email\",\n      \"status\": \"created\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8ea02b34-c9d8-8f59-825a-ffa41fdd120e",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create or update contacts in bulk",
                "description": {
                  "content": "Creates or updates up to 1,000 contacts in one request. Each entry is matched automatically against every identifier it supplies: its email address (trimmed and lowercased), its phone number (normalized to international form), and your own `external_id`. An entry with no match creates a contact. An entry whose identifiers all match one contact updates the supplied fields and preserves omitted fields. This lets an email address change under a stable `external_id` without creating a second contact. An entry whose identifiers belong to several contacts fails with an error naming each match; contacts are never merged automatically. Supplying `match_on` makes that field the only matching key, and every entry must include it. You can also add every contact in the request to up to 10 audiences.\n\nEach entry succeeds or fails on its own: the response lists one result per contact in submission order (`created`, `updated`, or `failed` with the reason), and a failed entry does not abort the rest. If the request itself is invalid, for example when an entry in `audience_ids` does not exist, the whole request fails with a validation error and no contacts are written.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    "batch"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contacts\": [\n    {\n      \"email\": \"alice@acme.com\",\n      \"first_name\": \"Alice\",\n      \"last_name\": \"Anderson\"\n    },\n    {\n      \"email\": \"bob@acme.com\",\n      \"first_name\": \"Bob\",\n      \"last_name\": \"Baker\"\n    }\n  ],\n  \"audience_ids\": [\n    \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"matched_on\": \"email\",\n      \"status\": \"created\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "71b4ca8c-8a1e-89ad-8ff9-092eba44e46f",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create or update contacts in bulk",
                "description": {
                  "content": "Creates or updates up to 1,000 contacts in one request. Each entry is matched automatically against every identifier it supplies: its email address (trimmed and lowercased), its phone number (normalized to international form), and your own `external_id`. An entry with no match creates a contact. An entry whose identifiers all match one contact updates the supplied fields and preserves omitted fields. This lets an email address change under a stable `external_id` without creating a second contact. An entry whose identifiers belong to several contacts fails with an error naming each match; contacts are never merged automatically. Supplying `match_on` makes that field the only matching key, and every entry must include it. You can also add every contact in the request to up to 10 audiences.\n\nEach entry succeeds or fails on its own: the response lists one result per contact in submission order (`created`, `updated`, or `failed` with the reason), and a failed entry does not abort the rest. If the request itself is invalid, for example when an entry in `audience_ids` does not exist, the whole request fails with a validation error and no contacts are written.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    "batch"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contacts\": [\n    {\n      \"email\": \"alice@acme.com\",\n      \"first_name\": \"Alice\",\n      \"last_name\": \"Anderson\"\n    },\n    {\n      \"email\": \"bob@acme.com\",\n      \"first_name\": \"Bob\",\n      \"last_name\": \"Baker\"\n    }\n  ],\n  \"audience_ids\": [\n    \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"matched_on\": \"email\",\n      \"status\": \"created\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5935a671-674c-813f-8d45-ec537fb45fc2",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create or update contacts in bulk",
                "description": {
                  "content": "Creates or updates up to 1,000 contacts in one request. Each entry is matched automatically against every identifier it supplies: its email address (trimmed and lowercased), its phone number (normalized to international form), and your own `external_id`. An entry with no match creates a contact. An entry whose identifiers all match one contact updates the supplied fields and preserves omitted fields. This lets an email address change under a stable `external_id` without creating a second contact. An entry whose identifiers belong to several contacts fails with an error naming each match; contacts are never merged automatically. Supplying `match_on` makes that field the only matching key, and every entry must include it. You can also add every contact in the request to up to 10 audiences.\n\nEach entry succeeds or fails on its own: the response lists one result per contact in submission order (`created`, `updated`, or `failed` with the reason), and a failed entry does not abort the rest. If the request itself is invalid, for example when an entry in `audience_ids` does not exist, the whole request fails with a validation error and no contacts are written.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    "batch"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contacts\": [\n    {\n      \"email\": \"alice@acme.com\",\n      \"first_name\": \"Alice\",\n      \"last_name\": \"Anderson\"\n    },\n    {\n      \"email\": \"bob@acme.com\",\n      \"first_name\": \"Bob\",\n      \"last_name\": \"Baker\"\n    }\n  ],\n  \"audience_ids\": [\n    \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"matched_on\": \"email\",\n      \"status\": \"created\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8e7066b1-06b0-8f3b-8129-81a7a0375ac0",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create or update contacts in bulk",
                "description": {
                  "content": "Creates or updates up to 1,000 contacts in one request. Each entry is matched automatically against every identifier it supplies: its email address (trimmed and lowercased), its phone number (normalized to international form), and your own `external_id`. An entry with no match creates a contact. An entry whose identifiers all match one contact updates the supplied fields and preserves omitted fields. This lets an email address change under a stable `external_id` without creating a second contact. An entry whose identifiers belong to several contacts fails with an error naming each match; contacts are never merged automatically. Supplying `match_on` makes that field the only matching key, and every entry must include it. You can also add every contact in the request to up to 10 audiences.\n\nEach entry succeeds or fails on its own: the response lists one result per contact in submission order (`created`, `updated`, or `failed` with the reason), and a failed entry does not abort the rest. If the request itself is invalid, for example when an entry in `audience_ids` does not exist, the whole request fails with a validation error and no contacts are written.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    "batch"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contacts\": [\n    {\n      \"email\": \"alice@acme.com\",\n      \"first_name\": \"Alice\",\n      \"last_name\": \"Anderson\"\n    },\n    {\n      \"email\": \"bob@acme.com\",\n      \"first_name\": \"Bob\",\n      \"last_name\": \"Baker\"\n    }\n  ],\n  \"audience_ids\": [\n    \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"matched_on\": \"email\",\n      \"status\": \"created\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "d9eacda2-d20e-8644-8a5e-0b256cae7533",
          "name": "Get a contact",
          "request": {
            "name": "Get a contact",
            "description": {
              "content": "Returns a single contact, including its custom `data` values and the channels it can be reached on. To find a contact's ID by email address or `external_id`, use [List contacts](https://bird.com/docs/api/reference/list-contacts).\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "contacts",
                ":contact_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "contact_id",
                  "description": "(Required) ID of the contact to fetch."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "6159e00b-b4ee-8ab7-86e1-9e6832db1559",
              "name": "The contact.",
              "originalRequest": {
                "name": "Get a contact",
                "description": {
                  "content": "Returns a single contact, including its custom `data` values and the channels it can be reached on. To find a contact's ID by email address or `external_id`, use [List contacts](https://bird.com/docs/api/reference/list-contacts).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"audiences\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6fe0b57c-946e-8ba6-8018-6cf8e138bd55",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a contact",
                "description": {
                  "content": "Returns a single contact, including its custom `data` values and the channels it can be reached on. To find a contact's ID by email address or `external_id`, use [List contacts](https://bird.com/docs/api/reference/list-contacts).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"audiences\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "bb39dab8-e2b2-8392-84cb-d0e516170684",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a contact",
                "description": {
                  "content": "Returns a single contact, including its custom `data` values and the channels it can be reached on. To find a contact's ID by email address or `external_id`, use [List contacts](https://bird.com/docs/api/reference/list-contacts).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"audiences\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "77386eda-9394-8bac-818a-24fb329862aa",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a contact",
                "description": {
                  "content": "Returns a single contact, including its custom `data` values and the channels it can be reached on. To find a contact's ID by email address or `external_id`, use [List contacts](https://bird.com/docs/api/reference/list-contacts).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"audiences\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "212f21a8-6b61-86d4-8257-99a9576629a2",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a contact",
                "description": {
                  "content": "Returns a single contact, including its custom `data` values and the channels it can be reached on. To find a contact's ID by email address or `external_id`, use [List contacts](https://bird.com/docs/api/reference/list-contacts).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"audiences\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c896c726-e189-863b-8001-8f9288403d43",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a contact",
                "description": {
                  "content": "Returns a single contact, including its custom `data` values and the channels it can be reached on. To find a contact's ID by email address or `external_id`, use [List contacts](https://bird.com/docs/api/reference/list-contacts).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"audiences\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ee92a56d-c83f-8c4c-82c6-ef15f470a2e0",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a contact",
                "description": {
                  "content": "Returns a single contact, including its custom `data` values and the channels it can be reached on. To find a contact's ID by email address or `external_id`, use [List contacts](https://bird.com/docs/api/reference/list-contacts).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"audiences\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "1d211b4f-0bc4-811b-8ebc-990875cb4766",
          "name": "Update a contact",
          "request": {
            "name": "Update a contact",
            "description": {
              "content": "Updates a contact. Supplied fields are changed and omitted fields are left unchanged; set `first_name`, `last_name`, or `external_id` to `null` to clear them. Custom values in `data` are merged: keys you supply are set, keys set to `null` are removed, and keys you omit are unchanged.\n\nChanging the email address, phone number, or `external_id` to a value already used by another contact returns a conflict error. A contact always keeps at least one identifier. Clearing both email and phone in the same contact is rejected.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "contacts",
                ":contact_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "contact_id",
                  "description": "(Required) ID of the contact to update."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "PATCH",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"first_name\": \"Alice\",\n  \"last_name\": \"Anderson\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "8abdaade-ffcf-8503-8fd3-3fccb0f8e71a",
              "name": "The updated contact.",
              "originalRequest": {
                "name": "Update a contact",
                "description": {
                  "content": "Updates a contact. Supplied fields are changed and omitted fields are left unchanged; set `first_name`, `last_name`, or `external_id` to `null` to clear them. Custom values in `data` are merged: keys you supply are set, keys set to `null` are removed, and keys you omit are unchanged.\n\nChanging the email address, phone number, or `external_id` to a value already used by another contact returns a conflict error. A contact always keeps at least one identifier. Clearing both email and phone in the same contact is rejected.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"first_name\": \"Alice\",\n  \"last_name\": \"Anderson\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"audiences\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "be8ef243-883b-84a9-80a9-6f6317ad10d5",
              "name": "Bad request",
              "originalRequest": {
                "name": "Update a contact",
                "description": {
                  "content": "Updates a contact. Supplied fields are changed and omitted fields are left unchanged; set `first_name`, `last_name`, or `external_id` to `null` to clear them. Custom values in `data` are merged: keys you supply are set, keys set to `null` are removed, and keys you omit are unchanged.\n\nChanging the email address, phone number, or `external_id` to a value already used by another contact returns a conflict error. A contact always keeps at least one identifier. Clearing both email and phone in the same contact is rejected.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"first_name\": \"Alice\",\n  \"last_name\": \"Anderson\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"audiences\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3e567c61-4d8b-8af9-85b8-6709ccfdfa29",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Update a contact",
                "description": {
                  "content": "Updates a contact. Supplied fields are changed and omitted fields are left unchanged; set `first_name`, `last_name`, or `external_id` to `null` to clear them. Custom values in `data` are merged: keys you supply are set, keys set to `null` are removed, and keys you omit are unchanged.\n\nChanging the email address, phone number, or `external_id` to a value already used by another contact returns a conflict error. A contact always keeps at least one identifier. Clearing both email and phone in the same contact is rejected.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"first_name\": \"Alice\",\n  \"last_name\": \"Anderson\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"audiences\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "850507f9-8d87-80ef-8f42-833aad8d8c8e",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Update a contact",
                "description": {
                  "content": "Updates a contact. Supplied fields are changed and omitted fields are left unchanged; set `first_name`, `last_name`, or `external_id` to `null` to clear them. Custom values in `data` are merged: keys you supply are set, keys set to `null` are removed, and keys you omit are unchanged.\n\nChanging the email address, phone number, or `external_id` to a value already used by another contact returns a conflict error. A contact always keeps at least one identifier. Clearing both email and phone in the same contact is rejected.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"first_name\": \"Alice\",\n  \"last_name\": \"Anderson\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"audiences\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "218bc4af-8830-821c-8ffb-c1e633c69504",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Update a contact",
                "description": {
                  "content": "Updates a contact. Supplied fields are changed and omitted fields are left unchanged; set `first_name`, `last_name`, or `external_id` to `null` to clear them. Custom values in `data` are merged: keys you supply are set, keys set to `null` are removed, and keys you omit are unchanged.\n\nChanging the email address, phone number, or `external_id` to a value already used by another contact returns a conflict error. A contact always keeps at least one identifier. Clearing both email and phone in the same contact is rejected.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"first_name\": \"Alice\",\n  \"last_name\": \"Anderson\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"audiences\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3cb4b268-4b5b-8b46-8908-ded1f1125ecb",
              "name": "Resource conflict",
              "originalRequest": {
                "name": "Update a contact",
                "description": {
                  "content": "Updates a contact. Supplied fields are changed and omitted fields are left unchanged; set `first_name`, `last_name`, or `external_id` to `null` to clear them. Custom values in `data` are merged: keys you supply are set, keys set to `null` are removed, and keys you omit are unchanged.\n\nChanging the email address, phone number, or `external_id` to a value already used by another contact returns a conflict error. A contact always keeps at least one identifier. Clearing both email and phone in the same contact is rejected.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"first_name\": \"Alice\",\n  \"last_name\": \"Anderson\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"audiences\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "acebef16-4c2b-8718-855c-6dad6d6c32b5",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Update a contact",
                "description": {
                  "content": "Updates a contact. Supplied fields are changed and omitted fields are left unchanged; set `first_name`, `last_name`, or `external_id` to `null` to clear them. Custom values in `data` are merged: keys you supply are set, keys set to `null` are removed, and keys you omit are unchanged.\n\nChanging the email address, phone number, or `external_id` to a value already used by another contact returns a conflict error. A contact always keeps at least one identifier. Clearing both email and phone in the same contact is rejected.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"first_name\": \"Alice\",\n  \"last_name\": \"Anderson\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"audiences\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "794e7b38-1572-8e91-8477-2d36a6ca24d1",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Update a contact",
                "description": {
                  "content": "Updates a contact. Supplied fields are changed and omitted fields are left unchanged; set `first_name`, `last_name`, or `external_id` to `null` to clear them. Custom values in `data` are merged: keys you supply are set, keys set to `null` are removed, and keys you omit are unchanged.\n\nChanging the email address, phone number, or `external_id` to a value already used by another contact returns a conflict error. A contact always keeps at least one identifier. Clearing both email and phone in the same contact is rejected.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"first_name\": \"Alice\",\n  \"last_name\": \"Anderson\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"audiences\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "46505e4e-9c57-8ee5-8b0f-bb208a585068",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Update a contact",
                "description": {
                  "content": "Updates a contact. Supplied fields are changed and omitted fields are left unchanged; set `first_name`, `last_name`, or `external_id` to `null` to clear them. Custom values in `data` are merged: keys you supply are set, keys set to `null` are removed, and keys you omit are unchanged.\n\nChanging the email address, phone number, or `external_id` to a value already used by another contact returns a conflict error. A contact always keeps at least one identifier. Clearing both email and phone in the same contact is rejected.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"first_name\": \"Alice\",\n  \"last_name\": \"Anderson\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"audiences\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "a8a7910b-0df6-8c2b-82a6-fae8eb7fedc7",
          "name": "Delete a contact",
          "request": {
            "name": "Delete a contact",
            "description": {
              "content": "Deletes a contact permanently and removes it from every audience it belongs to. Suppression records for the address are not affected: an unsubscribed or bounced address stays suppressed even after the contact is deleted.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "contacts",
                ":contact_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "contact_id",
                  "description": "(Required) ID of the contact to delete."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "DELETE"
          },
          "response": [
            {
              "id": "d807e772-dcd5-8a4d-8f87-0989c52caf74",
              "name": "Contact deleted.",
              "originalRequest": {
                "name": "Delete a contact",
                "description": {
                  "content": "Deletes a contact permanently and removes it from every audience it belongs to. Suppression records for the address are not affected: an unsubscribed or bounced address stays suppressed even after the contact is deleted.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to delete."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "f7c71f1d-3fda-841a-8df9-02a021a36ce6",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Delete a contact",
                "description": {
                  "content": "Deletes a contact permanently and removes it from every audience it belongs to. Suppression records for the address are not affected: an unsubscribed or bounced address stays suppressed even after the contact is deleted.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to delete."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "52d05580-967d-86e9-8df2-bf2b91fe21e6",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Delete a contact",
                "description": {
                  "content": "Deletes a contact permanently and removes it from every audience it belongs to. Suppression records for the address are not affected: an unsubscribed or bounced address stays suppressed even after the contact is deleted.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to delete."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e74980c6-49db-836c-87a0-691bc1cf94a7",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Delete a contact",
                "description": {
                  "content": "Deletes a contact permanently and removes it from every audience it belongs to. Suppression records for the address are not affected: an unsubscribed or bounced address stays suppressed even after the contact is deleted.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to delete."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "34e3f982-8854-8acb-8990-b1f8cd25e0e6",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Delete a contact",
                "description": {
                  "content": "Deletes a contact permanently and removes it from every audience it belongs to. Suppression records for the address are not affected: an unsubscribed or bounced address stays suppressed even after the contact is deleted.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to delete."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ebe7a53e-1437-86fd-86ef-2fc6df1bb905",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Delete a contact",
                "description": {
                  "content": "Deletes a contact permanently and removes it from every audience it belongs to. Suppression records for the address are not affected: an unsubscribed or bounced address stays suppressed even after the contact is deleted.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to delete."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1b0f493a-1562-8177-8d21-78578c4030ad",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Delete a contact",
                "description": {
                  "content": "Deletes a contact permanently and removes it from every audience it belongs to. Suppression records for the address are not affected: an unsubscribed or bounced address stays suppressed even after the contact is deleted.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to delete."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "46108391-1ae2-87ae-8b09-57c860223623",
          "name": "Create a contact property",
          "request": {
            "name": "Create a contact property",
            "description": {
              "content": "Defines a custom property that contacts in the workspace can carry. The key becomes available in contact `data` and as a template variable in broadcasts. The key and type cannot be changed after creation.\n\nA key already in use returns a conflict error. A workspace can hold at most 200 properties; archived properties keep their key and count toward that limit.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "contact-properties"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"key\": \"plan\",\n  \"type\": \"string\",\n  \"fallback_value\": \"free\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "1b1550e2-b57a-8889-8d74-2acaa0a857b1",
              "name": "Contact property created.",
              "originalRequest": {
                "name": "Create a contact property",
                "description": {
                  "content": "Defines a custom property that contacts in the workspace can carry. The key becomes available in contact `data` and as a template variable in broadcasts. The key and type cannot be changed after creation.\n\nA key already in use returns a conflict error. A workspace can hold at most 200 properties; archived properties keep their key and count toward that limit.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"key\": \"plan\",\n  \"type\": \"string\",\n  \"fallback_value\": \"free\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d04e4e97-1cd5-8061-8ba3-cc49adb11db6",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create a contact property",
                "description": {
                  "content": "Defines a custom property that contacts in the workspace can carry. The key becomes available in contact `data` and as a template variable in broadcasts. The key and type cannot be changed after creation.\n\nA key already in use returns a conflict error. A workspace can hold at most 200 properties; archived properties keep their key and count toward that limit.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"key\": \"plan\",\n  \"type\": \"string\",\n  \"fallback_value\": \"free\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "381a47f9-23d7-8ca9-83ed-6605033ecb65",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create a contact property",
                "description": {
                  "content": "Defines a custom property that contacts in the workspace can carry. The key becomes available in contact `data` and as a template variable in broadcasts. The key and type cannot be changed after creation.\n\nA key already in use returns a conflict error. A workspace can hold at most 200 properties; archived properties keep their key and count toward that limit.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"key\": \"plan\",\n  \"type\": \"string\",\n  \"fallback_value\": \"free\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c7d4ea38-72b5-8e36-8976-040feda34ec1",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create a contact property",
                "description": {
                  "content": "Defines a custom property that contacts in the workspace can carry. The key becomes available in contact `data` and as a template variable in broadcasts. The key and type cannot be changed after creation.\n\nA key already in use returns a conflict error. A workspace can hold at most 200 properties; archived properties keep their key and count toward that limit.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"key\": \"plan\",\n  \"type\": \"string\",\n  \"fallback_value\": \"free\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8f6893c9-ea99-8c84-8278-063e26405f33",
              "name": "Resource conflict",
              "originalRequest": {
                "name": "Create a contact property",
                "description": {
                  "content": "Defines a custom property that contacts in the workspace can carry. The key becomes available in contact `data` and as a template variable in broadcasts. The key and type cannot be changed after creation.\n\nA key already in use returns a conflict error. A workspace can hold at most 200 properties; archived properties keep their key and count toward that limit.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"key\": \"plan\",\n  \"type\": \"string\",\n  \"fallback_value\": \"free\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7f2bfe27-211f-81e5-858a-28289b5a9391",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create a contact property",
                "description": {
                  "content": "Defines a custom property that contacts in the workspace can carry. The key becomes available in contact `data` and as a template variable in broadcasts. The key and type cannot be changed after creation.\n\nA key already in use returns a conflict error. A workspace can hold at most 200 properties; archived properties keep their key and count toward that limit.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"key\": \"plan\",\n  \"type\": \"string\",\n  \"fallback_value\": \"free\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "70de49ed-5ecf-8d68-8ad2-c5413398303c",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create a contact property",
                "description": {
                  "content": "Defines a custom property that contacts in the workspace can carry. The key becomes available in contact `data` and as a template variable in broadcasts. The key and type cannot be changed after creation.\n\nA key already in use returns a conflict error. A workspace can hold at most 200 properties; archived properties keep their key and count toward that limit.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"key\": \"plan\",\n  \"type\": \"string\",\n  \"fallback_value\": \"free\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 201,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7cdaf8d9-0e86-88a0-8dc3-26fad44c02b0",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create a contact property",
                "description": {
                  "content": "Defines a custom property that contacts in the workspace can carry. The key becomes available in contact `data` and as a template variable in broadcasts. The key and type cannot be changed after creation.\n\nA key already in use returns a conflict error. A workspace can hold at most 200 properties; archived properties keep their key and count toward that limit.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"key\": \"plan\",\n  \"type\": \"string\",\n  \"fallback_value\": \"free\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "5c593a8f-e246-81c4-8dc0-d827f06e256c",
          "name": "List contact properties",
          "request": {
            "name": "List contact properties",
            "description": {
              "content": "Returns a paginated list of the workspace's contact properties, newest first. Archived properties are included; check each entry's `archived` flag.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "contact-properties"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "62d42aea-1940-8b89-85fd-954f6355e4d4",
              "name": "A page of contact properties.",
              "originalRequest": {
                "name": "List contact properties",
                "description": {
                  "content": "Returns a paginated list of the workspace's contact properties, newest first. Archived properties are included; check each entry's `archived` flag.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"string\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c8adcae7-07c9-8b84-8510-9e8476422ab2",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List contact properties",
                "description": {
                  "content": "Returns a paginated list of the workspace's contact properties, newest first. Archived properties are included; check each entry's `archived` flag.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"string\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "63cab6fe-292c-8c14-8619-85dc5104d276",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List contact properties",
                "description": {
                  "content": "Returns a paginated list of the workspace's contact properties, newest first. Archived properties are included; check each entry's `archived` flag.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"string\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7b6a3019-c705-803a-8171-7feecaafff5b",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List contact properties",
                "description": {
                  "content": "Returns a paginated list of the workspace's contact properties, newest first. Archived properties are included; check each entry's `archived` flag.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"string\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "44cfdef0-8fe7-8b12-834b-d1081b2148b6",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List contact properties",
                "description": {
                  "content": "Returns a paginated list of the workspace's contact properties, newest first. Archived properties are included; check each entry's `archived` flag.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"string\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a275e338-9f2a-8549-88b1-e259c5550534",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List contact properties",
                "description": {
                  "content": "Returns a paginated list of the workspace's contact properties, newest first. Archived properties are included; check each entry's `archived` flag.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"string\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "e6915f99-3d13-847a-893f-241cd1966f48",
          "name": "Get a contact property",
          "request": {
            "name": "Get a contact property",
            "description": {
              "content": "Returns a single contact property: its immutable key and type, the fallback value, and whether it is archived.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "contact-properties",
                ":property_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "property_id",
                  "description": "(Required) ID of the contact property to fetch."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "5d05479b-25b7-8092-8a49-c7c0f281df5a",
              "name": "The contact property.",
              "originalRequest": {
                "name": "Get a contact property",
                "description": {
                  "content": "Returns a single contact property: its immutable key and type, the fallback value, and whether it is archived.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "761fb68e-1fe9-8003-812c-79b0b49d8dd4",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a contact property",
                "description": {
                  "content": "Returns a single contact property: its immutable key and type, the fallback value, and whether it is archived.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "adab49aa-3d8a-82f0-8756-a7ebd993797d",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a contact property",
                "description": {
                  "content": "Returns a single contact property: its immutable key and type, the fallback value, and whether it is archived.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "bba03574-1409-8f79-8926-1696176a8575",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a contact property",
                "description": {
                  "content": "Returns a single contact property: its immutable key and type, the fallback value, and whether it is archived.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "87e18165-ff19-8b18-85db-cfc844425bbd",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a contact property",
                "description": {
                  "content": "Returns a single contact property: its immutable key and type, the fallback value, and whether it is archived.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "31fea3cb-9be2-8a87-8650-2821bb655909",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a contact property",
                "description": {
                  "content": "Returns a single contact property: its immutable key and type, the fallback value, and whether it is archived.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "972c7e5e-4b92-8d4a-8b8b-85cee35f9f91",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a contact property",
                "description": {
                  "content": "Returns a single contact property: its immutable key and type, the fallback value, and whether it is archived.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "ca7af2d4-cb22-8193-88cb-e607f979e37f",
          "name": "Update a contact property",
          "request": {
            "name": "Update a contact property",
            "description": {
              "content": "Updates a contact property's fallback value, the only mutable field. The key and type cannot be changed after creation; create a new property instead.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "contact-properties",
                ":property_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "property_id",
                  "description": "(Required) ID of the contact property to update."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "PATCH",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"fallback_value\": \"free\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "5a25e3eb-93f9-87cf-8891-5d777b01bec5",
              "name": "The updated contact property.",
              "originalRequest": {
                "name": "Update a contact property",
                "description": {
                  "content": "Updates a contact property's fallback value, the only mutable field. The key and type cannot be changed after creation; create a new property instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"fallback_value\": \"free\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d3a80369-963c-8e90-848b-3fb1701cf791",
              "name": "Bad request",
              "originalRequest": {
                "name": "Update a contact property",
                "description": {
                  "content": "Updates a contact property's fallback value, the only mutable field. The key and type cannot be changed after creation; create a new property instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"fallback_value\": \"free\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "184968db-9b84-8220-8cde-d3bf990b4649",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Update a contact property",
                "description": {
                  "content": "Updates a contact property's fallback value, the only mutable field. The key and type cannot be changed after creation; create a new property instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"fallback_value\": \"free\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "51619e13-5151-8077-8fea-6f9fb6c99488",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Update a contact property",
                "description": {
                  "content": "Updates a contact property's fallback value, the only mutable field. The key and type cannot be changed after creation; create a new property instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"fallback_value\": \"free\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dbe60448-d275-8735-824b-65ffccc3cd42",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Update a contact property",
                "description": {
                  "content": "Updates a contact property's fallback value, the only mutable field. The key and type cannot be changed after creation; create a new property instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"fallback_value\": \"free\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "24cede86-046e-8619-80fa-ad1f311eaf41",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Update a contact property",
                "description": {
                  "content": "Updates a contact property's fallback value, the only mutable field. The key and type cannot be changed after creation; create a new property instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"fallback_value\": \"free\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "65c7fa72-cbd3-8d2d-8972-e17cb5788199",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Update a contact property",
                "description": {
                  "content": "Updates a contact property's fallback value, the only mutable field. The key and type cannot be changed after creation; create a new property instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"fallback_value\": \"free\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "627eb023-b17d-801c-8372-4dbb147acc93",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Update a contact property",
                "description": {
                  "content": "Updates a contact property's fallback value, the only mutable field. The key and type cannot be changed after creation; create a new property instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"fallback_value\": \"free\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "24249d93-5c11-8353-8caa-6e699f74ad1c",
          "name": "Archive a contact property",
          "request": {
            "name": "Archive a contact property",
            "description": {
              "content": "Archives a contact property. The key stops being accepted in contact writes and stops rendering in templates, but every value already stored on your contacts is preserved and still returned when you read a contact.\n\nThe key stays reserved and still counts toward the workspace's 200-property limit, so it cannot be re-created with a different type. Archiving an already-archived property returns a conflict error; reverse it with [Unarchive a contact property](https://bird.com/docs/api/reference/unarchive-contact-property).\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "contact-properties",
                ":property_id",
                "archive"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "property_id",
                  "description": "(Required) ID of the contact property to archive."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST"
          },
          "response": [
            {
              "id": "1523060d-660f-88bc-8fcb-9933ba0c5ab0",
              "name": "The archived contact property.",
              "originalRequest": {
                "name": "Archive a contact property",
                "description": {
                  "content": "Archives a contact property. The key stops being accepted in contact writes and stops rendering in templates, but every value already stored on your contacts is preserved and still returned when you read a contact.\n\nThe key stays reserved and still counts toward the workspace's 200-property limit, so it cannot be re-created with a different type. Archiving an already-archived property returns a conflict error; reverse it with [Unarchive a contact property](https://bird.com/docs/api/reference/unarchive-contact-property).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id",
                    "archive"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to archive."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6b9cb0a3-11e1-82bf-89a2-b9d7b4af270c",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Archive a contact property",
                "description": {
                  "content": "Archives a contact property. The key stops being accepted in contact writes and stops rendering in templates, but every value already stored on your contacts is preserved and still returned when you read a contact.\n\nThe key stays reserved and still counts toward the workspace's 200-property limit, so it cannot be re-created with a different type. Archiving an already-archived property returns a conflict error; reverse it with [Unarchive a contact property](https://bird.com/docs/api/reference/unarchive-contact-property).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id",
                    "archive"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to archive."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "08cc3246-d5eb-8c55-841f-85084ffdf571",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Archive a contact property",
                "description": {
                  "content": "Archives a contact property. The key stops being accepted in contact writes and stops rendering in templates, but every value already stored on your contacts is preserved and still returned when you read a contact.\n\nThe key stays reserved and still counts toward the workspace's 200-property limit, so it cannot be re-created with a different type. Archiving an already-archived property returns a conflict error; reverse it with [Unarchive a contact property](https://bird.com/docs/api/reference/unarchive-contact-property).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id",
                    "archive"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to archive."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5c81e8e8-008c-8f33-8989-822082f2b176",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Archive a contact property",
                "description": {
                  "content": "Archives a contact property. The key stops being accepted in contact writes and stops rendering in templates, but every value already stored on your contacts is preserved and still returned when you read a contact.\n\nThe key stays reserved and still counts toward the workspace's 200-property limit, so it cannot be re-created with a different type. Archiving an already-archived property returns a conflict error; reverse it with [Unarchive a contact property](https://bird.com/docs/api/reference/unarchive-contact-property).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id",
                    "archive"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to archive."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "61efe047-a7c2-8f3e-8a74-8064cb867dad",
              "name": "Resource conflict",
              "originalRequest": {
                "name": "Archive a contact property",
                "description": {
                  "content": "Archives a contact property. The key stops being accepted in contact writes and stops rendering in templates, but every value already stored on your contacts is preserved and still returned when you read a contact.\n\nThe key stays reserved and still counts toward the workspace's 200-property limit, so it cannot be re-created with a different type. Archiving an already-archived property returns a conflict error; reverse it with [Unarchive a contact property](https://bird.com/docs/api/reference/unarchive-contact-property).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id",
                    "archive"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to archive."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Conflict",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "caf36150-3bd6-8fa8-89b0-a865e178900f",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Archive a contact property",
                "description": {
                  "content": "Archives a contact property. The key stops being accepted in contact writes and stops rendering in templates, but every value already stored on your contacts is preserved and still returned when you read a contact.\n\nThe key stays reserved and still counts toward the workspace's 200-property limit, so it cannot be re-created with a different type. Archiving an already-archived property returns a conflict error; reverse it with [Unarchive a contact property](https://bird.com/docs/api/reference/unarchive-contact-property).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id",
                    "archive"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to archive."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "920d403c-70ef-803d-8b6a-169d7d82062e",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Archive a contact property",
                "description": {
                  "content": "Archives a contact property. The key stops being accepted in contact writes and stops rendering in templates, but every value already stored on your contacts is preserved and still returned when you read a contact.\n\nThe key stays reserved and still counts toward the workspace's 200-property limit, so it cannot be re-created with a different type. Archiving an already-archived property returns a conflict error; reverse it with [Unarchive a contact property](https://bird.com/docs/api/reference/unarchive-contact-property).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id",
                    "archive"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to archive."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dd984fac-a9d2-8c56-8a4d-0a6b289204c1",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Archive a contact property",
                "description": {
                  "content": "Archives a contact property. The key stops being accepted in contact writes and stops rendering in templates, but every value already stored on your contacts is preserved and still returned when you read a contact.\n\nThe key stays reserved and still counts toward the workspace's 200-property limit, so it cannot be re-created with a different type. Archiving an already-archived property returns a conflict error; reverse it with [Unarchive a contact property](https://bird.com/docs/api/reference/unarchive-contact-property).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id",
                    "archive"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to archive."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "2c8f0ff1-607b-85ba-8f57-2687e3e4a34f",
          "name": "Unarchive a contact property",
          "request": {
            "name": "Unarchive a contact property",
            "description": {
              "content": "Reactivates an archived contact property. The key is accepted in contact writes and renders in templates again; stored values were never removed, so they are unchanged. Unarchiving a property that is not archived returns a conflict error.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "contact-properties",
                ":property_id",
                "unarchive"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "property_id",
                  "description": "(Required) ID of the contact property to unarchive."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST"
          },
          "response": [
            {
              "id": "ea6e6eaa-4ba2-8857-8c12-dd6dbe8fad75",
              "name": "The reactivated contact property.",
              "originalRequest": {
                "name": "Unarchive a contact property",
                "description": {
                  "content": "Reactivates an archived contact property. The key is accepted in contact writes and renders in templates again; stored values were never removed, so they are unchanged. Unarchiving a property that is not archived returns a conflict error.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id",
                    "unarchive"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to unarchive."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0a130807-321c-8267-8157-ee217ae12352",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Unarchive a contact property",
                "description": {
                  "content": "Reactivates an archived contact property. The key is accepted in contact writes and renders in templates again; stored values were never removed, so they are unchanged. Unarchiving a property that is not archived returns a conflict error.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id",
                    "unarchive"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to unarchive."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "95b2dfc2-7d46-8ece-84d8-d946b966b14a",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Unarchive a contact property",
                "description": {
                  "content": "Reactivates an archived contact property. The key is accepted in contact writes and renders in templates again; stored values were never removed, so they are unchanged. Unarchiving a property that is not archived returns a conflict error.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id",
                    "unarchive"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to unarchive."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "07ec5fed-62bb-89e6-862a-cbc966328532",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Unarchive a contact property",
                "description": {
                  "content": "Reactivates an archived contact property. The key is accepted in contact writes and renders in templates again; stored values were never removed, so they are unchanged. Unarchiving a property that is not archived returns a conflict error.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id",
                    "unarchive"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to unarchive."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "98b2f167-4199-8f8a-8ddf-14b9d66d608e",
              "name": "Resource conflict",
              "originalRequest": {
                "name": "Unarchive a contact property",
                "description": {
                  "content": "Reactivates an archived contact property. The key is accepted in contact writes and renders in templates again; stored values were never removed, so they are unchanged. Unarchiving a property that is not archived returns a conflict error.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id",
                    "unarchive"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to unarchive."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Conflict",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "812f749e-8a5f-8643-8729-f7bbb90a5ce7",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Unarchive a contact property",
                "description": {
                  "content": "Reactivates an archived contact property. The key is accepted in contact writes and renders in templates again; stored values were never removed, so they are unchanged. Unarchiving a property that is not archived returns a conflict error.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id",
                    "unarchive"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to unarchive."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "790bba2d-5aeb-842f-8443-539e4759ad0e",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Unarchive a contact property",
                "description": {
                  "content": "Reactivates an archived contact property. The key is accepted in contact writes and renders in templates again; stored values were never removed, so they are unchanged. Unarchiving a property that is not archived returns a conflict error.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id",
                    "unarchive"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to unarchive."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1ab4769d-f966-8971-87af-fd311e24d1d9",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Unarchive a contact property",
                "description": {
                  "content": "Reactivates an archived contact property. The key is accepted in contact writes and renders in templates again; stored values were never removed, so they are unchanged. Unarchiving a property that is not archived returns a conflict error.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contact-properties",
                    ":property_id",
                    "unarchive"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "property_id",
                      "description": "(Required) ID of the contact property to unarchive."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prp_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"string\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "2d52d09b-d48c-84a4-8dfc-fe8cc92457c2",
      "name": "email-audiences",
      "description": {
        "content": "Audiences are the recipient lists broadcasts are sent to. An audience holds a set of contacts that you manage through the API. The contacts in the audience at send time become the broadcast's recipients after suppressions are applied. A contact can belong to multiple audiences.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "63cf1783-9cde-8493-8db4-b906641e4d2e",
          "name": "Create an audience",
          "request": {
            "name": "Create an audience",
            "description": {
              "content": "Creates an audience in the workspace. New audiences start empty: add members with [Add contacts to an audience](https://bird.com/docs/api/reference/assign-audience-contacts) or through [Create or update contacts in bulk](https://bird.com/docs/api/reference/create-contact-batch). The `type` field currently accepts only `static` audiences.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "audiences"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Newsletter subscribers\",\n  \"description\": \"Contacts who opted into the monthly product newsletter\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "ebd5c836-3052-8f92-82d8-bc921e96ddcd",
              "name": "The created audience.",
              "originalRequest": {
                "name": "Create an audience",
                "description": {
                  "content": "Creates an audience in the workspace. New audiences start empty: add members with [Add contacts to an audience](https://bird.com/docs/api/reference/assign-audience-contacts) or through [Create or update contacts in bulk](https://bird.com/docs/api/reference/create-contact-batch). The `type` field currently accepts only `static` audiences.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Newsletter subscribers\",\n  \"description\": \"Contacts who opted into the monthly product newsletter\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"static\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "eb94a403-2a12-8c58-8562-cb2d27c11e0d",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create an audience",
                "description": {
                  "content": "Creates an audience in the workspace. New audiences start empty: add members with [Add contacts to an audience](https://bird.com/docs/api/reference/assign-audience-contacts) or through [Create or update contacts in bulk](https://bird.com/docs/api/reference/create-contact-batch). The `type` field currently accepts only `static` audiences.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Newsletter subscribers\",\n  \"description\": \"Contacts who opted into the monthly product newsletter\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"static\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4b454fc5-d12e-8647-8bdf-1a1f60790e82",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create an audience",
                "description": {
                  "content": "Creates an audience in the workspace. New audiences start empty: add members with [Add contacts to an audience](https://bird.com/docs/api/reference/assign-audience-contacts) or through [Create or update contacts in bulk](https://bird.com/docs/api/reference/create-contact-batch). The `type` field currently accepts only `static` audiences.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Newsletter subscribers\",\n  \"description\": \"Contacts who opted into the monthly product newsletter\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"static\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6f423c9d-125d-80a5-807b-f8a541967422",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create an audience",
                "description": {
                  "content": "Creates an audience in the workspace. New audiences start empty: add members with [Add contacts to an audience](https://bird.com/docs/api/reference/assign-audience-contacts) or through [Create or update contacts in bulk](https://bird.com/docs/api/reference/create-contact-batch). The `type` field currently accepts only `static` audiences.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Newsletter subscribers\",\n  \"description\": \"Contacts who opted into the monthly product newsletter\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"static\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b273d80b-26f4-8043-8b27-b4153aa35e2d",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create an audience",
                "description": {
                  "content": "Creates an audience in the workspace. New audiences start empty: add members with [Add contacts to an audience](https://bird.com/docs/api/reference/assign-audience-contacts) or through [Create or update contacts in bulk](https://bird.com/docs/api/reference/create-contact-batch). The `type` field currently accepts only `static` audiences.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Newsletter subscribers\",\n  \"description\": \"Contacts who opted into the monthly product newsletter\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"static\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f61fcabf-0e47-8302-8adb-558105fe545d",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create an audience",
                "description": {
                  "content": "Creates an audience in the workspace. New audiences start empty: add members with [Add contacts to an audience](https://bird.com/docs/api/reference/assign-audience-contacts) or through [Create or update contacts in bulk](https://bird.com/docs/api/reference/create-contact-batch). The `type` field currently accepts only `static` audiences.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Newsletter subscribers\",\n  \"description\": \"Contacts who opted into the monthly product newsletter\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 201,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"static\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a65ad4c9-2926-8582-8cc0-2ce4ac8fb161",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create an audience",
                "description": {
                  "content": "Creates an audience in the workspace. New audiences start empty: add members with [Add contacts to an audience](https://bird.com/docs/api/reference/assign-audience-contacts) or through [Create or update contacts in bulk](https://bird.com/docs/api/reference/create-contact-batch). The `type` field currently accepts only `static` audiences.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Newsletter subscribers\",\n  \"description\": \"Contacts who opted into the monthly product newsletter\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"static\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "6af6c53c-1afa-8f6e-8808-2190500d081a",
          "name": "List audiences",
          "request": {
            "name": "List audiences",
            "description": {
              "content": "Returns a paginated list of audiences in the workspace, newest first. Filter to audiences whose name contains a substring with `q`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "audiences"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "q",
                  "value": "newsletter",
                  "description": "Case-insensitive substring match against the audience's name."
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "7602dad0-3e82-8bcb-8abd-7910b4e58224",
              "name": "A page of audiences.",
              "originalRequest": {
                "name": "List audiences",
                "description": {
                  "content": "Returns a paginated list of audiences in the workspace, newest first. Filter to audiences whose name contains a substring with `q`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "newsletter",
                      "description": "Case-insensitive substring match against the audience's name."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"static\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d1472b43-8980-8ecb-852f-39b2a1c26fe7",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List audiences",
                "description": {
                  "content": "Returns a paginated list of audiences in the workspace, newest first. Filter to audiences whose name contains a substring with `q`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "newsletter",
                      "description": "Case-insensitive substring match against the audience's name."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"static\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "49a20559-fc09-8847-87da-c6f45fc1ddae",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List audiences",
                "description": {
                  "content": "Returns a paginated list of audiences in the workspace, newest first. Filter to audiences whose name contains a substring with `q`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "newsletter",
                      "description": "Case-insensitive substring match against the audience's name."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"static\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0b37ccd6-6719-80bf-8edc-e47a3ce73ed5",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List audiences",
                "description": {
                  "content": "Returns a paginated list of audiences in the workspace, newest first. Filter to audiences whose name contains a substring with `q`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "newsletter",
                      "description": "Case-insensitive substring match against the audience's name."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"static\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ae9f4ac1-6852-8c58-859d-06355357595e",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List audiences",
                "description": {
                  "content": "Returns a paginated list of audiences in the workspace, newest first. Filter to audiences whose name contains a substring with `q`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "newsletter",
                      "description": "Case-insensitive substring match against the audience's name."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"static\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0028431c-e8b3-805f-86d8-1bc6d20f495c",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List audiences",
                "description": {
                  "content": "Returns a paginated list of audiences in the workspace, newest first. Filter to audiences whose name contains a substring with `q`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "newsletter",
                      "description": "Case-insensitive substring match against the audience's name."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"static\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "1559e704-a597-8a06-84c9-9436d78f13a1",
          "name": "Get an audience",
          "request": {
            "name": "Get an audience",
            "description": {
              "content": "Returns a single audience: its name, description, and type. The member list is separate; fetch it with [List an audience's contacts](https://bird.com/docs/api/reference/list-audience-contacts).\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "audiences",
                ":audience_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "audience_id",
                  "description": "(Required) ID of the audience to fetch."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "163b1f25-3196-8fff-83e8-18e5b3f450c0",
              "name": "The audience.",
              "originalRequest": {
                "name": "Get an audience",
                "description": {
                  "content": "Returns a single audience: its name, description, and type. The member list is separate; fetch it with [List an audience's contacts](https://bird.com/docs/api/reference/list-audience-contacts).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"static\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8aff64c1-aba4-8473-8fa1-1869389fbd61",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get an audience",
                "description": {
                  "content": "Returns a single audience: its name, description, and type. The member list is separate; fetch it with [List an audience's contacts](https://bird.com/docs/api/reference/list-audience-contacts).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"static\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5c2f1c42-4bdc-81d8-8e0f-9c5f76fe65e1",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get an audience",
                "description": {
                  "content": "Returns a single audience: its name, description, and type. The member list is separate; fetch it with [List an audience's contacts](https://bird.com/docs/api/reference/list-audience-contacts).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"static\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4d6c9c1e-8f0b-8dc3-8845-15260e728eda",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get an audience",
                "description": {
                  "content": "Returns a single audience: its name, description, and type. The member list is separate; fetch it with [List an audience's contacts](https://bird.com/docs/api/reference/list-audience-contacts).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"static\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "12918d85-5b99-8589-8dbd-5f45d90737cb",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get an audience",
                "description": {
                  "content": "Returns a single audience: its name, description, and type. The member list is separate; fetch it with [List an audience's contacts](https://bird.com/docs/api/reference/list-audience-contacts).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"static\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "727389c6-babd-8c87-8cd3-a36d29082d2b",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get an audience",
                "description": {
                  "content": "Returns a single audience: its name, description, and type. The member list is separate; fetch it with [List an audience's contacts](https://bird.com/docs/api/reference/list-audience-contacts).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"static\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "714da562-a750-8cf7-8d44-4e28b733ec39",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get an audience",
                "description": {
                  "content": "Returns a single audience: its name, description, and type. The member list is separate; fetch it with [List an audience's contacts](https://bird.com/docs/api/reference/list-audience-contacts).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"static\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "501124df-3001-8d4d-839d-0cd9b72d6591",
          "name": "Update an audience",
          "request": {
            "name": "Update an audience",
            "description": {
              "content": "Updates an audience's name or description. Omitted fields are left unchanged; set `description` to `null` to clear it.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "audiences",
                ":audience_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "audience_id",
                  "description": "(Required) ID of the audience to update."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "PATCH",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Newsletter subscribers\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "f54f355b-3c10-82f4-8a9d-7e834e39dc28",
              "name": "The updated audience.",
              "originalRequest": {
                "name": "Update an audience",
                "description": {
                  "content": "Updates an audience's name or description. Omitted fields are left unchanged; set `description` to `null` to clear it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Newsletter subscribers\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"static\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "025b2168-ecca-8f2f-81dc-18d9beeaebd9",
              "name": "Bad request",
              "originalRequest": {
                "name": "Update an audience",
                "description": {
                  "content": "Updates an audience's name or description. Omitted fields are left unchanged; set `description` to `null` to clear it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Newsletter subscribers\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"static\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "00624342-21c8-8d5c-82ee-951bae5d4130",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Update an audience",
                "description": {
                  "content": "Updates an audience's name or description. Omitted fields are left unchanged; set `description` to `null` to clear it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Newsletter subscribers\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"static\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5a50e5cc-bc2c-8a27-87e8-8415e662624d",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Update an audience",
                "description": {
                  "content": "Updates an audience's name or description. Omitted fields are left unchanged; set `description` to `null` to clear it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Newsletter subscribers\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"static\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5ad2db14-1811-8269-8a16-c62f8d669dc7",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Update an audience",
                "description": {
                  "content": "Updates an audience's name or description. Omitted fields are left unchanged; set `description` to `null` to clear it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Newsletter subscribers\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"static\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6662130b-bb4b-8ac0-8879-1e09456365e5",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Update an audience",
                "description": {
                  "content": "Updates an audience's name or description. Omitted fields are left unchanged; set `description` to `null` to clear it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Newsletter subscribers\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"static\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "745d6527-d1a8-8934-83a3-51b6ce37eab4",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Update an audience",
                "description": {
                  "content": "Updates an audience's name or description. Omitted fields are left unchanged; set `description` to `null` to clear it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Newsletter subscribers\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"static\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "402ef7d7-2197-8fbc-8a7c-a12f5085c8c7",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Update an audience",
                "description": {
                  "content": "Updates an audience's name or description. Omitted fields are left unchanged; set `description` to `null` to clear it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Newsletter subscribers\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"type\": \"static\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "2cbb18fe-44cf-8639-8d04-73eb73f2d503",
          "name": "Delete an audience",
          "request": {
            "name": "Delete an audience",
            "description": {
              "content": "Deletes an audience and its memberships. Contacts themselves are not deleted. An audience cannot be deleted while a broadcast targeting it is scheduled, accepted, sending, or canceling; cancel that broadcast first, then retry.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "audiences",
                ":audience_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "audience_id",
                  "description": "(Required) ID of the audience to delete."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "DELETE"
          },
          "response": [
            {
              "id": "c0d63db4-db26-8c56-88e0-4820867f3983",
              "name": "The audience was deleted.",
              "originalRequest": {
                "name": "Delete an audience",
                "description": {
                  "content": "Deletes an audience and its memberships. Contacts themselves are not deleted. An audience cannot be deleted while a broadcast targeting it is scheduled, accepted, sending, or canceling; cancel that broadcast first, then retry.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to delete."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "e0d0ec81-d61f-8698-806b-2340f6730818",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Delete an audience",
                "description": {
                  "content": "Deletes an audience and its memberships. Contacts themselves are not deleted. An audience cannot be deleted while a broadcast targeting it is scheduled, accepted, sending, or canceling; cancel that broadcast first, then retry.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to delete."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "868c81ef-4cd5-8950-8454-996cd89a803f",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Delete an audience",
                "description": {
                  "content": "Deletes an audience and its memberships. Contacts themselves are not deleted. An audience cannot be deleted while a broadcast targeting it is scheduled, accepted, sending, or canceling; cancel that broadcast first, then retry.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to delete."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d57239e4-9a12-8d8a-8fe4-b139586bd49d",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Delete an audience",
                "description": {
                  "content": "Deletes an audience and its memberships. Contacts themselves are not deleted. An audience cannot be deleted while a broadcast targeting it is scheduled, accepted, sending, or canceling; cancel that broadcast first, then retry.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to delete."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "eb6e3dd2-17fb-8061-8974-948b48bc7592",
              "name": "Resource conflict",
              "originalRequest": {
                "name": "Delete an audience",
                "description": {
                  "content": "Deletes an audience and its memberships. Contacts themselves are not deleted. An audience cannot be deleted while a broadcast targeting it is scheduled, accepted, sending, or canceling; cancel that broadcast first, then retry.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to delete."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f0ff401d-7ae3-8ef4-8301-05d15fbcc8ae",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Delete an audience",
                "description": {
                  "content": "Deletes an audience and its memberships. Contacts themselves are not deleted. An audience cannot be deleted while a broadcast targeting it is scheduled, accepted, sending, or canceling; cancel that broadcast first, then retry.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to delete."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0c6d762a-8fa5-8a9c-8dd6-52d2017bc877",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Delete an audience",
                "description": {
                  "content": "Deletes an audience and its memberships. Contacts themselves are not deleted. An audience cannot be deleted while a broadcast targeting it is scheduled, accepted, sending, or canceling; cancel that broadcast first, then retry.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to delete."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "81bdd86f-f5bd-8e2a-8de9-19563cdf1b1d",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Delete an audience",
                "description": {
                  "content": "Deletes an audience and its memberships. Contacts themselves are not deleted. An audience cannot be deleted while a broadcast targeting it is scheduled, accepted, sending, or canceling; cancel that broadcast first, then retry.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to delete."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "a4c4ae74-79b6-8184-81c8-bad98b0fcdc2",
          "name": "List an audience's contacts",
          "request": {
            "name": "List an audience's contacts",
            "description": {
              "content": "Lists the contacts in a static audience as a cursor page, ordered by the time each contact joined the audience, most recent first. Each entry is the contact together with the time it joined.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "audiences",
                ":audience_id",
                "contacts"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "q",
                  "value": "acme.com",
                  "description": "Case-insensitive substring match against a contact's email address or the digits in its international phone number."
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "audience_id",
                  "description": "(Required) ID of the audience whose contacts to list."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "5cb414ad-6b62-898c-8ab4-98f721cca12f",
              "name": "A page of the audience's contacts.",
              "originalRequest": {
                "name": "List an audience's contacts",
                "description": {
                  "content": "Lists the contacts in a static audience as a cursor page, ordered by the time each contact joined the audience, most recent first. Each entry is the contact together with the time it joined.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "acme.com",
                      "description": "Case-insensitive substring match against a contact's email address or the digits in its international phone number."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience whose contacts to list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"contact\": {\n        \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"audiences\": [\n          {\n            \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n          }\n        ],\n        \"created_at\": \"2026-05-20T09:14:52Z\",\n        \"updated_at\": \"2026-05-25T16:42:01Z\"\n      },\n      \"audiences\": [\n        {\n          \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "15857ef7-328a-88ef-83c6-df10ca244443",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List an audience's contacts",
                "description": {
                  "content": "Lists the contacts in a static audience as a cursor page, ordered by the time each contact joined the audience, most recent first. Each entry is the contact together with the time it joined.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "acme.com",
                      "description": "Case-insensitive substring match against a contact's email address or the digits in its international phone number."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience whose contacts to list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"contact\": {\n        \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"audiences\": [\n          {\n            \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n          }\n        ],\n        \"created_at\": \"2026-05-20T09:14:52Z\",\n        \"updated_at\": \"2026-05-25T16:42:01Z\"\n      },\n      \"audiences\": [\n        {\n          \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4d60a3e1-eef5-85f5-8c4b-ffa6e8a59ced",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List an audience's contacts",
                "description": {
                  "content": "Lists the contacts in a static audience as a cursor page, ordered by the time each contact joined the audience, most recent first. Each entry is the contact together with the time it joined.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "acme.com",
                      "description": "Case-insensitive substring match against a contact's email address or the digits in its international phone number."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience whose contacts to list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"contact\": {\n        \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"audiences\": [\n          {\n            \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n          }\n        ],\n        \"created_at\": \"2026-05-20T09:14:52Z\",\n        \"updated_at\": \"2026-05-25T16:42:01Z\"\n      },\n      \"audiences\": [\n        {\n          \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "94dca207-6bb6-81eb-8467-b8d5c0a395af",
              "name": "Resource not found",
              "originalRequest": {
                "name": "List an audience's contacts",
                "description": {
                  "content": "Lists the contacts in a static audience as a cursor page, ordered by the time each contact joined the audience, most recent first. Each entry is the contact together with the time it joined.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "acme.com",
                      "description": "Case-insensitive substring match against a contact's email address or the digits in its international phone number."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience whose contacts to list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"contact\": {\n        \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"audiences\": [\n          {\n            \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n          }\n        ],\n        \"created_at\": \"2026-05-20T09:14:52Z\",\n        \"updated_at\": \"2026-05-25T16:42:01Z\"\n      },\n      \"audiences\": [\n        {\n          \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ecaa2ab4-0fdd-84d5-8298-69b163beaee1",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List an audience's contacts",
                "description": {
                  "content": "Lists the contacts in a static audience as a cursor page, ordered by the time each contact joined the audience, most recent first. Each entry is the contact together with the time it joined.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "acme.com",
                      "description": "Case-insensitive substring match against a contact's email address or the digits in its international phone number."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience whose contacts to list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"contact\": {\n        \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"audiences\": [\n          {\n            \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n          }\n        ],\n        \"created_at\": \"2026-05-20T09:14:52Z\",\n        \"updated_at\": \"2026-05-25T16:42:01Z\"\n      },\n      \"audiences\": [\n        {\n          \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0c5fb499-5a94-80d9-8d45-7459c09fbf14",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List an audience's contacts",
                "description": {
                  "content": "Lists the contacts in a static audience as a cursor page, ordered by the time each contact joined the audience, most recent first. Each entry is the contact together with the time it joined.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "acme.com",
                      "description": "Case-insensitive substring match against a contact's email address or the digits in its international phone number."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience whose contacts to list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"contact\": {\n        \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"audiences\": [\n          {\n            \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n          }\n        ],\n        \"created_at\": \"2026-05-20T09:14:52Z\",\n        \"updated_at\": \"2026-05-25T16:42:01Z\"\n      },\n      \"audiences\": [\n        {\n          \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c168943b-63b7-8deb-8cd4-4e20a516580f",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List an audience's contacts",
                "description": {
                  "content": "Lists the contacts in a static audience as a cursor page, ordered by the time each contact joined the audience, most recent first. Each entry is the contact together with the time it joined.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "acme.com",
                      "description": "Case-insensitive substring match against a contact's email address or the digits in its international phone number."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience whose contacts to list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"contact\": {\n        \"id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"audiences\": [\n          {\n            \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n          }\n        ],\n        \"created_at\": \"2026-05-20T09:14:52Z\",\n        \"updated_at\": \"2026-05-25T16:42:01Z\"\n      },\n      \"audiences\": [\n        {\n          \"id\": \"adn_01krdgeqcxet5s7t44vh8rt9mg\"\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "3239bdda-4528-8bb2-8b6a-151b3b52f7ba",
          "name": "Assign contacts to an audience",
          "request": {
            "name": "Assign contacts to an audience",
            "description": {
              "content": "Adds up to 1,000 contacts to an audience. Adding is idempotent: contacts that are already members are left in place and keep their original join time. If any contact ID does not exist in the workspace, the whole request fails with `422 Unprocessable Entity` and no contacts are added.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "audiences",
                ":audience_id",
                "contacts"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "audience_id",
                  "description": "(Required) ID of the audience to add contacts to."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"contact_ids\": [\n    \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "15e3e11d-35fa-8e23-86a7-2a8226785acd",
              "name": "Contacts added to the audience.",
              "originalRequest": {
                "name": "Assign contacts to an audience",
                "description": {
                  "content": "Adds up to 1,000 contacts to an audience. Adding is idempotent: contacts that are already members are left in place and keep their original join time. If any contact ID does not exist in the workspace, the whole request fails with `422 Unprocessable Entity` and no contacts are added.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to add contacts to."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contact_ids\": [\n    \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "9a0db3ec-95d4-87b0-8b8a-df7efe1aa028",
              "name": "Bad request",
              "originalRequest": {
                "name": "Assign contacts to an audience",
                "description": {
                  "content": "Adds up to 1,000 contacts to an audience. Adding is idempotent: contacts that are already members are left in place and keep their original join time. If any contact ID does not exist in the workspace, the whole request fails with `422 Unprocessable Entity` and no contacts are added.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to add contacts to."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contact_ids\": [\n    \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ff311e0d-d29c-81e1-8ac7-5278dbd91651",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Assign contacts to an audience",
                "description": {
                  "content": "Adds up to 1,000 contacts to an audience. Adding is idempotent: contacts that are already members are left in place and keep their original join time. If any contact ID does not exist in the workspace, the whole request fails with `422 Unprocessable Entity` and no contacts are added.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to add contacts to."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contact_ids\": [\n    \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "00d96ae9-5abf-8b93-8b45-ae11600e8c74",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Assign contacts to an audience",
                "description": {
                  "content": "Adds up to 1,000 contacts to an audience. Adding is idempotent: contacts that are already members are left in place and keep their original join time. If any contact ID does not exist in the workspace, the whole request fails with `422 Unprocessable Entity` and no contacts are added.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to add contacts to."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contact_ids\": [\n    \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6ee45918-23bc-8d15-85ee-959647bc0e9c",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Assign contacts to an audience",
                "description": {
                  "content": "Adds up to 1,000 contacts to an audience. Adding is idempotent: contacts that are already members are left in place and keep their original join time. If any contact ID does not exist in the workspace, the whole request fails with `422 Unprocessable Entity` and no contacts are added.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to add contacts to."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contact_ids\": [\n    \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8fe2d194-33f8-8413-8fa9-8a7d4b1c3321",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Assign contacts to an audience",
                "description": {
                  "content": "Adds up to 1,000 contacts to an audience. Adding is idempotent: contacts that are already members are left in place and keep their original join time. If any contact ID does not exist in the workspace, the whole request fails with `422 Unprocessable Entity` and no contacts are added.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to add contacts to."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contact_ids\": [\n    \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b4121629-0857-8655-8d08-767c41d3f22c",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Assign contacts to an audience",
                "description": {
                  "content": "Adds up to 1,000 contacts to an audience. Adding is idempotent: contacts that are already members are left in place and keep their original join time. If any contact ID does not exist in the workspace, the whole request fails with `422 Unprocessable Entity` and no contacts are added.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to add contacts to."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contact_ids\": [\n    \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c345d09a-4096-83f1-8bfb-17c954dc955b",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Assign contacts to an audience",
                "description": {
                  "content": "Adds up to 1,000 contacts to an audience. Adding is idempotent: contacts that are already members are left in place and keep their original join time. If any contact ID does not exist in the workspace, the whole request fails with `422 Unprocessable Entity` and no contacts are added.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to add contacts to."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contact_ids\": [\n    \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "df94e2f8-35d3-8be9-8c00-24ef205fe8af",
          "name": "Unassign contacts from an audience",
          "request": {
            "name": "Unassign contacts from an audience",
            "description": {
              "content": "Removes up to 1,000 contacts from an audience. Contacts that are not members are skipped. If any contact ID does not exist in the workspace, the whole request fails with `422 Unprocessable Entity` and no memberships are removed. The contacts themselves are not deleted and remain members of any other audiences.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "audiences",
                ":audience_id",
                "contacts",
                "remove"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "audience_id",
                  "description": "(Required) ID of the audience to remove contacts from."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"contact_ids\": [\n    \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "038476fd-3e67-80ee-8420-30789ead5bb5",
              "name": "Contacts removed from the audience.",
              "originalRequest": {
                "name": "Unassign contacts from an audience",
                "description": {
                  "content": "Removes up to 1,000 contacts from an audience. Contacts that are not members are skipped. If any contact ID does not exist in the workspace, the whole request fails with `422 Unprocessable Entity` and no memberships are removed. The contacts themselves are not deleted and remain members of any other audiences.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts",
                    "remove"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to remove contacts from."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contact_ids\": [\n    \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "db884c52-765a-8c36-808c-5ed4fd216170",
              "name": "Bad request",
              "originalRequest": {
                "name": "Unassign contacts from an audience",
                "description": {
                  "content": "Removes up to 1,000 contacts from an audience. Contacts that are not members are skipped. If any contact ID does not exist in the workspace, the whole request fails with `422 Unprocessable Entity` and no memberships are removed. The contacts themselves are not deleted and remain members of any other audiences.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts",
                    "remove"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to remove contacts from."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contact_ids\": [\n    \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8ca86524-5f9a-8ede-8d8d-0e2c4c55ba47",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Unassign contacts from an audience",
                "description": {
                  "content": "Removes up to 1,000 contacts from an audience. Contacts that are not members are skipped. If any contact ID does not exist in the workspace, the whole request fails with `422 Unprocessable Entity` and no memberships are removed. The contacts themselves are not deleted and remain members of any other audiences.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts",
                    "remove"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to remove contacts from."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contact_ids\": [\n    \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "eecfa47b-11c5-82e3-8a10-ae3dd864eaad",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Unassign contacts from an audience",
                "description": {
                  "content": "Removes up to 1,000 contacts from an audience. Contacts that are not members are skipped. If any contact ID does not exist in the workspace, the whole request fails with `422 Unprocessable Entity` and no memberships are removed. The contacts themselves are not deleted and remain members of any other audiences.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts",
                    "remove"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to remove contacts from."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contact_ids\": [\n    \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2a994bfe-6a9e-8c45-880a-5e9c992bc63c",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Unassign contacts from an audience",
                "description": {
                  "content": "Removes up to 1,000 contacts from an audience. Contacts that are not members are skipped. If any contact ID does not exist in the workspace, the whole request fails with `422 Unprocessable Entity` and no memberships are removed. The contacts themselves are not deleted and remain members of any other audiences.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts",
                    "remove"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to remove contacts from."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contact_ids\": [\n    \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "59021aca-297b-82e9-86ac-8b906a6526bd",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Unassign contacts from an audience",
                "description": {
                  "content": "Removes up to 1,000 contacts from an audience. Contacts that are not members are skipped. If any contact ID does not exist in the workspace, the whole request fails with `422 Unprocessable Entity` and no memberships are removed. The contacts themselves are not deleted and remain members of any other audiences.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts",
                    "remove"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to remove contacts from."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contact_ids\": [\n    \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7c598339-01e5-8d14-8945-54fdd4a1d32d",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Unassign contacts from an audience",
                "description": {
                  "content": "Removes up to 1,000 contacts from an audience. Contacts that are not members are skipped. If any contact ID does not exist in the workspace, the whole request fails with `422 Unprocessable Entity` and no memberships are removed. The contacts themselves are not deleted and remain members of any other audiences.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts",
                    "remove"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to remove contacts from."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contact_ids\": [\n    \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c1b6c20a-aa93-8b7c-86b7-23d99d12d66c",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Unassign contacts from an audience",
                "description": {
                  "content": "Removes up to 1,000 contacts from an audience. Contacts that are not members are skipped. If any contact ID does not exist in the workspace, the whole request fails with `422 Unprocessable Entity` and no memberships are removed. The contacts themselves are not deleted and remain members of any other audiences.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts",
                    "remove"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to remove contacts from."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"contact_ids\": [\n    \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "d1331ca4-682e-85c9-8aa5-7d0e1ee41776",
          "name": "Unassign a contact from an audience",
          "request": {
            "name": "Unassign a contact from an audience",
            "description": {
              "content": "Removes a contact's membership in an audience. The contact itself is not deleted and remains a member of any other audiences. Removing a contact that is not a member of the audience succeeds with no effect (`204 No Content`); an unknown audience or contact returns a not-found error.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "audiences",
                ":audience_id",
                "contacts",
                ":contact_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "audience_id",
                  "description": "(Required) ID of the audience to remove the contact from."
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "contact_id",
                  "description": "(Required) ID of the contact to remove."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "DELETE"
          },
          "response": [
            {
              "id": "a1afd17f-f963-847b-89a2-d5bc2ecd1a06",
              "name": "The contact was removed from the audience, or was already not a member.",
              "originalRequest": {
                "name": "Unassign a contact from an audience",
                "description": {
                  "content": "Removes a contact's membership in an audience. The contact itself is not deleted and remains a member of any other audiences. Removing a contact that is not a member of the audience succeeds with no effect (`204 No Content`); an unknown audience or contact returns a not-found error.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to remove the contact from."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to remove."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "4479e014-ecb0-8d43-8b17-063cf41217b7",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Unassign a contact from an audience",
                "description": {
                  "content": "Removes a contact's membership in an audience. The contact itself is not deleted and remains a member of any other audiences. Removing a contact that is not a member of the audience succeeds with no effect (`204 No Content`); an unknown audience or contact returns a not-found error.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to remove the contact from."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to remove."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2f4ddf92-422b-8775-892f-2f497f6625db",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Unassign a contact from an audience",
                "description": {
                  "content": "Removes a contact's membership in an audience. The contact itself is not deleted and remains a member of any other audiences. Removing a contact that is not a member of the audience succeeds with no effect (`204 No Content`); an unknown audience or contact returns a not-found error.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to remove the contact from."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to remove."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6cd3327c-ab4c-867b-8f18-04f8d85fed91",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Unassign a contact from an audience",
                "description": {
                  "content": "Removes a contact's membership in an audience. The contact itself is not deleted and remains a member of any other audiences. Removing a contact that is not a member of the audience succeeds with no effect (`204 No Content`); an unknown audience or contact returns a not-found error.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to remove the contact from."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to remove."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c84d8dd0-ca3f-83f8-8671-8cc40a4a533f",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Unassign a contact from an audience",
                "description": {
                  "content": "Removes a contact's membership in an audience. The contact itself is not deleted and remains a member of any other audiences. Removing a contact that is not a member of the audience succeeds with no effect (`204 No Content`); an unknown audience or contact returns a not-found error.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to remove the contact from."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to remove."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3ef62085-7409-85cd-8937-e8c80258ad3d",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Unassign a contact from an audience",
                "description": {
                  "content": "Removes a contact's membership in an audience. The contact itself is not deleted and remains a member of any other audiences. Removing a contact that is not a member of the audience succeeds with no effect (`204 No Content`); an unknown audience or contact returns a not-found error.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to remove the contact from."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to remove."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3d11db6b-47d1-8312-88c6-4b2c3d01101b",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Unassign a contact from an audience",
                "description": {
                  "content": "Removes a contact's membership in an audience. The contact itself is not deleted and remains a member of any other audiences. Removing a contact that is not a member of the audience succeeds with no effect (`204 No Content`); an unknown audience or contact returns a not-found error.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "audiences",
                    ":audience_id",
                    "contacts",
                    ":contact_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "audience_id",
                      "description": "(Required) ID of the audience to remove the contact from."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact to remove."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "0d16bfbb-f5bb-8f0a-88c1-cc63fc29d5a4",
      "name": "email-stats",
      "description": {
        "content": "Email analytics, including daily and hourly delivery statistics, tag breakdowns, and a KPI summary.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "b4542de7-11e7-896b-82b6-cd9d12463485",
          "name": "Get daily sending statistics",
          "request": {
            "name": "Get daily sending statistics",
            "description": {
              "content": "Returns one row of aggregate sending statistics per calendar day for the workspace: UTC days by default, or your local days when `timezone` is set. Days with no activity are included with zero counts, so the series charts without client-side gap handling. Suited to charts and trend lines; for per-message exact accounting use the message detail endpoints.\n\nRows use event time. For example, a complaint received on Wednesday for a message sent the prior Monday is counted in Wednesday's row.\n\nThe maximum window is 365 days; requesting a longer range returns `422`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "stats",
                "daily"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive), `YYYY-MM-DD`. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive), `YYYY-MM-DD`. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": false,
                  "key": "category",
                  "value": "transactional",
                  "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                },
                {
                  "disabled": false,
                  "key": "sending_domain",
                  "value": "mail.acme.com",
                  "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                },
                {
                  "disabled": false,
                  "key": "tag",
                  "value": "campaign:spring_launch",
                  "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                },
                {
                  "disabled": false,
                  "key": "sending_ip",
                  "value": "192.0.2.55",
                  "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                },
                {
                  "disabled": false,
                  "key": "recipient_domain",
                  "value": "gmail.com",
                  "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                },
                {
                  "disabled": false,
                  "key": "template",
                  "value": "welcome-email",
                  "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "78bccd49-d0ce-83e1-8952-0710c4c2be68",
              "name": "Daily aggregate stats for the requested period.",
              "originalRequest": {
                "name": "Get daily sending statistics",
                "description": {
                  "content": "Returns one row of aggregate sending statistics per calendar day for the workspace: UTC days by default, or your local days when `timezone` is set. Days with no activity are included with zero counts, so the series charts without client-side gap handling. Suited to charts and trend lines; for per-message exact accounting use the message detail endpoints.\n\nRows use event time. For example, a complaint received on Wednesday for a message sent the prior Monday is counted in Wednesday's row.\n\nThe maximum window is 365 days; requesting a longer range returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "daily"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), `YYYY-MM-DD`. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), `YYYY-MM-DD`. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_domain",
                      "value": "mail.acme.com",
                      "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                    },
                    {
                      "disabled": false,
                      "key": "tag",
                      "value": "campaign:spring_launch",
                      "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_ip",
                      "value": "192.0.2.55",
                      "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                    },
                    {
                      "disabled": false,
                      "key": "recipient_domain",
                      "value": "gmail.com",
                      "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "template",
                      "value": "welcome-email",
                      "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"sends_accepted\": 412,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3a3f61d7-8a53-8fbf-87ec-3fe06f46e583",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get daily sending statistics",
                "description": {
                  "content": "Returns one row of aggregate sending statistics per calendar day for the workspace: UTC days by default, or your local days when `timezone` is set. Days with no activity are included with zero counts, so the series charts without client-side gap handling. Suited to charts and trend lines; for per-message exact accounting use the message detail endpoints.\n\nRows use event time. For example, a complaint received on Wednesday for a message sent the prior Monday is counted in Wednesday's row.\n\nThe maximum window is 365 days; requesting a longer range returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "daily"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), `YYYY-MM-DD`. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), `YYYY-MM-DD`. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_domain",
                      "value": "mail.acme.com",
                      "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                    },
                    {
                      "disabled": false,
                      "key": "tag",
                      "value": "campaign:spring_launch",
                      "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_ip",
                      "value": "192.0.2.55",
                      "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                    },
                    {
                      "disabled": false,
                      "key": "recipient_domain",
                      "value": "gmail.com",
                      "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "template",
                      "value": "welcome-email",
                      "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"sends_accepted\": 412,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ae0d8b66-f140-8a84-8981-e0c485576969",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get daily sending statistics",
                "description": {
                  "content": "Returns one row of aggregate sending statistics per calendar day for the workspace: UTC days by default, or your local days when `timezone` is set. Days with no activity are included with zero counts, so the series charts without client-side gap handling. Suited to charts and trend lines; for per-message exact accounting use the message detail endpoints.\n\nRows use event time. For example, a complaint received on Wednesday for a message sent the prior Monday is counted in Wednesday's row.\n\nThe maximum window is 365 days; requesting a longer range returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "daily"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), `YYYY-MM-DD`. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), `YYYY-MM-DD`. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_domain",
                      "value": "mail.acme.com",
                      "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                    },
                    {
                      "disabled": false,
                      "key": "tag",
                      "value": "campaign:spring_launch",
                      "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_ip",
                      "value": "192.0.2.55",
                      "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                    },
                    {
                      "disabled": false,
                      "key": "recipient_domain",
                      "value": "gmail.com",
                      "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "template",
                      "value": "welcome-email",
                      "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"sends_accepted\": 412,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f248e1d9-3e74-808c-8d7c-29ce674e8b87",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get daily sending statistics",
                "description": {
                  "content": "Returns one row of aggregate sending statistics per calendar day for the workspace: UTC days by default, or your local days when `timezone` is set. Days with no activity are included with zero counts, so the series charts without client-side gap handling. Suited to charts and trend lines; for per-message exact accounting use the message detail endpoints.\n\nRows use event time. For example, a complaint received on Wednesday for a message sent the prior Monday is counted in Wednesday's row.\n\nThe maximum window is 365 days; requesting a longer range returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "daily"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), `YYYY-MM-DD`. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), `YYYY-MM-DD`. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_domain",
                      "value": "mail.acme.com",
                      "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                    },
                    {
                      "disabled": false,
                      "key": "tag",
                      "value": "campaign:spring_launch",
                      "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_ip",
                      "value": "192.0.2.55",
                      "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                    },
                    {
                      "disabled": false,
                      "key": "recipient_domain",
                      "value": "gmail.com",
                      "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "template",
                      "value": "welcome-email",
                      "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"sends_accepted\": 412,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d754b0b9-9885-83da-8834-83fa2c90d0f1",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get daily sending statistics",
                "description": {
                  "content": "Returns one row of aggregate sending statistics per calendar day for the workspace: UTC days by default, or your local days when `timezone` is set. Days with no activity are included with zero counts, so the series charts without client-side gap handling. Suited to charts and trend lines; for per-message exact accounting use the message detail endpoints.\n\nRows use event time. For example, a complaint received on Wednesday for a message sent the prior Monday is counted in Wednesday's row.\n\nThe maximum window is 365 days; requesting a longer range returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "daily"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), `YYYY-MM-DD`. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), `YYYY-MM-DD`. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_domain",
                      "value": "mail.acme.com",
                      "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                    },
                    {
                      "disabled": false,
                      "key": "tag",
                      "value": "campaign:spring_launch",
                      "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_ip",
                      "value": "192.0.2.55",
                      "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                    },
                    {
                      "disabled": false,
                      "key": "recipient_domain",
                      "value": "gmail.com",
                      "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "template",
                      "value": "welcome-email",
                      "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"sends_accepted\": 412,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "af926aa2-0ade-858f-8004-4b8a3cff7ff7",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get daily sending statistics",
                "description": {
                  "content": "Returns one row of aggregate sending statistics per calendar day for the workspace: UTC days by default, or your local days when `timezone` is set. Days with no activity are included with zero counts, so the series charts without client-side gap handling. Suited to charts and trend lines; for per-message exact accounting use the message detail endpoints.\n\nRows use event time. For example, a complaint received on Wednesday for a message sent the prior Monday is counted in Wednesday's row.\n\nThe maximum window is 365 days; requesting a longer range returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "daily"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), `YYYY-MM-DD`. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), `YYYY-MM-DD`. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_domain",
                      "value": "mail.acme.com",
                      "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                    },
                    {
                      "disabled": false,
                      "key": "tag",
                      "value": "campaign:spring_launch",
                      "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_ip",
                      "value": "192.0.2.55",
                      "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                    },
                    {
                      "disabled": false,
                      "key": "recipient_domain",
                      "value": "gmail.com",
                      "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "template",
                      "value": "welcome-email",
                      "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"sends_accepted\": 412,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "33c3996d-c584-8594-854a-f298cdb5ffdb",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get daily sending statistics",
                "description": {
                  "content": "Returns one row of aggregate sending statistics per calendar day for the workspace: UTC days by default, or your local days when `timezone` is set. Days with no activity are included with zero counts, so the series charts without client-side gap handling. Suited to charts and trend lines; for per-message exact accounting use the message detail endpoints.\n\nRows use event time. For example, a complaint received on Wednesday for a message sent the prior Monday is counted in Wednesday's row.\n\nThe maximum window is 365 days; requesting a longer range returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "daily"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), `YYYY-MM-DD`. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), `YYYY-MM-DD`. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_domain",
                      "value": "mail.acme.com",
                      "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                    },
                    {
                      "disabled": false,
                      "key": "tag",
                      "value": "campaign:spring_launch",
                      "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_ip",
                      "value": "192.0.2.55",
                      "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                    },
                    {
                      "disabled": false,
                      "key": "recipient_domain",
                      "value": "gmail.com",
                      "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "template",
                      "value": "welcome-email",
                      "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"sends_accepted\": 412,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fbccb8d1-c310-8be9-8100-b92f24a5757e",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get daily sending statistics",
                "description": {
                  "content": "Returns one row of aggregate sending statistics per calendar day for the workspace: UTC days by default, or your local days when `timezone` is set. Days with no activity are included with zero counts, so the series charts without client-side gap handling. Suited to charts and trend lines; for per-message exact accounting use the message detail endpoints.\n\nRows use event time. For example, a complaint received on Wednesday for a message sent the prior Monday is counted in Wednesday's row.\n\nThe maximum window is 365 days; requesting a longer range returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "daily"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), `YYYY-MM-DD`. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), `YYYY-MM-DD`. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_domain",
                      "value": "mail.acme.com",
                      "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                    },
                    {
                      "disabled": false,
                      "key": "tag",
                      "value": "campaign:spring_launch",
                      "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_ip",
                      "value": "192.0.2.55",
                      "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                    },
                    {
                      "disabled": false,
                      "key": "recipient_domain",
                      "value": "gmail.com",
                      "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "template",
                      "value": "welcome-email",
                      "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"sends_accepted\": 412,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "bb374ecb-212e-8d0a-83d2-e97ff846e23f",
          "name": "Get hourly sending statistics",
          "request": {
            "name": "Get hourly sending statistics",
            "description": {
              "content": "Returns one row of aggregate sending statistics per hour for the workspace: UTC hours by default, or your local hours when `timezone` is set (a timezone with a sub-hour offset gets correctly aligned hours). Useful for inspecting send rate, deliverability, and engagement inside a single day or a recent window; hours with no activity are included with zero counts.\n\nRows use event time. For example, a click recorded at 14:07 for a message sent at 09:00 lands in the 14:00 row.\n\nA single request may span at most 30 days (720 hourly rows); for longer ranges use the daily endpoint, which has a 365-day window. An hourly window longer than 30 days, or a `from` after `to`, returns `422`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "stats",
                "hourly"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-25T00:00:00Z",
                  "description": "Start of the window (ISO 8601 instant). Rounded down to the start of its hour (the local hour when `timezone` is set, otherwise the UTC hour), and that hour is included. When `timezone` is set, a numeric UTC offset here (for example `+05:45`) is rejected; use a `Z` (UTC) instant. Defaults to 7 days before `to` when omitted."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25T23:59:59Z",
                  "description": "End of the window (ISO 8601 instant). Rounded down to the start of its hour (the local hour when `timezone` is set, otherwise the UTC hour), and that hour is included (both bounds inclusive). When `timezone` is set, a numeric UTC offset here is rejected; use a `Z` (UTC) instant. Defaults to the current hour when omitted. Window may not exceed 30 days (720 hours)."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": false,
                  "key": "category",
                  "value": "transactional",
                  "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                },
                {
                  "disabled": false,
                  "key": "sending_domain",
                  "value": "mail.acme.com",
                  "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                },
                {
                  "disabled": false,
                  "key": "tag",
                  "value": "campaign:spring_launch",
                  "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                },
                {
                  "disabled": false,
                  "key": "sending_ip",
                  "value": "192.0.2.55",
                  "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                },
                {
                  "disabled": false,
                  "key": "recipient_domain",
                  "value": "gmail.com",
                  "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                },
                {
                  "disabled": false,
                  "key": "template",
                  "value": "welcome-email",
                  "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "9a0d9813-2fa8-8f0a-8f26-35f758890712",
              "name": "Hourly aggregate stats for the requested period.",
              "originalRequest": {
                "name": "Get hourly sending statistics",
                "description": {
                  "content": "Returns one row of aggregate sending statistics per hour for the workspace: UTC hours by default, or your local hours when `timezone` is set (a timezone with a sub-hour offset gets correctly aligned hours). Useful for inspecting send rate, deliverability, and engagement inside a single day or a recent window; hours with no activity are included with zero counts.\n\nRows use event time. For example, a click recorded at 14:07 for a message sent at 09:00 lands in the 14:00 row.\n\nA single request may span at most 30 days (720 hourly rows); for longer ranges use the daily endpoint, which has a 365-day window. An hourly window longer than 30 days, or a `from` after `to`, returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "hourly"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-25T00:00:00Z",
                      "description": "Start of the window (ISO 8601 instant). Rounded down to the start of its hour (the local hour when `timezone` is set, otherwise the UTC hour), and that hour is included. When `timezone` is set, a numeric UTC offset here (for example `+05:45`) is rejected; use a `Z` (UTC) instant. Defaults to 7 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25T23:59:59Z",
                      "description": "End of the window (ISO 8601 instant). Rounded down to the start of its hour (the local hour when `timezone` is set, otherwise the UTC hour), and that hour is included (both bounds inclusive). When `timezone` is set, a numeric UTC offset here is rejected; use a `Z` (UTC) instant. Defaults to the current hour when omitted. Window may not exceed 30 days (720 hours)."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_domain",
                      "value": "mail.acme.com",
                      "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                    },
                    {
                      "disabled": false,
                      "key": "tag",
                      "value": "campaign:spring_launch",
                      "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_ip",
                      "value": "192.0.2.55",
                      "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                    },
                    {
                      "disabled": false,
                      "key": "recipient_domain",
                      "value": "gmail.com",
                      "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "template",
                      "value": "welcome-email",
                      "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"sends_accepted\": 412,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "09f90ac5-6af9-8be9-8e02-61a1226e6b60",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get hourly sending statistics",
                "description": {
                  "content": "Returns one row of aggregate sending statistics per hour for the workspace: UTC hours by default, or your local hours when `timezone` is set (a timezone with a sub-hour offset gets correctly aligned hours). Useful for inspecting send rate, deliverability, and engagement inside a single day or a recent window; hours with no activity are included with zero counts.\n\nRows use event time. For example, a click recorded at 14:07 for a message sent at 09:00 lands in the 14:00 row.\n\nA single request may span at most 30 days (720 hourly rows); for longer ranges use the daily endpoint, which has a 365-day window. An hourly window longer than 30 days, or a `from` after `to`, returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "hourly"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-25T00:00:00Z",
                      "description": "Start of the window (ISO 8601 instant). Rounded down to the start of its hour (the local hour when `timezone` is set, otherwise the UTC hour), and that hour is included. When `timezone` is set, a numeric UTC offset here (for example `+05:45`) is rejected; use a `Z` (UTC) instant. Defaults to 7 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25T23:59:59Z",
                      "description": "End of the window (ISO 8601 instant). Rounded down to the start of its hour (the local hour when `timezone` is set, otherwise the UTC hour), and that hour is included (both bounds inclusive). When `timezone` is set, a numeric UTC offset here is rejected; use a `Z` (UTC) instant. Defaults to the current hour when omitted. Window may not exceed 30 days (720 hours)."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_domain",
                      "value": "mail.acme.com",
                      "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                    },
                    {
                      "disabled": false,
                      "key": "tag",
                      "value": "campaign:spring_launch",
                      "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_ip",
                      "value": "192.0.2.55",
                      "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                    },
                    {
                      "disabled": false,
                      "key": "recipient_domain",
                      "value": "gmail.com",
                      "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "template",
                      "value": "welcome-email",
                      "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"sends_accepted\": 412,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d75ed175-f061-8ee4-8d1c-3abfa7b8d864",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get hourly sending statistics",
                "description": {
                  "content": "Returns one row of aggregate sending statistics per hour for the workspace: UTC hours by default, or your local hours when `timezone` is set (a timezone with a sub-hour offset gets correctly aligned hours). Useful for inspecting send rate, deliverability, and engagement inside a single day or a recent window; hours with no activity are included with zero counts.\n\nRows use event time. For example, a click recorded at 14:07 for a message sent at 09:00 lands in the 14:00 row.\n\nA single request may span at most 30 days (720 hourly rows); for longer ranges use the daily endpoint, which has a 365-day window. An hourly window longer than 30 days, or a `from` after `to`, returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "hourly"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-25T00:00:00Z",
                      "description": "Start of the window (ISO 8601 instant). Rounded down to the start of its hour (the local hour when `timezone` is set, otherwise the UTC hour), and that hour is included. When `timezone` is set, a numeric UTC offset here (for example `+05:45`) is rejected; use a `Z` (UTC) instant. Defaults to 7 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25T23:59:59Z",
                      "description": "End of the window (ISO 8601 instant). Rounded down to the start of its hour (the local hour when `timezone` is set, otherwise the UTC hour), and that hour is included (both bounds inclusive). When `timezone` is set, a numeric UTC offset here is rejected; use a `Z` (UTC) instant. Defaults to the current hour when omitted. Window may not exceed 30 days (720 hours)."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_domain",
                      "value": "mail.acme.com",
                      "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                    },
                    {
                      "disabled": false,
                      "key": "tag",
                      "value": "campaign:spring_launch",
                      "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_ip",
                      "value": "192.0.2.55",
                      "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                    },
                    {
                      "disabled": false,
                      "key": "recipient_domain",
                      "value": "gmail.com",
                      "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "template",
                      "value": "welcome-email",
                      "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"sends_accepted\": 412,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ef4abea6-f5bc-89f6-80f9-c57cf11f94c7",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get hourly sending statistics",
                "description": {
                  "content": "Returns one row of aggregate sending statistics per hour for the workspace: UTC hours by default, or your local hours when `timezone` is set (a timezone with a sub-hour offset gets correctly aligned hours). Useful for inspecting send rate, deliverability, and engagement inside a single day or a recent window; hours with no activity are included with zero counts.\n\nRows use event time. For example, a click recorded at 14:07 for a message sent at 09:00 lands in the 14:00 row.\n\nA single request may span at most 30 days (720 hourly rows); for longer ranges use the daily endpoint, which has a 365-day window. An hourly window longer than 30 days, or a `from` after `to`, returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "hourly"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-25T00:00:00Z",
                      "description": "Start of the window (ISO 8601 instant). Rounded down to the start of its hour (the local hour when `timezone` is set, otherwise the UTC hour), and that hour is included. When `timezone` is set, a numeric UTC offset here (for example `+05:45`) is rejected; use a `Z` (UTC) instant. Defaults to 7 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25T23:59:59Z",
                      "description": "End of the window (ISO 8601 instant). Rounded down to the start of its hour (the local hour when `timezone` is set, otherwise the UTC hour), and that hour is included (both bounds inclusive). When `timezone` is set, a numeric UTC offset here is rejected; use a `Z` (UTC) instant. Defaults to the current hour when omitted. Window may not exceed 30 days (720 hours)."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_domain",
                      "value": "mail.acme.com",
                      "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                    },
                    {
                      "disabled": false,
                      "key": "tag",
                      "value": "campaign:spring_launch",
                      "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_ip",
                      "value": "192.0.2.55",
                      "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                    },
                    {
                      "disabled": false,
                      "key": "recipient_domain",
                      "value": "gmail.com",
                      "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "template",
                      "value": "welcome-email",
                      "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"sends_accepted\": 412,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9bb8fb95-8bdc-8b66-8f85-417e5a14cd00",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get hourly sending statistics",
                "description": {
                  "content": "Returns one row of aggregate sending statistics per hour for the workspace: UTC hours by default, or your local hours when `timezone` is set (a timezone with a sub-hour offset gets correctly aligned hours). Useful for inspecting send rate, deliverability, and engagement inside a single day or a recent window; hours with no activity are included with zero counts.\n\nRows use event time. For example, a click recorded at 14:07 for a message sent at 09:00 lands in the 14:00 row.\n\nA single request may span at most 30 days (720 hourly rows); for longer ranges use the daily endpoint, which has a 365-day window. An hourly window longer than 30 days, or a `from` after `to`, returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "hourly"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-25T00:00:00Z",
                      "description": "Start of the window (ISO 8601 instant). Rounded down to the start of its hour (the local hour when `timezone` is set, otherwise the UTC hour), and that hour is included. When `timezone` is set, a numeric UTC offset here (for example `+05:45`) is rejected; use a `Z` (UTC) instant. Defaults to 7 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25T23:59:59Z",
                      "description": "End of the window (ISO 8601 instant). Rounded down to the start of its hour (the local hour when `timezone` is set, otherwise the UTC hour), and that hour is included (both bounds inclusive). When `timezone` is set, a numeric UTC offset here is rejected; use a `Z` (UTC) instant. Defaults to the current hour when omitted. Window may not exceed 30 days (720 hours)."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_domain",
                      "value": "mail.acme.com",
                      "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                    },
                    {
                      "disabled": false,
                      "key": "tag",
                      "value": "campaign:spring_launch",
                      "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_ip",
                      "value": "192.0.2.55",
                      "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                    },
                    {
                      "disabled": false,
                      "key": "recipient_domain",
                      "value": "gmail.com",
                      "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "template",
                      "value": "welcome-email",
                      "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"sends_accepted\": 412,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0bc8aa87-357b-80db-82e5-4e99966b64a4",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get hourly sending statistics",
                "description": {
                  "content": "Returns one row of aggregate sending statistics per hour for the workspace: UTC hours by default, or your local hours when `timezone` is set (a timezone with a sub-hour offset gets correctly aligned hours). Useful for inspecting send rate, deliverability, and engagement inside a single day or a recent window; hours with no activity are included with zero counts.\n\nRows use event time. For example, a click recorded at 14:07 for a message sent at 09:00 lands in the 14:00 row.\n\nA single request may span at most 30 days (720 hourly rows); for longer ranges use the daily endpoint, which has a 365-day window. An hourly window longer than 30 days, or a `from` after `to`, returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "hourly"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-25T00:00:00Z",
                      "description": "Start of the window (ISO 8601 instant). Rounded down to the start of its hour (the local hour when `timezone` is set, otherwise the UTC hour), and that hour is included. When `timezone` is set, a numeric UTC offset here (for example `+05:45`) is rejected; use a `Z` (UTC) instant. Defaults to 7 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25T23:59:59Z",
                      "description": "End of the window (ISO 8601 instant). Rounded down to the start of its hour (the local hour when `timezone` is set, otherwise the UTC hour), and that hour is included (both bounds inclusive). When `timezone` is set, a numeric UTC offset here is rejected; use a `Z` (UTC) instant. Defaults to the current hour when omitted. Window may not exceed 30 days (720 hours)."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_domain",
                      "value": "mail.acme.com",
                      "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                    },
                    {
                      "disabled": false,
                      "key": "tag",
                      "value": "campaign:spring_launch",
                      "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_ip",
                      "value": "192.0.2.55",
                      "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                    },
                    {
                      "disabled": false,
                      "key": "recipient_domain",
                      "value": "gmail.com",
                      "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "template",
                      "value": "welcome-email",
                      "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"sends_accepted\": 412,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0df9547d-d634-8cc0-8416-6f16e40c3ab5",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get hourly sending statistics",
                "description": {
                  "content": "Returns one row of aggregate sending statistics per hour for the workspace: UTC hours by default, or your local hours when `timezone` is set (a timezone with a sub-hour offset gets correctly aligned hours). Useful for inspecting send rate, deliverability, and engagement inside a single day or a recent window; hours with no activity are included with zero counts.\n\nRows use event time. For example, a click recorded at 14:07 for a message sent at 09:00 lands in the 14:00 row.\n\nA single request may span at most 30 days (720 hourly rows); for longer ranges use the daily endpoint, which has a 365-day window. An hourly window longer than 30 days, or a `from` after `to`, returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "hourly"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-25T00:00:00Z",
                      "description": "Start of the window (ISO 8601 instant). Rounded down to the start of its hour (the local hour when `timezone` is set, otherwise the UTC hour), and that hour is included. When `timezone` is set, a numeric UTC offset here (for example `+05:45`) is rejected; use a `Z` (UTC) instant. Defaults to 7 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25T23:59:59Z",
                      "description": "End of the window (ISO 8601 instant). Rounded down to the start of its hour (the local hour when `timezone` is set, otherwise the UTC hour), and that hour is included (both bounds inclusive). When `timezone` is set, a numeric UTC offset here is rejected; use a `Z` (UTC) instant. Defaults to the current hour when omitted. Window may not exceed 30 days (720 hours)."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_domain",
                      "value": "mail.acme.com",
                      "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                    },
                    {
                      "disabled": false,
                      "key": "tag",
                      "value": "campaign:spring_launch",
                      "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_ip",
                      "value": "192.0.2.55",
                      "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                    },
                    {
                      "disabled": false,
                      "key": "recipient_domain",
                      "value": "gmail.com",
                      "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "template",
                      "value": "welcome-email",
                      "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"sends_accepted\": 412,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e61c7087-8294-8969-86e3-ac6aba242875",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get hourly sending statistics",
                "description": {
                  "content": "Returns one row of aggregate sending statistics per hour for the workspace: UTC hours by default, or your local hours when `timezone` is set (a timezone with a sub-hour offset gets correctly aligned hours). Useful for inspecting send rate, deliverability, and engagement inside a single day or a recent window; hours with no activity are included with zero counts.\n\nRows use event time. For example, a click recorded at 14:07 for a message sent at 09:00 lands in the 14:00 row.\n\nA single request may span at most 30 days (720 hourly rows); for longer ranges use the daily endpoint, which has a 365-day window. An hourly window longer than 30 days, or a `from` after `to`, returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "hourly"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-25T00:00:00Z",
                      "description": "Start of the window (ISO 8601 instant). Rounded down to the start of its hour (the local hour when `timezone` is set, otherwise the UTC hour), and that hour is included. When `timezone` is set, a numeric UTC offset here (for example `+05:45`) is rejected; use a `Z` (UTC) instant. Defaults to 7 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25T23:59:59Z",
                      "description": "End of the window (ISO 8601 instant). Rounded down to the start of its hour (the local hour when `timezone` is set, otherwise the UTC hour), and that hour is included (both bounds inclusive). When `timezone` is set, a numeric UTC offset here is rejected; use a `Z` (UTC) instant. Defaults to the current hour when omitted. Window may not exceed 30 days (720 hours)."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_domain",
                      "value": "mail.acme.com",
                      "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                    },
                    {
                      "disabled": false,
                      "key": "tag",
                      "value": "campaign:spring_launch",
                      "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_ip",
                      "value": "192.0.2.55",
                      "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                    },
                    {
                      "disabled": false,
                      "key": "recipient_domain",
                      "value": "gmail.com",
                      "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "template",
                      "value": "welcome-email",
                      "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"sends_accepted\": 412,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "d25a5423-3da3-844f-836e-4f5e7c13b130",
          "name": "Get statistics by tag",
          "request": {
            "name": "Get statistics by tag",
            "description": {
              "content": "Returns delivery and engagement counts for the requested period, grouped by tag. Use it to compare performance across the tags you set at send time. Rows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "stats",
                "tags"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": true,
                  "key": "category",
                  "value": "",
                  "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                },
                {
                  "disabled": true,
                  "key": "sort",
                  "value": "",
                  "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum number of tag rows to return, ranked by the `sort` field descending."
                },
                {
                  "disabled": false,
                  "key": "include_trend",
                  "value": "false",
                  "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that tag's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                },
                {
                  "disabled": true,
                  "key": "trend_grain",
                  "value": "",
                  "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "3eba5124-24b6-8cbf-8f6d-268ae4d7dbc3",
              "name": "Per-tag breakdown for the requested period.",
              "originalRequest": {
                "name": "Get statistics by tag",
                "description": {
                  "content": "Returns delivery and engagement counts for the requested period, grouped by tag. Use it to compare performance across the tags you set at send time. Rows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "tags"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of tag rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that tag's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"tag\": \"campaign:welcome-series\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 173\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3eb565a3-cd80-8422-8dc2-57905a83f337",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get statistics by tag",
                "description": {
                  "content": "Returns delivery and engagement counts for the requested period, grouped by tag. Use it to compare performance across the tags you set at send time. Rows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "tags"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of tag rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that tag's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"tag\": \"campaign:welcome-series\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 173\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "bb77e29a-5040-8bba-88d7-007411745879",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get statistics by tag",
                "description": {
                  "content": "Returns delivery and engagement counts for the requested period, grouped by tag. Use it to compare performance across the tags you set at send time. Rows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "tags"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of tag rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that tag's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"tag\": \"campaign:welcome-series\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 173\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4db5cd0d-4d37-87ab-8f68-02c858317034",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get statistics by tag",
                "description": {
                  "content": "Returns delivery and engagement counts for the requested period, grouped by tag. Use it to compare performance across the tags you set at send time. Rows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "tags"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of tag rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that tag's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"tag\": \"campaign:welcome-series\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 173\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b072adec-3f4f-8413-816b-a7acc748b444",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get statistics by tag",
                "description": {
                  "content": "Returns delivery and engagement counts for the requested period, grouped by tag. Use it to compare performance across the tags you set at send time. Rows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "tags"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of tag rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that tag's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"tag\": \"campaign:welcome-series\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 173\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ab67178d-1d14-84ce-81dd-faaa6c1e769a",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get statistics by tag",
                "description": {
                  "content": "Returns delivery and engagement counts for the requested period, grouped by tag. Use it to compare performance across the tags you set at send time. Rows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "tags"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of tag rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that tag's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"tag\": \"campaign:welcome-series\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 173\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9af9c4ae-42f2-8263-8424-14216ed41c07",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get statistics by tag",
                "description": {
                  "content": "Returns delivery and engagement counts for the requested period, grouped by tag. Use it to compare performance across the tags you set at send time. Rows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "tags"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of tag rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that tag's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"tag\": \"campaign:welcome-series\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 173\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a91ece33-2094-8a59-8b2d-6e9a3202d5a6",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get statistics by tag",
                "description": {
                  "content": "Returns delivery and engagement counts for the requested period, grouped by tag. Use it to compare performance across the tags you set at send time. Rows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "tags"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of tag rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that tag's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"tag\": \"campaign:welcome-series\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 173\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "8d259453-a976-8f51-8e95-9f13f0f93bd5",
          "name": "Get aggregate email statistics",
          "request": {
            "name": "Get aggregate email statistics",
            "description": {
              "content": "Returns a single-row aggregate across the requested period covering delivery, bounce, complaint, open, and click counts plus the derived rates, along with processing, delivery, and total latency percentiles (p50/p95/p99). Suitable for KPI tiles, campaign reports, and email digests; the daily and hourly endpoints have the same metrics per time bucket.\n\nThe aggregate is computed against event time (not send time), so engagement received during the period for messages sent earlier is included. Rate fields are `null` when their denominator is zero.\n\nThe window grain follows the form of `from` and `to`: calendar days (`YYYY-MM-DD`, up to 365 days) or RFC 3339 instants (hour grain, up to 720 hours, 30 days). A rolling window such as the last 24 hours is a single request. Mixing the two forms returns `422`. Set `timezone` to compute day and hour boundaries in a local zone instead of UTC, and `compare=previous_period` to include the preceding equal-length window in the same response.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "stats",
                "summary"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Inclusive start of the window: a calendar day (`YYYY-MM-DD`) or an RFC 3339 instant (rounded down to the hour). Interpreted in `timezone` (a calendar day names a local day; an instant is rounded down to the local hour), or in UTC when `timezone` is omitted. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `to`. Defaults to 30 days before `to` for day windows, or 168 hours (7 days) before `to` for hour windows, when omitted.\n"
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "Inclusive end of the window: a calendar day (`YYYY-MM-DD`) or an RFC 3339 instant (rounded down to the hour). Interpreted in `timezone` (a calendar day names a local day; an instant is rounded down to the local hour), or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `from`. Defaults to today for day windows, or the current hour for hour windows, in that timezone, when omitted. Day windows may not exceed 365 days; hour windows may not exceed 720 hours (30 days).\n"
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": false,
                  "key": "category",
                  "value": "transactional",
                  "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                },
                {
                  "disabled": false,
                  "key": "sending_domain",
                  "value": "mail.acme.com",
                  "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                },
                {
                  "disabled": false,
                  "key": "tag",
                  "value": "campaign:spring_launch",
                  "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                },
                {
                  "disabled": false,
                  "key": "sending_ip",
                  "value": "192.0.2.55",
                  "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                },
                {
                  "disabled": false,
                  "key": "recipient_domain",
                  "value": "gmail.com",
                  "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                },
                {
                  "disabled": false,
                  "key": "template",
                  "value": "welcome-email",
                  "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                },
                {
                  "disabled": true,
                  "key": "compare",
                  "value": "",
                  "description": "Set to `previous_period` to also include the same statistics for the immediately preceding window of equal length, plus the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "d111a815-97e4-89d9-8e1f-2bf5c0b70c8f",
              "name": "Aggregate summary for the requested period.",
              "originalRequest": {
                "name": "Get aggregate email statistics",
                "description": {
                  "content": "Returns a single-row aggregate across the requested period covering delivery, bounce, complaint, open, and click counts plus the derived rates, along with processing, delivery, and total latency percentiles (p50/p95/p99). Suitable for KPI tiles, campaign reports, and email digests; the daily and hourly endpoints have the same metrics per time bucket.\n\nThe aggregate is computed against event time (not send time), so engagement received during the period for messages sent earlier is included. Rate fields are `null` when their denominator is zero.\n\nThe window grain follows the form of `from` and `to`: calendar days (`YYYY-MM-DD`, up to 365 days) or RFC 3339 instants (hour grain, up to 720 hours, 30 days). A rolling window such as the last 24 hours is a single request. Mixing the two forms returns `422`. Set `timezone` to compute day and hour boundaries in a local zone instead of UTC, and `compare=previous_period` to include the preceding equal-length window in the same response.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Inclusive start of the window: a calendar day (`YYYY-MM-DD`) or an RFC 3339 instant (rounded down to the hour). Interpreted in `timezone` (a calendar day names a local day; an instant is rounded down to the local hour), or in UTC when `timezone` is omitted. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `to`. Defaults to 30 days before `to` for day windows, or 168 hours (7 days) before `to` for hour windows, when omitted.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "Inclusive end of the window: a calendar day (`YYYY-MM-DD`) or an RFC 3339 instant (rounded down to the hour). Interpreted in `timezone` (a calendar day names a local day; an instant is rounded down to the local hour), or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `from`. Defaults to today for day windows, or the current hour for hour windows, in that timezone, when omitted. Day windows may not exceed 365 days; hour windows may not exceed 720 hours (30 days).\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_domain",
                      "value": "mail.acme.com",
                      "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                    },
                    {
                      "disabled": false,
                      "key": "tag",
                      "value": "campaign:spring_launch",
                      "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_ip",
                      "value": "192.0.2.55",
                      "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                    },
                    {
                      "disabled": false,
                      "key": "recipient_domain",
                      "value": "gmail.com",
                      "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "template",
                      "value": "welcome-email",
                      "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                    },
                    {
                      "disabled": true,
                      "key": "compare",
                      "value": "",
                      "description": "Set to `previous_period` to also include the same statistics for the immediately preceding window of equal length, plus the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"sends_accepted\": 12410,\n  \"delivery\": {\n    \"accepted\": 14820,\n    \"processed\": 14810,\n    \"delivered\": 14720,\n    \"bounced\": 90,\n    \"bounces\": {\n      \"hard\": 12410,\n      \"soft\": 14290,\n      \"admin\": 410,\n      \"block\": 920,\n      \"undetermined\": 80,\n      \"hard_rate\": 0.454,\n      \"soft_rate\": 0.523,\n      \"admin_rate\": 0.015,\n      \"block_rate\": 0.0337,\n      \"undetermined_rate\": 0.0029\n    },\n    \"complained\": 3,\n    \"deferred\": 14,\n    \"rejected\": 10,\n    \"oob_bounces\": 2,\n    \"effective_delivered\": 14718,\n    \"all_bounces\": 92,\n    \"oob_rate\": 0.00014,\n    \"delivery_rate\": 0.9939,\n    \"bounce_rate\": 0.0061,\n    \"complaint_rate\": 0.0002\n  },\n  \"engagement\": {\n    \"opens\": 5420,\n    \"opens_non_prefetched\": 3210,\n    \"unique_opens\": 3640,\n    \"unique_opens_non_prefetched\": 2480,\n    \"clicks\": 924,\n    \"unique_clicks\": 621,\n    \"unsubscribes\": 12,\n    \"open_rate\": 0.1683,\n    \"click_rate\": 0.0422,\n    \"unsubscribe_rate\": 0.0009\n  },\n  \"latency\": {\n    \"processing\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"delivery\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"total\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    }\n  },\n  \"comparison\": {\n    \"period\": {\n      \"from\": \"2026-05-01\",\n      \"to\": \"2026-05-25\",\n      \"data_as_of\": \"2026-05-25T14:03:10Z\"\n    },\n    \"sends_accepted\": 8230,\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"processed\": 14810,\n      \"delivered\": 14720,\n      \"bounced\": 90,\n      \"bounces\": {\n        \"hard\": 12410,\n        \"soft\": 14290,\n        \"admin\": 410,\n        \"block\": 920,\n        \"undetermined\": 80,\n        \"hard_rate\": 0.454,\n        \"soft_rate\": 0.523,\n        \"admin_rate\": 0.015,\n        \"block_rate\": 0.0337,\n        \"undetermined_rate\": 0.0029\n      },\n      \"complained\": 3,\n      \"deferred\": 14,\n      \"rejected\": 10,\n      \"oob_bounces\": 2,\n      \"effective_delivered\": 14718,\n      \"all_bounces\": 92,\n      \"oob_rate\": 0.00014,\n      \"delivery_rate\": 0.9939,\n      \"bounce_rate\": 0.0061,\n      \"complaint_rate\": 0.0002\n    },\n    \"engagement\": {\n      \"opens\": 5420,\n      \"opens_non_prefetched\": 3210,\n      \"unique_opens\": 3640,\n      \"unique_opens_non_prefetched\": 2480,\n      \"clicks\": 924,\n      \"unique_clicks\": 621,\n      \"unsubscribes\": 12,\n      \"open_rate\": 0.1683,\n      \"click_rate\": 0.0422,\n      \"unsubscribe_rate\": 0.0009\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"delta\": {\n      \"sends_accepted_pct_change\": 0.508,\n      \"delivered_pct_change\": 0.122,\n      \"bounced_pct_change\": -0.031,\n      \"complained_pct_change\": 0.018,\n      \"opened_pct_change\": -0.046,\n      \"delivery_rate_pp\": 0.004,\n      \"open_rate_pp\": 0.005,\n      \"click_rate_pp\": 0.002,\n      \"bounce_rate_pp\": -0.0008,\n      \"complaint_rate_pp\": 0.0001,\n      \"unsubscribe_rate_pp\": -0.0001\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f5d9debd-f1bb-848f-8028-efe0f7ed8c0e",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get aggregate email statistics",
                "description": {
                  "content": "Returns a single-row aggregate across the requested period covering delivery, bounce, complaint, open, and click counts plus the derived rates, along with processing, delivery, and total latency percentiles (p50/p95/p99). Suitable for KPI tiles, campaign reports, and email digests; the daily and hourly endpoints have the same metrics per time bucket.\n\nThe aggregate is computed against event time (not send time), so engagement received during the period for messages sent earlier is included. Rate fields are `null` when their denominator is zero.\n\nThe window grain follows the form of `from` and `to`: calendar days (`YYYY-MM-DD`, up to 365 days) or RFC 3339 instants (hour grain, up to 720 hours, 30 days). A rolling window such as the last 24 hours is a single request. Mixing the two forms returns `422`. Set `timezone` to compute day and hour boundaries in a local zone instead of UTC, and `compare=previous_period` to include the preceding equal-length window in the same response.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Inclusive start of the window: a calendar day (`YYYY-MM-DD`) or an RFC 3339 instant (rounded down to the hour). Interpreted in `timezone` (a calendar day names a local day; an instant is rounded down to the local hour), or in UTC when `timezone` is omitted. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `to`. Defaults to 30 days before `to` for day windows, or 168 hours (7 days) before `to` for hour windows, when omitted.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "Inclusive end of the window: a calendar day (`YYYY-MM-DD`) or an RFC 3339 instant (rounded down to the hour). Interpreted in `timezone` (a calendar day names a local day; an instant is rounded down to the local hour), or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `from`. Defaults to today for day windows, or the current hour for hour windows, in that timezone, when omitted. Day windows may not exceed 365 days; hour windows may not exceed 720 hours (30 days).\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_domain",
                      "value": "mail.acme.com",
                      "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                    },
                    {
                      "disabled": false,
                      "key": "tag",
                      "value": "campaign:spring_launch",
                      "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_ip",
                      "value": "192.0.2.55",
                      "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                    },
                    {
                      "disabled": false,
                      "key": "recipient_domain",
                      "value": "gmail.com",
                      "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "template",
                      "value": "welcome-email",
                      "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                    },
                    {
                      "disabled": true,
                      "key": "compare",
                      "value": "",
                      "description": "Set to `previous_period` to also include the same statistics for the immediately preceding window of equal length, plus the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"sends_accepted\": 12410,\n  \"delivery\": {\n    \"accepted\": 14820,\n    \"processed\": 14810,\n    \"delivered\": 14720,\n    \"bounced\": 90,\n    \"bounces\": {\n      \"hard\": 12410,\n      \"soft\": 14290,\n      \"admin\": 410,\n      \"block\": 920,\n      \"undetermined\": 80,\n      \"hard_rate\": 0.454,\n      \"soft_rate\": 0.523,\n      \"admin_rate\": 0.015,\n      \"block_rate\": 0.0337,\n      \"undetermined_rate\": 0.0029\n    },\n    \"complained\": 3,\n    \"deferred\": 14,\n    \"rejected\": 10,\n    \"oob_bounces\": 2,\n    \"effective_delivered\": 14718,\n    \"all_bounces\": 92,\n    \"oob_rate\": 0.00014,\n    \"delivery_rate\": 0.9939,\n    \"bounce_rate\": 0.0061,\n    \"complaint_rate\": 0.0002\n  },\n  \"engagement\": {\n    \"opens\": 5420,\n    \"opens_non_prefetched\": 3210,\n    \"unique_opens\": 3640,\n    \"unique_opens_non_prefetched\": 2480,\n    \"clicks\": 924,\n    \"unique_clicks\": 621,\n    \"unsubscribes\": 12,\n    \"open_rate\": 0.1683,\n    \"click_rate\": 0.0422,\n    \"unsubscribe_rate\": 0.0009\n  },\n  \"latency\": {\n    \"processing\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"delivery\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"total\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    }\n  },\n  \"comparison\": {\n    \"period\": {\n      \"from\": \"2026-05-01\",\n      \"to\": \"2026-05-25\",\n      \"data_as_of\": \"2026-05-25T14:03:10Z\"\n    },\n    \"sends_accepted\": 8230,\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"processed\": 14810,\n      \"delivered\": 14720,\n      \"bounced\": 90,\n      \"bounces\": {\n        \"hard\": 12410,\n        \"soft\": 14290,\n        \"admin\": 410,\n        \"block\": 920,\n        \"undetermined\": 80,\n        \"hard_rate\": 0.454,\n        \"soft_rate\": 0.523,\n        \"admin_rate\": 0.015,\n        \"block_rate\": 0.0337,\n        \"undetermined_rate\": 0.0029\n      },\n      \"complained\": 3,\n      \"deferred\": 14,\n      \"rejected\": 10,\n      \"oob_bounces\": 2,\n      \"effective_delivered\": 14718,\n      \"all_bounces\": 92,\n      \"oob_rate\": 0.00014,\n      \"delivery_rate\": 0.9939,\n      \"bounce_rate\": 0.0061,\n      \"complaint_rate\": 0.0002\n    },\n    \"engagement\": {\n      \"opens\": 5420,\n      \"opens_non_prefetched\": 3210,\n      \"unique_opens\": 3640,\n      \"unique_opens_non_prefetched\": 2480,\n      \"clicks\": 924,\n      \"unique_clicks\": 621,\n      \"unsubscribes\": 12,\n      \"open_rate\": 0.1683,\n      \"click_rate\": 0.0422,\n      \"unsubscribe_rate\": 0.0009\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"delta\": {\n      \"sends_accepted_pct_change\": 0.508,\n      \"delivered_pct_change\": 0.122,\n      \"bounced_pct_change\": -0.031,\n      \"complained_pct_change\": 0.018,\n      \"opened_pct_change\": -0.046,\n      \"delivery_rate_pp\": 0.004,\n      \"open_rate_pp\": 0.005,\n      \"click_rate_pp\": 0.002,\n      \"bounce_rate_pp\": -0.0008,\n      \"complaint_rate_pp\": 0.0001,\n      \"unsubscribe_rate_pp\": -0.0001\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1ab0cdda-0e3f-855d-8c60-eaec660a01b8",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get aggregate email statistics",
                "description": {
                  "content": "Returns a single-row aggregate across the requested period covering delivery, bounce, complaint, open, and click counts plus the derived rates, along with processing, delivery, and total latency percentiles (p50/p95/p99). Suitable for KPI tiles, campaign reports, and email digests; the daily and hourly endpoints have the same metrics per time bucket.\n\nThe aggregate is computed against event time (not send time), so engagement received during the period for messages sent earlier is included. Rate fields are `null` when their denominator is zero.\n\nThe window grain follows the form of `from` and `to`: calendar days (`YYYY-MM-DD`, up to 365 days) or RFC 3339 instants (hour grain, up to 720 hours, 30 days). A rolling window such as the last 24 hours is a single request. Mixing the two forms returns `422`. Set `timezone` to compute day and hour boundaries in a local zone instead of UTC, and `compare=previous_period` to include the preceding equal-length window in the same response.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Inclusive start of the window: a calendar day (`YYYY-MM-DD`) or an RFC 3339 instant (rounded down to the hour). Interpreted in `timezone` (a calendar day names a local day; an instant is rounded down to the local hour), or in UTC when `timezone` is omitted. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `to`. Defaults to 30 days before `to` for day windows, or 168 hours (7 days) before `to` for hour windows, when omitted.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "Inclusive end of the window: a calendar day (`YYYY-MM-DD`) or an RFC 3339 instant (rounded down to the hour). Interpreted in `timezone` (a calendar day names a local day; an instant is rounded down to the local hour), or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `from`. Defaults to today for day windows, or the current hour for hour windows, in that timezone, when omitted. Day windows may not exceed 365 days; hour windows may not exceed 720 hours (30 days).\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_domain",
                      "value": "mail.acme.com",
                      "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                    },
                    {
                      "disabled": false,
                      "key": "tag",
                      "value": "campaign:spring_launch",
                      "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_ip",
                      "value": "192.0.2.55",
                      "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                    },
                    {
                      "disabled": false,
                      "key": "recipient_domain",
                      "value": "gmail.com",
                      "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "template",
                      "value": "welcome-email",
                      "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                    },
                    {
                      "disabled": true,
                      "key": "compare",
                      "value": "",
                      "description": "Set to `previous_period` to also include the same statistics for the immediately preceding window of equal length, plus the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"sends_accepted\": 12410,\n  \"delivery\": {\n    \"accepted\": 14820,\n    \"processed\": 14810,\n    \"delivered\": 14720,\n    \"bounced\": 90,\n    \"bounces\": {\n      \"hard\": 12410,\n      \"soft\": 14290,\n      \"admin\": 410,\n      \"block\": 920,\n      \"undetermined\": 80,\n      \"hard_rate\": 0.454,\n      \"soft_rate\": 0.523,\n      \"admin_rate\": 0.015,\n      \"block_rate\": 0.0337,\n      \"undetermined_rate\": 0.0029\n    },\n    \"complained\": 3,\n    \"deferred\": 14,\n    \"rejected\": 10,\n    \"oob_bounces\": 2,\n    \"effective_delivered\": 14718,\n    \"all_bounces\": 92,\n    \"oob_rate\": 0.00014,\n    \"delivery_rate\": 0.9939,\n    \"bounce_rate\": 0.0061,\n    \"complaint_rate\": 0.0002\n  },\n  \"engagement\": {\n    \"opens\": 5420,\n    \"opens_non_prefetched\": 3210,\n    \"unique_opens\": 3640,\n    \"unique_opens_non_prefetched\": 2480,\n    \"clicks\": 924,\n    \"unique_clicks\": 621,\n    \"unsubscribes\": 12,\n    \"open_rate\": 0.1683,\n    \"click_rate\": 0.0422,\n    \"unsubscribe_rate\": 0.0009\n  },\n  \"latency\": {\n    \"processing\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"delivery\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"total\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    }\n  },\n  \"comparison\": {\n    \"period\": {\n      \"from\": \"2026-05-01\",\n      \"to\": \"2026-05-25\",\n      \"data_as_of\": \"2026-05-25T14:03:10Z\"\n    },\n    \"sends_accepted\": 8230,\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"processed\": 14810,\n      \"delivered\": 14720,\n      \"bounced\": 90,\n      \"bounces\": {\n        \"hard\": 12410,\n        \"soft\": 14290,\n        \"admin\": 410,\n        \"block\": 920,\n        \"undetermined\": 80,\n        \"hard_rate\": 0.454,\n        \"soft_rate\": 0.523,\n        \"admin_rate\": 0.015,\n        \"block_rate\": 0.0337,\n        \"undetermined_rate\": 0.0029\n      },\n      \"complained\": 3,\n      \"deferred\": 14,\n      \"rejected\": 10,\n      \"oob_bounces\": 2,\n      \"effective_delivered\": 14718,\n      \"all_bounces\": 92,\n      \"oob_rate\": 0.00014,\n      \"delivery_rate\": 0.9939,\n      \"bounce_rate\": 0.0061,\n      \"complaint_rate\": 0.0002\n    },\n    \"engagement\": {\n      \"opens\": 5420,\n      \"opens_non_prefetched\": 3210,\n      \"unique_opens\": 3640,\n      \"unique_opens_non_prefetched\": 2480,\n      \"clicks\": 924,\n      \"unique_clicks\": 621,\n      \"unsubscribes\": 12,\n      \"open_rate\": 0.1683,\n      \"click_rate\": 0.0422,\n      \"unsubscribe_rate\": 0.0009\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"delta\": {\n      \"sends_accepted_pct_change\": 0.508,\n      \"delivered_pct_change\": 0.122,\n      \"bounced_pct_change\": -0.031,\n      \"complained_pct_change\": 0.018,\n      \"opened_pct_change\": -0.046,\n      \"delivery_rate_pp\": 0.004,\n      \"open_rate_pp\": 0.005,\n      \"click_rate_pp\": 0.002,\n      \"bounce_rate_pp\": -0.0008,\n      \"complaint_rate_pp\": 0.0001,\n      \"unsubscribe_rate_pp\": -0.0001\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8957a3a0-9198-8d43-877c-08cafc2f3eee",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get aggregate email statistics",
                "description": {
                  "content": "Returns a single-row aggregate across the requested period covering delivery, bounce, complaint, open, and click counts plus the derived rates, along with processing, delivery, and total latency percentiles (p50/p95/p99). Suitable for KPI tiles, campaign reports, and email digests; the daily and hourly endpoints have the same metrics per time bucket.\n\nThe aggregate is computed against event time (not send time), so engagement received during the period for messages sent earlier is included. Rate fields are `null` when their denominator is zero.\n\nThe window grain follows the form of `from` and `to`: calendar days (`YYYY-MM-DD`, up to 365 days) or RFC 3339 instants (hour grain, up to 720 hours, 30 days). A rolling window such as the last 24 hours is a single request. Mixing the two forms returns `422`. Set `timezone` to compute day and hour boundaries in a local zone instead of UTC, and `compare=previous_period` to include the preceding equal-length window in the same response.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Inclusive start of the window: a calendar day (`YYYY-MM-DD`) or an RFC 3339 instant (rounded down to the hour). Interpreted in `timezone` (a calendar day names a local day; an instant is rounded down to the local hour), or in UTC when `timezone` is omitted. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `to`. Defaults to 30 days before `to` for day windows, or 168 hours (7 days) before `to` for hour windows, when omitted.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "Inclusive end of the window: a calendar day (`YYYY-MM-DD`) or an RFC 3339 instant (rounded down to the hour). Interpreted in `timezone` (a calendar day names a local day; an instant is rounded down to the local hour), or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `from`. Defaults to today for day windows, or the current hour for hour windows, in that timezone, when omitted. Day windows may not exceed 365 days; hour windows may not exceed 720 hours (30 days).\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_domain",
                      "value": "mail.acme.com",
                      "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                    },
                    {
                      "disabled": false,
                      "key": "tag",
                      "value": "campaign:spring_launch",
                      "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_ip",
                      "value": "192.0.2.55",
                      "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                    },
                    {
                      "disabled": false,
                      "key": "recipient_domain",
                      "value": "gmail.com",
                      "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "template",
                      "value": "welcome-email",
                      "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                    },
                    {
                      "disabled": true,
                      "key": "compare",
                      "value": "",
                      "description": "Set to `previous_period` to also include the same statistics for the immediately preceding window of equal length, plus the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"sends_accepted\": 12410,\n  \"delivery\": {\n    \"accepted\": 14820,\n    \"processed\": 14810,\n    \"delivered\": 14720,\n    \"bounced\": 90,\n    \"bounces\": {\n      \"hard\": 12410,\n      \"soft\": 14290,\n      \"admin\": 410,\n      \"block\": 920,\n      \"undetermined\": 80,\n      \"hard_rate\": 0.454,\n      \"soft_rate\": 0.523,\n      \"admin_rate\": 0.015,\n      \"block_rate\": 0.0337,\n      \"undetermined_rate\": 0.0029\n    },\n    \"complained\": 3,\n    \"deferred\": 14,\n    \"rejected\": 10,\n    \"oob_bounces\": 2,\n    \"effective_delivered\": 14718,\n    \"all_bounces\": 92,\n    \"oob_rate\": 0.00014,\n    \"delivery_rate\": 0.9939,\n    \"bounce_rate\": 0.0061,\n    \"complaint_rate\": 0.0002\n  },\n  \"engagement\": {\n    \"opens\": 5420,\n    \"opens_non_prefetched\": 3210,\n    \"unique_opens\": 3640,\n    \"unique_opens_non_prefetched\": 2480,\n    \"clicks\": 924,\n    \"unique_clicks\": 621,\n    \"unsubscribes\": 12,\n    \"open_rate\": 0.1683,\n    \"click_rate\": 0.0422,\n    \"unsubscribe_rate\": 0.0009\n  },\n  \"latency\": {\n    \"processing\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"delivery\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"total\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    }\n  },\n  \"comparison\": {\n    \"period\": {\n      \"from\": \"2026-05-01\",\n      \"to\": \"2026-05-25\",\n      \"data_as_of\": \"2026-05-25T14:03:10Z\"\n    },\n    \"sends_accepted\": 8230,\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"processed\": 14810,\n      \"delivered\": 14720,\n      \"bounced\": 90,\n      \"bounces\": {\n        \"hard\": 12410,\n        \"soft\": 14290,\n        \"admin\": 410,\n        \"block\": 920,\n        \"undetermined\": 80,\n        \"hard_rate\": 0.454,\n        \"soft_rate\": 0.523,\n        \"admin_rate\": 0.015,\n        \"block_rate\": 0.0337,\n        \"undetermined_rate\": 0.0029\n      },\n      \"complained\": 3,\n      \"deferred\": 14,\n      \"rejected\": 10,\n      \"oob_bounces\": 2,\n      \"effective_delivered\": 14718,\n      \"all_bounces\": 92,\n      \"oob_rate\": 0.00014,\n      \"delivery_rate\": 0.9939,\n      \"bounce_rate\": 0.0061,\n      \"complaint_rate\": 0.0002\n    },\n    \"engagement\": {\n      \"opens\": 5420,\n      \"opens_non_prefetched\": 3210,\n      \"unique_opens\": 3640,\n      \"unique_opens_non_prefetched\": 2480,\n      \"clicks\": 924,\n      \"unique_clicks\": 621,\n      \"unsubscribes\": 12,\n      \"open_rate\": 0.1683,\n      \"click_rate\": 0.0422,\n      \"unsubscribe_rate\": 0.0009\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"delta\": {\n      \"sends_accepted_pct_change\": 0.508,\n      \"delivered_pct_change\": 0.122,\n      \"bounced_pct_change\": -0.031,\n      \"complained_pct_change\": 0.018,\n      \"opened_pct_change\": -0.046,\n      \"delivery_rate_pp\": 0.004,\n      \"open_rate_pp\": 0.005,\n      \"click_rate_pp\": 0.002,\n      \"bounce_rate_pp\": -0.0008,\n      \"complaint_rate_pp\": 0.0001,\n      \"unsubscribe_rate_pp\": -0.0001\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "57ba9370-5e1d-8c5c-8dab-e9d6f9845780",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get aggregate email statistics",
                "description": {
                  "content": "Returns a single-row aggregate across the requested period covering delivery, bounce, complaint, open, and click counts plus the derived rates, along with processing, delivery, and total latency percentiles (p50/p95/p99). Suitable for KPI tiles, campaign reports, and email digests; the daily and hourly endpoints have the same metrics per time bucket.\n\nThe aggregate is computed against event time (not send time), so engagement received during the period for messages sent earlier is included. Rate fields are `null` when their denominator is zero.\n\nThe window grain follows the form of `from` and `to`: calendar days (`YYYY-MM-DD`, up to 365 days) or RFC 3339 instants (hour grain, up to 720 hours, 30 days). A rolling window such as the last 24 hours is a single request. Mixing the two forms returns `422`. Set `timezone` to compute day and hour boundaries in a local zone instead of UTC, and `compare=previous_period` to include the preceding equal-length window in the same response.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Inclusive start of the window: a calendar day (`YYYY-MM-DD`) or an RFC 3339 instant (rounded down to the hour). Interpreted in `timezone` (a calendar day names a local day; an instant is rounded down to the local hour), or in UTC when `timezone` is omitted. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `to`. Defaults to 30 days before `to` for day windows, or 168 hours (7 days) before `to` for hour windows, when omitted.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "Inclusive end of the window: a calendar day (`YYYY-MM-DD`) or an RFC 3339 instant (rounded down to the hour). Interpreted in `timezone` (a calendar day names a local day; an instant is rounded down to the local hour), or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `from`. Defaults to today for day windows, or the current hour for hour windows, in that timezone, when omitted. Day windows may not exceed 365 days; hour windows may not exceed 720 hours (30 days).\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_domain",
                      "value": "mail.acme.com",
                      "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                    },
                    {
                      "disabled": false,
                      "key": "tag",
                      "value": "campaign:spring_launch",
                      "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_ip",
                      "value": "192.0.2.55",
                      "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                    },
                    {
                      "disabled": false,
                      "key": "recipient_domain",
                      "value": "gmail.com",
                      "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "template",
                      "value": "welcome-email",
                      "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                    },
                    {
                      "disabled": true,
                      "key": "compare",
                      "value": "",
                      "description": "Set to `previous_period` to also include the same statistics for the immediately preceding window of equal length, plus the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"sends_accepted\": 12410,\n  \"delivery\": {\n    \"accepted\": 14820,\n    \"processed\": 14810,\n    \"delivered\": 14720,\n    \"bounced\": 90,\n    \"bounces\": {\n      \"hard\": 12410,\n      \"soft\": 14290,\n      \"admin\": 410,\n      \"block\": 920,\n      \"undetermined\": 80,\n      \"hard_rate\": 0.454,\n      \"soft_rate\": 0.523,\n      \"admin_rate\": 0.015,\n      \"block_rate\": 0.0337,\n      \"undetermined_rate\": 0.0029\n    },\n    \"complained\": 3,\n    \"deferred\": 14,\n    \"rejected\": 10,\n    \"oob_bounces\": 2,\n    \"effective_delivered\": 14718,\n    \"all_bounces\": 92,\n    \"oob_rate\": 0.00014,\n    \"delivery_rate\": 0.9939,\n    \"bounce_rate\": 0.0061,\n    \"complaint_rate\": 0.0002\n  },\n  \"engagement\": {\n    \"opens\": 5420,\n    \"opens_non_prefetched\": 3210,\n    \"unique_opens\": 3640,\n    \"unique_opens_non_prefetched\": 2480,\n    \"clicks\": 924,\n    \"unique_clicks\": 621,\n    \"unsubscribes\": 12,\n    \"open_rate\": 0.1683,\n    \"click_rate\": 0.0422,\n    \"unsubscribe_rate\": 0.0009\n  },\n  \"latency\": {\n    \"processing\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"delivery\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"total\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    }\n  },\n  \"comparison\": {\n    \"period\": {\n      \"from\": \"2026-05-01\",\n      \"to\": \"2026-05-25\",\n      \"data_as_of\": \"2026-05-25T14:03:10Z\"\n    },\n    \"sends_accepted\": 8230,\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"processed\": 14810,\n      \"delivered\": 14720,\n      \"bounced\": 90,\n      \"bounces\": {\n        \"hard\": 12410,\n        \"soft\": 14290,\n        \"admin\": 410,\n        \"block\": 920,\n        \"undetermined\": 80,\n        \"hard_rate\": 0.454,\n        \"soft_rate\": 0.523,\n        \"admin_rate\": 0.015,\n        \"block_rate\": 0.0337,\n        \"undetermined_rate\": 0.0029\n      },\n      \"complained\": 3,\n      \"deferred\": 14,\n      \"rejected\": 10,\n      \"oob_bounces\": 2,\n      \"effective_delivered\": 14718,\n      \"all_bounces\": 92,\n      \"oob_rate\": 0.00014,\n      \"delivery_rate\": 0.9939,\n      \"bounce_rate\": 0.0061,\n      \"complaint_rate\": 0.0002\n    },\n    \"engagement\": {\n      \"opens\": 5420,\n      \"opens_non_prefetched\": 3210,\n      \"unique_opens\": 3640,\n      \"unique_opens_non_prefetched\": 2480,\n      \"clicks\": 924,\n      \"unique_clicks\": 621,\n      \"unsubscribes\": 12,\n      \"open_rate\": 0.1683,\n      \"click_rate\": 0.0422,\n      \"unsubscribe_rate\": 0.0009\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"delta\": {\n      \"sends_accepted_pct_change\": 0.508,\n      \"delivered_pct_change\": 0.122,\n      \"bounced_pct_change\": -0.031,\n      \"complained_pct_change\": 0.018,\n      \"opened_pct_change\": -0.046,\n      \"delivery_rate_pp\": 0.004,\n      \"open_rate_pp\": 0.005,\n      \"click_rate_pp\": 0.002,\n      \"bounce_rate_pp\": -0.0008,\n      \"complaint_rate_pp\": 0.0001,\n      \"unsubscribe_rate_pp\": -0.0001\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a7f471ab-2db7-8863-823f-f80ee081e6e7",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get aggregate email statistics",
                "description": {
                  "content": "Returns a single-row aggregate across the requested period covering delivery, bounce, complaint, open, and click counts plus the derived rates, along with processing, delivery, and total latency percentiles (p50/p95/p99). Suitable for KPI tiles, campaign reports, and email digests; the daily and hourly endpoints have the same metrics per time bucket.\n\nThe aggregate is computed against event time (not send time), so engagement received during the period for messages sent earlier is included. Rate fields are `null` when their denominator is zero.\n\nThe window grain follows the form of `from` and `to`: calendar days (`YYYY-MM-DD`, up to 365 days) or RFC 3339 instants (hour grain, up to 720 hours, 30 days). A rolling window such as the last 24 hours is a single request. Mixing the two forms returns `422`. Set `timezone` to compute day and hour boundaries in a local zone instead of UTC, and `compare=previous_period` to include the preceding equal-length window in the same response.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Inclusive start of the window: a calendar day (`YYYY-MM-DD`) or an RFC 3339 instant (rounded down to the hour). Interpreted in `timezone` (a calendar day names a local day; an instant is rounded down to the local hour), or in UTC when `timezone` is omitted. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `to`. Defaults to 30 days before `to` for day windows, or 168 hours (7 days) before `to` for hour windows, when omitted.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "Inclusive end of the window: a calendar day (`YYYY-MM-DD`) or an RFC 3339 instant (rounded down to the hour). Interpreted in `timezone` (a calendar day names a local day; an instant is rounded down to the local hour), or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `from`. Defaults to today for day windows, or the current hour for hour windows, in that timezone, when omitted. Day windows may not exceed 365 days; hour windows may not exceed 720 hours (30 days).\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_domain",
                      "value": "mail.acme.com",
                      "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                    },
                    {
                      "disabled": false,
                      "key": "tag",
                      "value": "campaign:spring_launch",
                      "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_ip",
                      "value": "192.0.2.55",
                      "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                    },
                    {
                      "disabled": false,
                      "key": "recipient_domain",
                      "value": "gmail.com",
                      "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "template",
                      "value": "welcome-email",
                      "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                    },
                    {
                      "disabled": true,
                      "key": "compare",
                      "value": "",
                      "description": "Set to `previous_period` to also include the same statistics for the immediately preceding window of equal length, plus the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"sends_accepted\": 12410,\n  \"delivery\": {\n    \"accepted\": 14820,\n    \"processed\": 14810,\n    \"delivered\": 14720,\n    \"bounced\": 90,\n    \"bounces\": {\n      \"hard\": 12410,\n      \"soft\": 14290,\n      \"admin\": 410,\n      \"block\": 920,\n      \"undetermined\": 80,\n      \"hard_rate\": 0.454,\n      \"soft_rate\": 0.523,\n      \"admin_rate\": 0.015,\n      \"block_rate\": 0.0337,\n      \"undetermined_rate\": 0.0029\n    },\n    \"complained\": 3,\n    \"deferred\": 14,\n    \"rejected\": 10,\n    \"oob_bounces\": 2,\n    \"effective_delivered\": 14718,\n    \"all_bounces\": 92,\n    \"oob_rate\": 0.00014,\n    \"delivery_rate\": 0.9939,\n    \"bounce_rate\": 0.0061,\n    \"complaint_rate\": 0.0002\n  },\n  \"engagement\": {\n    \"opens\": 5420,\n    \"opens_non_prefetched\": 3210,\n    \"unique_opens\": 3640,\n    \"unique_opens_non_prefetched\": 2480,\n    \"clicks\": 924,\n    \"unique_clicks\": 621,\n    \"unsubscribes\": 12,\n    \"open_rate\": 0.1683,\n    \"click_rate\": 0.0422,\n    \"unsubscribe_rate\": 0.0009\n  },\n  \"latency\": {\n    \"processing\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"delivery\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"total\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    }\n  },\n  \"comparison\": {\n    \"period\": {\n      \"from\": \"2026-05-01\",\n      \"to\": \"2026-05-25\",\n      \"data_as_of\": \"2026-05-25T14:03:10Z\"\n    },\n    \"sends_accepted\": 8230,\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"processed\": 14810,\n      \"delivered\": 14720,\n      \"bounced\": 90,\n      \"bounces\": {\n        \"hard\": 12410,\n        \"soft\": 14290,\n        \"admin\": 410,\n        \"block\": 920,\n        \"undetermined\": 80,\n        \"hard_rate\": 0.454,\n        \"soft_rate\": 0.523,\n        \"admin_rate\": 0.015,\n        \"block_rate\": 0.0337,\n        \"undetermined_rate\": 0.0029\n      },\n      \"complained\": 3,\n      \"deferred\": 14,\n      \"rejected\": 10,\n      \"oob_bounces\": 2,\n      \"effective_delivered\": 14718,\n      \"all_bounces\": 92,\n      \"oob_rate\": 0.00014,\n      \"delivery_rate\": 0.9939,\n      \"bounce_rate\": 0.0061,\n      \"complaint_rate\": 0.0002\n    },\n    \"engagement\": {\n      \"opens\": 5420,\n      \"opens_non_prefetched\": 3210,\n      \"unique_opens\": 3640,\n      \"unique_opens_non_prefetched\": 2480,\n      \"clicks\": 924,\n      \"unique_clicks\": 621,\n      \"unsubscribes\": 12,\n      \"open_rate\": 0.1683,\n      \"click_rate\": 0.0422,\n      \"unsubscribe_rate\": 0.0009\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"delta\": {\n      \"sends_accepted_pct_change\": 0.508,\n      \"delivered_pct_change\": 0.122,\n      \"bounced_pct_change\": -0.031,\n      \"complained_pct_change\": 0.018,\n      \"opened_pct_change\": -0.046,\n      \"delivery_rate_pp\": 0.004,\n      \"open_rate_pp\": 0.005,\n      \"click_rate_pp\": 0.002,\n      \"bounce_rate_pp\": -0.0008,\n      \"complaint_rate_pp\": 0.0001,\n      \"unsubscribe_rate_pp\": -0.0001\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "740dab7e-4a78-8fa2-8969-be4ebebd66d6",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get aggregate email statistics",
                "description": {
                  "content": "Returns a single-row aggregate across the requested period covering delivery, bounce, complaint, open, and click counts plus the derived rates, along with processing, delivery, and total latency percentiles (p50/p95/p99). Suitable for KPI tiles, campaign reports, and email digests; the daily and hourly endpoints have the same metrics per time bucket.\n\nThe aggregate is computed against event time (not send time), so engagement received during the period for messages sent earlier is included. Rate fields are `null` when their denominator is zero.\n\nThe window grain follows the form of `from` and `to`: calendar days (`YYYY-MM-DD`, up to 365 days) or RFC 3339 instants (hour grain, up to 720 hours, 30 days). A rolling window such as the last 24 hours is a single request. Mixing the two forms returns `422`. Set `timezone` to compute day and hour boundaries in a local zone instead of UTC, and `compare=previous_period` to include the preceding equal-length window in the same response.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Inclusive start of the window: a calendar day (`YYYY-MM-DD`) or an RFC 3339 instant (rounded down to the hour). Interpreted in `timezone` (a calendar day names a local day; an instant is rounded down to the local hour), or in UTC when `timezone` is omitted. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `to`. Defaults to 30 days before `to` for day windows, or 168 hours (7 days) before `to` for hour windows, when omitted.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "Inclusive end of the window: a calendar day (`YYYY-MM-DD`) or an RFC 3339 instant (rounded down to the hour). Interpreted in `timezone` (a calendar day names a local day; an instant is rounded down to the local hour), or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `from`. Defaults to today for day windows, or the current hour for hour windows, in that timezone, when omitted. Day windows may not exceed 365 days; hour windows may not exceed 720 hours (30 days).\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_domain",
                      "value": "mail.acme.com",
                      "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                    },
                    {
                      "disabled": false,
                      "key": "tag",
                      "value": "campaign:spring_launch",
                      "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_ip",
                      "value": "192.0.2.55",
                      "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                    },
                    {
                      "disabled": false,
                      "key": "recipient_domain",
                      "value": "gmail.com",
                      "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "template",
                      "value": "welcome-email",
                      "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                    },
                    {
                      "disabled": true,
                      "key": "compare",
                      "value": "",
                      "description": "Set to `previous_period` to also include the same statistics for the immediately preceding window of equal length, plus the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"sends_accepted\": 12410,\n  \"delivery\": {\n    \"accepted\": 14820,\n    \"processed\": 14810,\n    \"delivered\": 14720,\n    \"bounced\": 90,\n    \"bounces\": {\n      \"hard\": 12410,\n      \"soft\": 14290,\n      \"admin\": 410,\n      \"block\": 920,\n      \"undetermined\": 80,\n      \"hard_rate\": 0.454,\n      \"soft_rate\": 0.523,\n      \"admin_rate\": 0.015,\n      \"block_rate\": 0.0337,\n      \"undetermined_rate\": 0.0029\n    },\n    \"complained\": 3,\n    \"deferred\": 14,\n    \"rejected\": 10,\n    \"oob_bounces\": 2,\n    \"effective_delivered\": 14718,\n    \"all_bounces\": 92,\n    \"oob_rate\": 0.00014,\n    \"delivery_rate\": 0.9939,\n    \"bounce_rate\": 0.0061,\n    \"complaint_rate\": 0.0002\n  },\n  \"engagement\": {\n    \"opens\": 5420,\n    \"opens_non_prefetched\": 3210,\n    \"unique_opens\": 3640,\n    \"unique_opens_non_prefetched\": 2480,\n    \"clicks\": 924,\n    \"unique_clicks\": 621,\n    \"unsubscribes\": 12,\n    \"open_rate\": 0.1683,\n    \"click_rate\": 0.0422,\n    \"unsubscribe_rate\": 0.0009\n  },\n  \"latency\": {\n    \"processing\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"delivery\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"total\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    }\n  },\n  \"comparison\": {\n    \"period\": {\n      \"from\": \"2026-05-01\",\n      \"to\": \"2026-05-25\",\n      \"data_as_of\": \"2026-05-25T14:03:10Z\"\n    },\n    \"sends_accepted\": 8230,\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"processed\": 14810,\n      \"delivered\": 14720,\n      \"bounced\": 90,\n      \"bounces\": {\n        \"hard\": 12410,\n        \"soft\": 14290,\n        \"admin\": 410,\n        \"block\": 920,\n        \"undetermined\": 80,\n        \"hard_rate\": 0.454,\n        \"soft_rate\": 0.523,\n        \"admin_rate\": 0.015,\n        \"block_rate\": 0.0337,\n        \"undetermined_rate\": 0.0029\n      },\n      \"complained\": 3,\n      \"deferred\": 14,\n      \"rejected\": 10,\n      \"oob_bounces\": 2,\n      \"effective_delivered\": 14718,\n      \"all_bounces\": 92,\n      \"oob_rate\": 0.00014,\n      \"delivery_rate\": 0.9939,\n      \"bounce_rate\": 0.0061,\n      \"complaint_rate\": 0.0002\n    },\n    \"engagement\": {\n      \"opens\": 5420,\n      \"opens_non_prefetched\": 3210,\n      \"unique_opens\": 3640,\n      \"unique_opens_non_prefetched\": 2480,\n      \"clicks\": 924,\n      \"unique_clicks\": 621,\n      \"unsubscribes\": 12,\n      \"open_rate\": 0.1683,\n      \"click_rate\": 0.0422,\n      \"unsubscribe_rate\": 0.0009\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"delta\": {\n      \"sends_accepted_pct_change\": 0.508,\n      \"delivered_pct_change\": 0.122,\n      \"bounced_pct_change\": -0.031,\n      \"complained_pct_change\": 0.018,\n      \"opened_pct_change\": -0.046,\n      \"delivery_rate_pp\": 0.004,\n      \"open_rate_pp\": 0.005,\n      \"click_rate_pp\": 0.002,\n      \"bounce_rate_pp\": -0.0008,\n      \"complaint_rate_pp\": 0.0001,\n      \"unsubscribe_rate_pp\": -0.0001\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "00d55c8e-9dc8-8b04-8274-d1e8c20ebe23",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get aggregate email statistics",
                "description": {
                  "content": "Returns a single-row aggregate across the requested period covering delivery, bounce, complaint, open, and click counts plus the derived rates, along with processing, delivery, and total latency percentiles (p50/p95/p99). Suitable for KPI tiles, campaign reports, and email digests; the daily and hourly endpoints have the same metrics per time bucket.\n\nThe aggregate is computed against event time (not send time), so engagement received during the period for messages sent earlier is included. Rate fields are `null` when their denominator is zero.\n\nThe window grain follows the form of `from` and `to`: calendar days (`YYYY-MM-DD`, up to 365 days) or RFC 3339 instants (hour grain, up to 720 hours, 30 days). A rolling window such as the last 24 hours is a single request. Mixing the two forms returns `422`. Set `timezone` to compute day and hour boundaries in a local zone instead of UTC, and `compare=previous_period` to include the preceding equal-length window in the same response.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Inclusive start of the window: a calendar day (`YYYY-MM-DD`) or an RFC 3339 instant (rounded down to the hour). Interpreted in `timezone` (a calendar day names a local day; an instant is rounded down to the local hour), or in UTC when `timezone` is omitted. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `to`. Defaults to 30 days before `to` for day windows, or 168 hours (7 days) before `to` for hour windows, when omitted.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "Inclusive end of the window: a calendar day (`YYYY-MM-DD`) or an RFC 3339 instant (rounded down to the hour). Interpreted in `timezone` (a calendar day names a local day; an instant is rounded down to the local hour), or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `from`. Defaults to today for day windows, or the current hour for hour windows, in that timezone, when omitted. Day windows may not exceed 365 days; hour windows may not exceed 720 hours (30 days).\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category: `transactional` or `marketing`. Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_domain",
                      "value": "mail.acme.com",
                      "description": "Restrict the statistics to a single sending domain (the part of the From address after @). Mutually exclusive with the other dimension filters; only one may be set per request."
                    },
                    {
                      "disabled": false,
                      "key": "tag",
                      "value": "campaign:spring_launch",
                      "description": "Restrict the statistics to a single tag. Use `name` to match any value of a tag, or `name:value` for a specific pair (for example `campaign:spring_launch`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "sending_ip",
                      "value": "192.0.2.55",
                      "description": "Restrict the statistics to a single sending IP. Mutually exclusive with the other dimension filters; only one may be set per request. A sending IP is assigned only after a message reaches delivery, so this filter reports delivery-side metrics only. Accepted, processed, rejected, complaint, and engagement counts are `0`, and processing latency is `null`. Complaint, open, and click rates are `0` when deliveries exist and `null` otherwise.\n"
                    },
                    {
                      "disabled": false,
                      "key": "recipient_domain",
                      "value": "gmail.com",
                      "description": "Restrict the statistics to a single recipient mailbox domain (the part of the recipient address after the `@`, for example `gmail.com`). Mutually exclusive with the other dimension filters; only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "template",
                      "value": "welcome-email",
                      "description": "Restricts the statistics to one template, identified by its ID (`emt_…`) or name. This parameter is mutually exclusive with other dimension filters.\n"
                    },
                    {
                      "disabled": true,
                      "key": "compare",
                      "value": "",
                      "description": "Set to `previous_period` to also include the same statistics for the immediately preceding window of equal length, plus the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"sends_accepted\": 12410,\n  \"delivery\": {\n    \"accepted\": 14820,\n    \"processed\": 14810,\n    \"delivered\": 14720,\n    \"bounced\": 90,\n    \"bounces\": {\n      \"hard\": 12410,\n      \"soft\": 14290,\n      \"admin\": 410,\n      \"block\": 920,\n      \"undetermined\": 80,\n      \"hard_rate\": 0.454,\n      \"soft_rate\": 0.523,\n      \"admin_rate\": 0.015,\n      \"block_rate\": 0.0337,\n      \"undetermined_rate\": 0.0029\n    },\n    \"complained\": 3,\n    \"deferred\": 14,\n    \"rejected\": 10,\n    \"oob_bounces\": 2,\n    \"effective_delivered\": 14718,\n    \"all_bounces\": 92,\n    \"oob_rate\": 0.00014,\n    \"delivery_rate\": 0.9939,\n    \"bounce_rate\": 0.0061,\n    \"complaint_rate\": 0.0002\n  },\n  \"engagement\": {\n    \"opens\": 5420,\n    \"opens_non_prefetched\": 3210,\n    \"unique_opens\": 3640,\n    \"unique_opens_non_prefetched\": 2480,\n    \"clicks\": 924,\n    \"unique_clicks\": 621,\n    \"unsubscribes\": 12,\n    \"open_rate\": 0.1683,\n    \"click_rate\": 0.0422,\n    \"unsubscribe_rate\": 0.0009\n  },\n  \"latency\": {\n    \"processing\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"delivery\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"total\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    }\n  },\n  \"comparison\": {\n    \"period\": {\n      \"from\": \"2026-05-01\",\n      \"to\": \"2026-05-25\",\n      \"data_as_of\": \"2026-05-25T14:03:10Z\"\n    },\n    \"sends_accepted\": 8230,\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"processed\": 14810,\n      \"delivered\": 14720,\n      \"bounced\": 90,\n      \"bounces\": {\n        \"hard\": 12410,\n        \"soft\": 14290,\n        \"admin\": 410,\n        \"block\": 920,\n        \"undetermined\": 80,\n        \"hard_rate\": 0.454,\n        \"soft_rate\": 0.523,\n        \"admin_rate\": 0.015,\n        \"block_rate\": 0.0337,\n        \"undetermined_rate\": 0.0029\n      },\n      \"complained\": 3,\n      \"deferred\": 14,\n      \"rejected\": 10,\n      \"oob_bounces\": 2,\n      \"effective_delivered\": 14718,\n      \"all_bounces\": 92,\n      \"oob_rate\": 0.00014,\n      \"delivery_rate\": 0.9939,\n      \"bounce_rate\": 0.0061,\n      \"complaint_rate\": 0.0002\n    },\n    \"engagement\": {\n      \"opens\": 5420,\n      \"opens_non_prefetched\": 3210,\n      \"unique_opens\": 3640,\n      \"unique_opens_non_prefetched\": 2480,\n      \"clicks\": 924,\n      \"unique_clicks\": 621,\n      \"unsubscribes\": 12,\n      \"open_rate\": 0.1683,\n      \"click_rate\": 0.0422,\n      \"unsubscribe_rate\": 0.0009\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"delta\": {\n      \"sends_accepted_pct_change\": 0.508,\n      \"delivered_pct_change\": 0.122,\n      \"bounced_pct_change\": -0.031,\n      \"complained_pct_change\": 0.018,\n      \"opened_pct_change\": -0.046,\n      \"delivery_rate_pp\": 0.004,\n      \"open_rate_pp\": 0.005,\n      \"click_rate_pp\": 0.002,\n      \"bounce_rate_pp\": -0.0008,\n      \"complaint_rate_pp\": 0.0001,\n      \"unsubscribe_rate_pp\": -0.0001\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "b29bf777-1b3b-8ed4-8ed4-17f4c3390063",
          "name": "Get statistics by sending IP",
          "request": {
            "name": "Get statistics by sending IP",
            "description": {
              "content": "Returns delivery and deliverability counts for the requested period, grouped by the specific IP address used to send each message. Use it to spot a reputation problem on one IP. Block bounces concentrated on a single IP usually mean that IP's reputation has taken a hit, and sorting by `bounces.block` puts those IPs first.\n\nA sending IP is only known once the receiving mail server reports an outcome: a delivery, a bounce, a deferral, or a late bounce. So this breakdown starts from the delivery stage onward. Accepted, processed, and rejected counts aren't included at all, and neither are engagement counts or processing latency. Complaints and out-of-band bounces aren't attributed to a sending IP either, so `complained` and `oob_bounces` are included but always read `0` here. Bounced, deferred, delivery latency, and total latency are the ones that have real numbers. For workspace-wide figures, use `GET /v1/email/stats/daily`. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` field, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "stats",
                "sending-ips"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": true,
                  "key": "category",
                  "value": "",
                  "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                },
                {
                  "disabled": false,
                  "key": "sort",
                  "value": "delivered",
                  "description": "Metric to rank IPs by, applied descending. Sorting by `bounces.block` puts the IPs whose reputation is most likely degraded at the top. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. A sending IP has no engagement, so engagement metrics aren't sortable here, and neither are `processed`, `rejected`, or `oob_bounces`.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum number of IP rows to return, ranked by the `sort` field descending."
                },
                {
                  "disabled": false,
                  "key": "include_trend",
                  "value": "false",
                  "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that IP's delivery rates over the window. A trend point's open and click rates read `0` in a bucket that had deliveries and `null` in one that had none, because a sending IP has no engagement data. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                },
                {
                  "disabled": true,
                  "key": "trend_grain",
                  "value": "",
                  "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "3e2bb95f-c062-8907-8dfb-ab65820147b1",
              "name": "Per-sending-IP breakdown for the requested period.",
              "originalRequest": {
                "name": "Get statistics by sending IP",
                "description": {
                  "content": "Returns delivery and deliverability counts for the requested period, grouped by the specific IP address used to send each message. Use it to spot a reputation problem on one IP. Block bounces concentrated on a single IP usually mean that IP's reputation has taken a hit, and sorting by `bounces.block` puts those IPs first.\n\nA sending IP is only known once the receiving mail server reports an outcome: a delivery, a bounce, a deferral, or a late bounce. So this breakdown starts from the delivery stage onward. Accepted, processed, and rejected counts aren't included at all, and neither are engagement counts or processing latency. Complaints and out-of-band bounces aren't attributed to a sending IP either, so `complained` and `oob_bounces` are included but always read `0` here. Bounced, deferred, delivery latency, and total latency are the ones that have real numbers. For workspace-wide figures, use `GET /v1/email/stats/daily`. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` field, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "sending-ips"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "delivered",
                      "description": "Metric to rank IPs by, applied descending. Sorting by `bounces.block` puts the IPs whose reputation is most likely degraded at the top. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. A sending IP has no engagement, so engagement metrics aren't sortable here, and neither are `processed`, `rejected`, or `oob_bounces`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of IP rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that IP's delivery rates over the window. A trend point's open and click rates read `0` in a bucket that had deliveries and `null` in one that had none, because a sending IP has no engagement data. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"sending_ip\": \"192.0.2.55\",\n      \"ip_pool_id\": \"ipp_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"delivery\": {\n        \"delivered\": 8290,\n        \"bounced\": 131,\n        \"complained\": 8,\n        \"deferred\": 4,\n        \"oob_bounces\": 3,\n        \"effective_delivered\": 8287,\n        \"all_bounces\": 134,\n        \"oob_rate\": 0.00036,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"delivery_rate\": 0.9844,\n        \"bounce_rate\": 0.0156,\n        \"complaint_rate\": 0.00096\n      },\n      \"latency\": {\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 6\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c15c6c31-c3a7-8597-8880-d3a535ab2d46",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get statistics by sending IP",
                "description": {
                  "content": "Returns delivery and deliverability counts for the requested period, grouped by the specific IP address used to send each message. Use it to spot a reputation problem on one IP. Block bounces concentrated on a single IP usually mean that IP's reputation has taken a hit, and sorting by `bounces.block` puts those IPs first.\n\nA sending IP is only known once the receiving mail server reports an outcome: a delivery, a bounce, a deferral, or a late bounce. So this breakdown starts from the delivery stage onward. Accepted, processed, and rejected counts aren't included at all, and neither are engagement counts or processing latency. Complaints and out-of-band bounces aren't attributed to a sending IP either, so `complained` and `oob_bounces` are included but always read `0` here. Bounced, deferred, delivery latency, and total latency are the ones that have real numbers. For workspace-wide figures, use `GET /v1/email/stats/daily`. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` field, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "sending-ips"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "delivered",
                      "description": "Metric to rank IPs by, applied descending. Sorting by `bounces.block` puts the IPs whose reputation is most likely degraded at the top. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. A sending IP has no engagement, so engagement metrics aren't sortable here, and neither are `processed`, `rejected`, or `oob_bounces`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of IP rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that IP's delivery rates over the window. A trend point's open and click rates read `0` in a bucket that had deliveries and `null` in one that had none, because a sending IP has no engagement data. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"sending_ip\": \"192.0.2.55\",\n      \"ip_pool_id\": \"ipp_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"delivery\": {\n        \"delivered\": 8290,\n        \"bounced\": 131,\n        \"complained\": 8,\n        \"deferred\": 4,\n        \"oob_bounces\": 3,\n        \"effective_delivered\": 8287,\n        \"all_bounces\": 134,\n        \"oob_rate\": 0.00036,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"delivery_rate\": 0.9844,\n        \"bounce_rate\": 0.0156,\n        \"complaint_rate\": 0.00096\n      },\n      \"latency\": {\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 6\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ba3bc01e-ba51-8a61-80f9-59812c381e7e",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get statistics by sending IP",
                "description": {
                  "content": "Returns delivery and deliverability counts for the requested period, grouped by the specific IP address used to send each message. Use it to spot a reputation problem on one IP. Block bounces concentrated on a single IP usually mean that IP's reputation has taken a hit, and sorting by `bounces.block` puts those IPs first.\n\nA sending IP is only known once the receiving mail server reports an outcome: a delivery, a bounce, a deferral, or a late bounce. So this breakdown starts from the delivery stage onward. Accepted, processed, and rejected counts aren't included at all, and neither are engagement counts or processing latency. Complaints and out-of-band bounces aren't attributed to a sending IP either, so `complained` and `oob_bounces` are included but always read `0` here. Bounced, deferred, delivery latency, and total latency are the ones that have real numbers. For workspace-wide figures, use `GET /v1/email/stats/daily`. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` field, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "sending-ips"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "delivered",
                      "description": "Metric to rank IPs by, applied descending. Sorting by `bounces.block` puts the IPs whose reputation is most likely degraded at the top. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. A sending IP has no engagement, so engagement metrics aren't sortable here, and neither are `processed`, `rejected`, or `oob_bounces`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of IP rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that IP's delivery rates over the window. A trend point's open and click rates read `0` in a bucket that had deliveries and `null` in one that had none, because a sending IP has no engagement data. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"sending_ip\": \"192.0.2.55\",\n      \"ip_pool_id\": \"ipp_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"delivery\": {\n        \"delivered\": 8290,\n        \"bounced\": 131,\n        \"complained\": 8,\n        \"deferred\": 4,\n        \"oob_bounces\": 3,\n        \"effective_delivered\": 8287,\n        \"all_bounces\": 134,\n        \"oob_rate\": 0.00036,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"delivery_rate\": 0.9844,\n        \"bounce_rate\": 0.0156,\n        \"complaint_rate\": 0.00096\n      },\n      \"latency\": {\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 6\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "87070c86-67cc-8b9e-8314-a7ebf14491f5",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get statistics by sending IP",
                "description": {
                  "content": "Returns delivery and deliverability counts for the requested period, grouped by the specific IP address used to send each message. Use it to spot a reputation problem on one IP. Block bounces concentrated on a single IP usually mean that IP's reputation has taken a hit, and sorting by `bounces.block` puts those IPs first.\n\nA sending IP is only known once the receiving mail server reports an outcome: a delivery, a bounce, a deferral, or a late bounce. So this breakdown starts from the delivery stage onward. Accepted, processed, and rejected counts aren't included at all, and neither are engagement counts or processing latency. Complaints and out-of-band bounces aren't attributed to a sending IP either, so `complained` and `oob_bounces` are included but always read `0` here. Bounced, deferred, delivery latency, and total latency are the ones that have real numbers. For workspace-wide figures, use `GET /v1/email/stats/daily`. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` field, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "sending-ips"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "delivered",
                      "description": "Metric to rank IPs by, applied descending. Sorting by `bounces.block` puts the IPs whose reputation is most likely degraded at the top. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. A sending IP has no engagement, so engagement metrics aren't sortable here, and neither are `processed`, `rejected`, or `oob_bounces`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of IP rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that IP's delivery rates over the window. A trend point's open and click rates read `0` in a bucket that had deliveries and `null` in one that had none, because a sending IP has no engagement data. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"sending_ip\": \"192.0.2.55\",\n      \"ip_pool_id\": \"ipp_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"delivery\": {\n        \"delivered\": 8290,\n        \"bounced\": 131,\n        \"complained\": 8,\n        \"deferred\": 4,\n        \"oob_bounces\": 3,\n        \"effective_delivered\": 8287,\n        \"all_bounces\": 134,\n        \"oob_rate\": 0.00036,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"delivery_rate\": 0.9844,\n        \"bounce_rate\": 0.0156,\n        \"complaint_rate\": 0.00096\n      },\n      \"latency\": {\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 6\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b64b221e-a295-89ff-8ae2-d6d9f14b4ea0",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get statistics by sending IP",
                "description": {
                  "content": "Returns delivery and deliverability counts for the requested period, grouped by the specific IP address used to send each message. Use it to spot a reputation problem on one IP. Block bounces concentrated on a single IP usually mean that IP's reputation has taken a hit, and sorting by `bounces.block` puts those IPs first.\n\nA sending IP is only known once the receiving mail server reports an outcome: a delivery, a bounce, a deferral, or a late bounce. So this breakdown starts from the delivery stage onward. Accepted, processed, and rejected counts aren't included at all, and neither are engagement counts or processing latency. Complaints and out-of-band bounces aren't attributed to a sending IP either, so `complained` and `oob_bounces` are included but always read `0` here. Bounced, deferred, delivery latency, and total latency are the ones that have real numbers. For workspace-wide figures, use `GET /v1/email/stats/daily`. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` field, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "sending-ips"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "delivered",
                      "description": "Metric to rank IPs by, applied descending. Sorting by `bounces.block` puts the IPs whose reputation is most likely degraded at the top. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. A sending IP has no engagement, so engagement metrics aren't sortable here, and neither are `processed`, `rejected`, or `oob_bounces`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of IP rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that IP's delivery rates over the window. A trend point's open and click rates read `0` in a bucket that had deliveries and `null` in one that had none, because a sending IP has no engagement data. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"sending_ip\": \"192.0.2.55\",\n      \"ip_pool_id\": \"ipp_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"delivery\": {\n        \"delivered\": 8290,\n        \"bounced\": 131,\n        \"complained\": 8,\n        \"deferred\": 4,\n        \"oob_bounces\": 3,\n        \"effective_delivered\": 8287,\n        \"all_bounces\": 134,\n        \"oob_rate\": 0.00036,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"delivery_rate\": 0.9844,\n        \"bounce_rate\": 0.0156,\n        \"complaint_rate\": 0.00096\n      },\n      \"latency\": {\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 6\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d3f20a38-00a1-86cc-8f28-97f244e1aec2",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get statistics by sending IP",
                "description": {
                  "content": "Returns delivery and deliverability counts for the requested period, grouped by the specific IP address used to send each message. Use it to spot a reputation problem on one IP. Block bounces concentrated on a single IP usually mean that IP's reputation has taken a hit, and sorting by `bounces.block` puts those IPs first.\n\nA sending IP is only known once the receiving mail server reports an outcome: a delivery, a bounce, a deferral, or a late bounce. So this breakdown starts from the delivery stage onward. Accepted, processed, and rejected counts aren't included at all, and neither are engagement counts or processing latency. Complaints and out-of-band bounces aren't attributed to a sending IP either, so `complained` and `oob_bounces` are included but always read `0` here. Bounced, deferred, delivery latency, and total latency are the ones that have real numbers. For workspace-wide figures, use `GET /v1/email/stats/daily`. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` field, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "sending-ips"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "delivered",
                      "description": "Metric to rank IPs by, applied descending. Sorting by `bounces.block` puts the IPs whose reputation is most likely degraded at the top. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. A sending IP has no engagement, so engagement metrics aren't sortable here, and neither are `processed`, `rejected`, or `oob_bounces`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of IP rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that IP's delivery rates over the window. A trend point's open and click rates read `0` in a bucket that had deliveries and `null` in one that had none, because a sending IP has no engagement data. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"sending_ip\": \"192.0.2.55\",\n      \"ip_pool_id\": \"ipp_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"delivery\": {\n        \"delivered\": 8290,\n        \"bounced\": 131,\n        \"complained\": 8,\n        \"deferred\": 4,\n        \"oob_bounces\": 3,\n        \"effective_delivered\": 8287,\n        \"all_bounces\": 134,\n        \"oob_rate\": 0.00036,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"delivery_rate\": 0.9844,\n        \"bounce_rate\": 0.0156,\n        \"complaint_rate\": 0.00096\n      },\n      \"latency\": {\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 6\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fbea3d7c-fab7-8aef-88dd-c9f70446f761",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get statistics by sending IP",
                "description": {
                  "content": "Returns delivery and deliverability counts for the requested period, grouped by the specific IP address used to send each message. Use it to spot a reputation problem on one IP. Block bounces concentrated on a single IP usually mean that IP's reputation has taken a hit, and sorting by `bounces.block` puts those IPs first.\n\nA sending IP is only known once the receiving mail server reports an outcome: a delivery, a bounce, a deferral, or a late bounce. So this breakdown starts from the delivery stage onward. Accepted, processed, and rejected counts aren't included at all, and neither are engagement counts or processing latency. Complaints and out-of-band bounces aren't attributed to a sending IP either, so `complained` and `oob_bounces` are included but always read `0` here. Bounced, deferred, delivery latency, and total latency are the ones that have real numbers. For workspace-wide figures, use `GET /v1/email/stats/daily`. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` field, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "sending-ips"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "delivered",
                      "description": "Metric to rank IPs by, applied descending. Sorting by `bounces.block` puts the IPs whose reputation is most likely degraded at the top. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. A sending IP has no engagement, so engagement metrics aren't sortable here, and neither are `processed`, `rejected`, or `oob_bounces`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of IP rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that IP's delivery rates over the window. A trend point's open and click rates read `0` in a bucket that had deliveries and `null` in one that had none, because a sending IP has no engagement data. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"sending_ip\": \"192.0.2.55\",\n      \"ip_pool_id\": \"ipp_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"delivery\": {\n        \"delivered\": 8290,\n        \"bounced\": 131,\n        \"complained\": 8,\n        \"deferred\": 4,\n        \"oob_bounces\": 3,\n        \"effective_delivered\": 8287,\n        \"all_bounces\": 134,\n        \"oob_rate\": 0.00036,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"delivery_rate\": 0.9844,\n        \"bounce_rate\": 0.0156,\n        \"complaint_rate\": 0.00096\n      },\n      \"latency\": {\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 6\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d3474a33-cf3a-895e-8d52-e450955d2c7c",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get statistics by sending IP",
                "description": {
                  "content": "Returns delivery and deliverability counts for the requested period, grouped by the specific IP address used to send each message. Use it to spot a reputation problem on one IP. Block bounces concentrated on a single IP usually mean that IP's reputation has taken a hit, and sorting by `bounces.block` puts those IPs first.\n\nA sending IP is only known once the receiving mail server reports an outcome: a delivery, a bounce, a deferral, or a late bounce. So this breakdown starts from the delivery stage onward. Accepted, processed, and rejected counts aren't included at all, and neither are engagement counts or processing latency. Complaints and out-of-band bounces aren't attributed to a sending IP either, so `complained` and `oob_bounces` are included but always read `0` here. Bounced, deferred, delivery latency, and total latency are the ones that have real numbers. For workspace-wide figures, use `GET /v1/email/stats/daily`. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` field, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "sending-ips"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "delivered",
                      "description": "Metric to rank IPs by, applied descending. Sorting by `bounces.block` puts the IPs whose reputation is most likely degraded at the top. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. A sending IP has no engagement, so engagement metrics aren't sortable here, and neither are `processed`, `rejected`, or `oob_bounces`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of IP rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that IP's delivery rates over the window. A trend point's open and click rates read `0` in a bucket that had deliveries and `null` in one that had none, because a sending IP has no engagement data. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"sending_ip\": \"192.0.2.55\",\n      \"ip_pool_id\": \"ipp_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"delivery\": {\n        \"delivered\": 8290,\n        \"bounced\": 131,\n        \"complained\": 8,\n        \"deferred\": 4,\n        \"oob_bounces\": 3,\n        \"effective_delivered\": 8287,\n        \"all_bounces\": 134,\n        \"oob_rate\": 0.00036,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"delivery_rate\": 0.9844,\n        \"bounce_rate\": 0.0156,\n        \"complaint_rate\": 0.00096\n      },\n      \"latency\": {\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 6\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "7bd3913e-3784-8004-8938-7fc1679fd016",
          "name": "Get statistics by sending domain",
          "request": {
            "name": "Get statistics by sending domain",
            "description": {
              "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by sending domain: the portion of the `From` address after the `@`. Use it to compare deliverability across multiple verified domains in your workspace, for example transactional versus marketing domains, or sub-domain segregation during IP warming.\n\nRows are computed against event time rather than send time, so engagement and bounces received during the period count even for messages that were sent earlier.\n\nRows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "stats",
                "sending-domains"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": true,
                  "key": "category",
                  "value": "",
                  "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                },
                {
                  "disabled": true,
                  "key": "sort",
                  "value": "",
                  "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum number of domain rows to return, ranked by the `sort` field descending."
                },
                {
                  "disabled": false,
                  "key": "include_trend",
                  "value": "false",
                  "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that domain's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                },
                {
                  "disabled": true,
                  "key": "trend_grain",
                  "value": "",
                  "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "b40c5552-fa47-833b-83bb-d4bf5eba6186",
              "name": "Per-sending-domain breakdown for the requested period.",
              "originalRequest": {
                "name": "Get statistics by sending domain",
                "description": {
                  "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by sending domain: the portion of the `From` address after the `@`. Use it to compare deliverability across multiple verified domains in your workspace, for example transactional versus marketing domains, or sub-domain segregation during IP warming.\n\nRows are computed against event time rather than send time, so engagement and bounces received during the period count even for messages that were sent earlier.\n\nRows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "sending-domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of domain rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that domain's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"sending_domain\": \"mail.acme.com\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 12\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b2252c46-d70a-8581-8613-7fe3cc1e18c3",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get statistics by sending domain",
                "description": {
                  "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by sending domain: the portion of the `From` address after the `@`. Use it to compare deliverability across multiple verified domains in your workspace, for example transactional versus marketing domains, or sub-domain segregation during IP warming.\n\nRows are computed against event time rather than send time, so engagement and bounces received during the period count even for messages that were sent earlier.\n\nRows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "sending-domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of domain rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that domain's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"sending_domain\": \"mail.acme.com\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 12\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "81333fbb-4d4f-85a8-83ae-e00fa462dd00",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get statistics by sending domain",
                "description": {
                  "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by sending domain: the portion of the `From` address after the `@`. Use it to compare deliverability across multiple verified domains in your workspace, for example transactional versus marketing domains, or sub-domain segregation during IP warming.\n\nRows are computed against event time rather than send time, so engagement and bounces received during the period count even for messages that were sent earlier.\n\nRows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "sending-domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of domain rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that domain's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"sending_domain\": \"mail.acme.com\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 12\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "34addc6a-13ac-8bdb-8b8e-267f217c535b",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get statistics by sending domain",
                "description": {
                  "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by sending domain: the portion of the `From` address after the `@`. Use it to compare deliverability across multiple verified domains in your workspace, for example transactional versus marketing domains, or sub-domain segregation during IP warming.\n\nRows are computed against event time rather than send time, so engagement and bounces received during the period count even for messages that were sent earlier.\n\nRows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "sending-domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of domain rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that domain's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"sending_domain\": \"mail.acme.com\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 12\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5945e156-4981-8415-89a5-7900a4e59b65",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get statistics by sending domain",
                "description": {
                  "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by sending domain: the portion of the `From` address after the `@`. Use it to compare deliverability across multiple verified domains in your workspace, for example transactional versus marketing domains, or sub-domain segregation during IP warming.\n\nRows are computed against event time rather than send time, so engagement and bounces received during the period count even for messages that were sent earlier.\n\nRows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "sending-domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of domain rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that domain's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"sending_domain\": \"mail.acme.com\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 12\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9c1c5cc8-3ca3-8b83-8e21-5d249bea9a3a",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get statistics by sending domain",
                "description": {
                  "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by sending domain: the portion of the `From` address after the `@`. Use it to compare deliverability across multiple verified domains in your workspace, for example transactional versus marketing domains, or sub-domain segregation during IP warming.\n\nRows are computed against event time rather than send time, so engagement and bounces received during the period count even for messages that were sent earlier.\n\nRows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "sending-domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of domain rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that domain's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"sending_domain\": \"mail.acme.com\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 12\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a85a5b74-31d6-8638-836b-81d70e2d857b",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get statistics by sending domain",
                "description": {
                  "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by sending domain: the portion of the `From` address after the `@`. Use it to compare deliverability across multiple verified domains in your workspace, for example transactional versus marketing domains, or sub-domain segregation during IP warming.\n\nRows are computed against event time rather than send time, so engagement and bounces received during the period count even for messages that were sent earlier.\n\nRows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "sending-domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of domain rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that domain's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"sending_domain\": \"mail.acme.com\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 12\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9b3450cc-cf78-8907-8083-6853e5f2b7d7",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get statistics by sending domain",
                "description": {
                  "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by sending domain: the portion of the `From` address after the `@`. Use it to compare deliverability across multiple verified domains in your workspace, for example transactional versus marketing domains, or sub-domain segregation during IP warming.\n\nRows are computed against event time rather than send time, so engagement and bounces received during the period count even for messages that were sent earlier.\n\nRows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "sending-domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of domain rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that domain's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"sending_domain\": \"mail.acme.com\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 12\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "d000b8fb-7e4e-839b-8a2b-6a2dc6337b03",
          "name": "Get statistics by category",
          "request": {
            "name": "Get statistics by category",
            "description": {
              "content": "Returns delivery and engagement counts for the requested period, grouped by category, so you can compare deliverability and engagement between your transactional and marketing traffic. Rows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "stats",
                "categories"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": true,
                  "key": "sort",
                  "value": "",
                  "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum number of category rows to return, ranked by the `sort` field descending."
                },
                {
                  "disabled": false,
                  "key": "include_trend",
                  "value": "false",
                  "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that category's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                },
                {
                  "disabled": true,
                  "key": "trend_grain",
                  "value": "",
                  "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "b84498aa-b85d-822f-8669-3b08c17df5b0",
              "name": "Per-category breakdown for the requested period.",
              "originalRequest": {
                "name": "Get statistics by category",
                "description": {
                  "content": "Returns delivery and engagement counts for the requested period, grouped by category, so you can compare deliverability and engagement between your transactional and marketing traffic. Rows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "categories"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of category rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that category's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"category\": \"transactional\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 2\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "10224d36-3c48-82af-8d37-beca95f158b5",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get statistics by category",
                "description": {
                  "content": "Returns delivery and engagement counts for the requested period, grouped by category, so you can compare deliverability and engagement between your transactional and marketing traffic. Rows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "categories"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of category rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that category's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"category\": \"transactional\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 2\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d222eb43-2127-8b95-8c68-65e0f85d9e48",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get statistics by category",
                "description": {
                  "content": "Returns delivery and engagement counts for the requested period, grouped by category, so you can compare deliverability and engagement between your transactional and marketing traffic. Rows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "categories"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of category rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that category's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"category\": \"transactional\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 2\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ff46037d-c8ba-826b-8557-3e0e505df2bc",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get statistics by category",
                "description": {
                  "content": "Returns delivery and engagement counts for the requested period, grouped by category, so you can compare deliverability and engagement between your transactional and marketing traffic. Rows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "categories"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of category rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that category's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"category\": \"transactional\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 2\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b7c75375-9261-8a73-8004-a66c3423f976",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get statistics by category",
                "description": {
                  "content": "Returns delivery and engagement counts for the requested period, grouped by category, so you can compare deliverability and engagement between your transactional and marketing traffic. Rows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "categories"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of category rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that category's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"category\": \"transactional\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 2\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "340f0aa7-311a-8116-8843-28116f9fc393",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get statistics by category",
                "description": {
                  "content": "Returns delivery and engagement counts for the requested period, grouped by category, so you can compare deliverability and engagement between your transactional and marketing traffic. Rows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "categories"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of category rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that category's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"category\": \"transactional\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 2\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "411f96a4-031b-8637-8c0f-bc9035eddc24",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get statistics by category",
                "description": {
                  "content": "Returns delivery and engagement counts for the requested period, grouped by category, so you can compare deliverability and engagement between your transactional and marketing traffic. Rows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "categories"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of category rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that category's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"category\": \"transactional\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 2\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d305841b-60cd-8e81-8b6a-8ab17fb9d6f2",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get statistics by category",
                "description": {
                  "content": "Returns delivery and engagement counts for the requested period, grouped by category, so you can compare deliverability and engagement between your transactional and marketing traffic. Rows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "categories"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of category rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that category's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"category\": \"transactional\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 2\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "822b5604-5436-80b1-8e1e-28b5b33e551b",
          "name": "Get statistics by mailbox provider",
          "request": {
            "name": "Get statistics by mailbox provider",
            "description": {
              "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by recipient mailbox provider, for example `gmail`, `yahoo`, `microsoft`, or `apple`. Use it to compare how each major inbox provider treats your mail, for example to spot a delivered-rate dip or a complaint spike at one provider before it spreads. For a per-region split within a provider, use the mailbox-provider-region breakdown.\n\nA recipient's mailbox provider is only known once the receiving mail system reports an outcome, so this breakdown covers the delivery stage onward. Accepted, processed, and rejected counts and processing latency are not included. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` metric, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "stats",
                "mailbox-providers"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": true,
                  "key": "category",
                  "value": "",
                  "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                },
                {
                  "disabled": true,
                  "key": "sort",
                  "value": "",
                  "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. `processed`, `rejected`, and `oob_bounces` are not part of this breakdown's rows, so they are not sortable here.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum number of mailbox-provider rows to return, ranked by the `sort` field descending."
                },
                {
                  "disabled": false,
                  "key": "include_trend",
                  "value": "false",
                  "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that provider's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                },
                {
                  "disabled": true,
                  "key": "trend_grain",
                  "value": "",
                  "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "3fde4ef0-ade1-8b4f-8cb1-a2a0a4e29fc7",
              "name": "Per-mailbox-provider breakdown for the requested period.",
              "originalRequest": {
                "name": "Get statistics by mailbox provider",
                "description": {
                  "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by recipient mailbox provider, for example `gmail`, `yahoo`, `microsoft`, or `apple`. Use it to compare how each major inbox provider treats your mail, for example to spot a delivered-rate dip or a complaint spike at one provider before it spreads. For a per-region split within a provider, use the mailbox-provider-region breakdown.\n\nA recipient's mailbox provider is only known once the receiving mail system reports an outcome, so this breakdown covers the delivery stage onward. Accepted, processed, and rejected counts and processing latency are not included. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` metric, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "mailbox-providers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. `processed`, `rejected`, and `oob_bounces` are not part of this breakdown's rows, so they are not sortable here.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of mailbox-provider rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that provider's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"mailbox_provider\": \"gmail\",\n      \"delivery\": {\n        \"delivered\": 8290,\n        \"bounced\": 131,\n        \"complained\": 8,\n        \"deferred\": 4,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"delivery_rate\": 0.9844,\n        \"bounce_rate\": 0.0156,\n        \"complaint_rate\": 0.00096\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 14\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7e522fd6-4140-8a80-8901-4efea5d0386d",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get statistics by mailbox provider",
                "description": {
                  "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by recipient mailbox provider, for example `gmail`, `yahoo`, `microsoft`, or `apple`. Use it to compare how each major inbox provider treats your mail, for example to spot a delivered-rate dip or a complaint spike at one provider before it spreads. For a per-region split within a provider, use the mailbox-provider-region breakdown.\n\nA recipient's mailbox provider is only known once the receiving mail system reports an outcome, so this breakdown covers the delivery stage onward. Accepted, processed, and rejected counts and processing latency are not included. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` metric, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "mailbox-providers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. `processed`, `rejected`, and `oob_bounces` are not part of this breakdown's rows, so they are not sortable here.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of mailbox-provider rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that provider's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"mailbox_provider\": \"gmail\",\n      \"delivery\": {\n        \"delivered\": 8290,\n        \"bounced\": 131,\n        \"complained\": 8,\n        \"deferred\": 4,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"delivery_rate\": 0.9844,\n        \"bounce_rate\": 0.0156,\n        \"complaint_rate\": 0.00096\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 14\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a969d174-955d-8933-8f7d-ea28625b48f4",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get statistics by mailbox provider",
                "description": {
                  "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by recipient mailbox provider, for example `gmail`, `yahoo`, `microsoft`, or `apple`. Use it to compare how each major inbox provider treats your mail, for example to spot a delivered-rate dip or a complaint spike at one provider before it spreads. For a per-region split within a provider, use the mailbox-provider-region breakdown.\n\nA recipient's mailbox provider is only known once the receiving mail system reports an outcome, so this breakdown covers the delivery stage onward. Accepted, processed, and rejected counts and processing latency are not included. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` metric, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "mailbox-providers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. `processed`, `rejected`, and `oob_bounces` are not part of this breakdown's rows, so they are not sortable here.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of mailbox-provider rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that provider's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"mailbox_provider\": \"gmail\",\n      \"delivery\": {\n        \"delivered\": 8290,\n        \"bounced\": 131,\n        \"complained\": 8,\n        \"deferred\": 4,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"delivery_rate\": 0.9844,\n        \"bounce_rate\": 0.0156,\n        \"complaint_rate\": 0.00096\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 14\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "289aad3d-c436-828a-83b7-8d1182d95f1d",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get statistics by mailbox provider",
                "description": {
                  "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by recipient mailbox provider, for example `gmail`, `yahoo`, `microsoft`, or `apple`. Use it to compare how each major inbox provider treats your mail, for example to spot a delivered-rate dip or a complaint spike at one provider before it spreads. For a per-region split within a provider, use the mailbox-provider-region breakdown.\n\nA recipient's mailbox provider is only known once the receiving mail system reports an outcome, so this breakdown covers the delivery stage onward. Accepted, processed, and rejected counts and processing latency are not included. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` metric, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "mailbox-providers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. `processed`, `rejected`, and `oob_bounces` are not part of this breakdown's rows, so they are not sortable here.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of mailbox-provider rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that provider's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"mailbox_provider\": \"gmail\",\n      \"delivery\": {\n        \"delivered\": 8290,\n        \"bounced\": 131,\n        \"complained\": 8,\n        \"deferred\": 4,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"delivery_rate\": 0.9844,\n        \"bounce_rate\": 0.0156,\n        \"complaint_rate\": 0.00096\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 14\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "72cc34b6-2844-8269-8f8e-f4502092f3e9",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get statistics by mailbox provider",
                "description": {
                  "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by recipient mailbox provider, for example `gmail`, `yahoo`, `microsoft`, or `apple`. Use it to compare how each major inbox provider treats your mail, for example to spot a delivered-rate dip or a complaint spike at one provider before it spreads. For a per-region split within a provider, use the mailbox-provider-region breakdown.\n\nA recipient's mailbox provider is only known once the receiving mail system reports an outcome, so this breakdown covers the delivery stage onward. Accepted, processed, and rejected counts and processing latency are not included. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` metric, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "mailbox-providers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. `processed`, `rejected`, and `oob_bounces` are not part of this breakdown's rows, so they are not sortable here.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of mailbox-provider rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that provider's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"mailbox_provider\": \"gmail\",\n      \"delivery\": {\n        \"delivered\": 8290,\n        \"bounced\": 131,\n        \"complained\": 8,\n        \"deferred\": 4,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"delivery_rate\": 0.9844,\n        \"bounce_rate\": 0.0156,\n        \"complaint_rate\": 0.00096\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 14\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ca75acb2-c28d-8ad4-8c0d-7b5de84c0048",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get statistics by mailbox provider",
                "description": {
                  "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by recipient mailbox provider, for example `gmail`, `yahoo`, `microsoft`, or `apple`. Use it to compare how each major inbox provider treats your mail, for example to spot a delivered-rate dip or a complaint spike at one provider before it spreads. For a per-region split within a provider, use the mailbox-provider-region breakdown.\n\nA recipient's mailbox provider is only known once the receiving mail system reports an outcome, so this breakdown covers the delivery stage onward. Accepted, processed, and rejected counts and processing latency are not included. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` metric, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "mailbox-providers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. `processed`, `rejected`, and `oob_bounces` are not part of this breakdown's rows, so they are not sortable here.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of mailbox-provider rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that provider's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"mailbox_provider\": \"gmail\",\n      \"delivery\": {\n        \"delivered\": 8290,\n        \"bounced\": 131,\n        \"complained\": 8,\n        \"deferred\": 4,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"delivery_rate\": 0.9844,\n        \"bounce_rate\": 0.0156,\n        \"complaint_rate\": 0.00096\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 14\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "61aab7c9-3f9d-84dd-8fbd-dad377a4eaea",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get statistics by mailbox provider",
                "description": {
                  "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by recipient mailbox provider, for example `gmail`, `yahoo`, `microsoft`, or `apple`. Use it to compare how each major inbox provider treats your mail, for example to spot a delivered-rate dip or a complaint spike at one provider before it spreads. For a per-region split within a provider, use the mailbox-provider-region breakdown.\n\nA recipient's mailbox provider is only known once the receiving mail system reports an outcome, so this breakdown covers the delivery stage onward. Accepted, processed, and rejected counts and processing latency are not included. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` metric, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "mailbox-providers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. `processed`, `rejected`, and `oob_bounces` are not part of this breakdown's rows, so they are not sortable here.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of mailbox-provider rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that provider's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"mailbox_provider\": \"gmail\",\n      \"delivery\": {\n        \"delivered\": 8290,\n        \"bounced\": 131,\n        \"complained\": 8,\n        \"deferred\": 4,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"delivery_rate\": 0.9844,\n        \"bounce_rate\": 0.0156,\n        \"complaint_rate\": 0.00096\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 14\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "009318b0-60c6-88e2-89d6-5008d9efda54",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get statistics by mailbox provider",
                "description": {
                  "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by recipient mailbox provider, for example `gmail`, `yahoo`, `microsoft`, or `apple`. Use it to compare how each major inbox provider treats your mail, for example to spot a delivered-rate dip or a complaint spike at one provider before it spreads. For a per-region split within a provider, use the mailbox-provider-region breakdown.\n\nA recipient's mailbox provider is only known once the receiving mail system reports an outcome, so this breakdown covers the delivery stage onward. Accepted, processed, and rejected counts and processing latency are not included. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` metric, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "mailbox-providers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. `processed`, `rejected`, and `oob_bounces` are not part of this breakdown's rows, so they are not sortable here.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of mailbox-provider rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that provider's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"mailbox_provider\": \"gmail\",\n      \"delivery\": {\n        \"delivered\": 8290,\n        \"bounced\": 131,\n        \"complained\": 8,\n        \"deferred\": 4,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"delivery_rate\": 0.9844,\n        \"bounce_rate\": 0.0156,\n        \"complaint_rate\": 0.00096\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 14\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "7be98327-b7c6-819f-849a-cefc2bde4b57",
          "name": "Get statistics by mailbox provider region",
          "request": {
            "name": "Get statistics by mailbox provider region",
            "description": {
              "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by mailbox provider and provider region pair, for example `gmail` in `NA` or `microsoft` in `EU`. The provider region is the regional grouping the receiving mail system reports for the recipient's provider. Pairing it with the provider tells apart a region label that several providers share. Use it to spot a deliverability problem isolated to one provider in one region. For a per-provider view without the region split, use the mailbox-provider breakdown.\n\nA provider region is only known once the receiving mail system reports an outcome, so this breakdown covers the delivery stage onward. Accepted, processed, and rejected counts and processing latency are not included. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` metric, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "stats",
                "mailbox-provider-regions"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": true,
                  "key": "category",
                  "value": "",
                  "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                },
                {
                  "disabled": true,
                  "key": "sort",
                  "value": "",
                  "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. `processed`, `rejected`, and `oob_bounces` are not part of this breakdown's rows, so they are not sortable here.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum number of provider-region rows to return, ranked by the `sort` field descending."
                },
                {
                  "disabled": false,
                  "key": "include_trend",
                  "value": "false",
                  "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that provider region's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                },
                {
                  "disabled": true,
                  "key": "trend_grain",
                  "value": "",
                  "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "bce8920b-c47b-83fd-86b7-3237c4f1995c",
              "name": "Per-(mailbox provider, provider region) breakdown for the requested period.",
              "originalRequest": {
                "name": "Get statistics by mailbox provider region",
                "description": {
                  "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by mailbox provider and provider region pair, for example `gmail` in `NA` or `microsoft` in `EU`. The provider region is the regional grouping the receiving mail system reports for the recipient's provider. Pairing it with the provider tells apart a region label that several providers share. Use it to spot a deliverability problem isolated to one provider in one region. For a per-provider view without the region split, use the mailbox-provider breakdown.\n\nA provider region is only known once the receiving mail system reports an outcome, so this breakdown covers the delivery stage onward. Accepted, processed, and rejected counts and processing latency are not included. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` metric, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "mailbox-provider-regions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. `processed`, `rejected`, and `oob_bounces` are not part of this breakdown's rows, so they are not sortable here.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of provider-region rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that provider region's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"mailbox_provider\": \"gmail\",\n      \"mailbox_provider_region\": \"NA\",\n      \"delivery\": {\n        \"delivered\": 8290,\n        \"bounced\": 131,\n        \"complained\": 8,\n        \"deferred\": 4,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"delivery_rate\": 0.9844,\n        \"bounce_rate\": 0.0156,\n        \"complaint_rate\": 0.00096\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 31\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "42ea8ed7-6263-8220-8db4-ea73b51f04ff",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get statistics by mailbox provider region",
                "description": {
                  "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by mailbox provider and provider region pair, for example `gmail` in `NA` or `microsoft` in `EU`. The provider region is the regional grouping the receiving mail system reports for the recipient's provider. Pairing it with the provider tells apart a region label that several providers share. Use it to spot a deliverability problem isolated to one provider in one region. For a per-provider view without the region split, use the mailbox-provider breakdown.\n\nA provider region is only known once the receiving mail system reports an outcome, so this breakdown covers the delivery stage onward. Accepted, processed, and rejected counts and processing latency are not included. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` metric, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "mailbox-provider-regions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. `processed`, `rejected`, and `oob_bounces` are not part of this breakdown's rows, so they are not sortable here.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of provider-region rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that provider region's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"mailbox_provider\": \"gmail\",\n      \"mailbox_provider_region\": \"NA\",\n      \"delivery\": {\n        \"delivered\": 8290,\n        \"bounced\": 131,\n        \"complained\": 8,\n        \"deferred\": 4,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"delivery_rate\": 0.9844,\n        \"bounce_rate\": 0.0156,\n        \"complaint_rate\": 0.00096\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 31\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7e2da365-965c-893c-8705-2365b8a71515",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get statistics by mailbox provider region",
                "description": {
                  "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by mailbox provider and provider region pair, for example `gmail` in `NA` or `microsoft` in `EU`. The provider region is the regional grouping the receiving mail system reports for the recipient's provider. Pairing it with the provider tells apart a region label that several providers share. Use it to spot a deliverability problem isolated to one provider in one region. For a per-provider view without the region split, use the mailbox-provider breakdown.\n\nA provider region is only known once the receiving mail system reports an outcome, so this breakdown covers the delivery stage onward. Accepted, processed, and rejected counts and processing latency are not included. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` metric, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "mailbox-provider-regions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. `processed`, `rejected`, and `oob_bounces` are not part of this breakdown's rows, so they are not sortable here.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of provider-region rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that provider region's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"mailbox_provider\": \"gmail\",\n      \"mailbox_provider_region\": \"NA\",\n      \"delivery\": {\n        \"delivered\": 8290,\n        \"bounced\": 131,\n        \"complained\": 8,\n        \"deferred\": 4,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"delivery_rate\": 0.9844,\n        \"bounce_rate\": 0.0156,\n        \"complaint_rate\": 0.00096\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 31\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c2188b67-92da-8d88-8d25-489ef41b932f",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get statistics by mailbox provider region",
                "description": {
                  "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by mailbox provider and provider region pair, for example `gmail` in `NA` or `microsoft` in `EU`. The provider region is the regional grouping the receiving mail system reports for the recipient's provider. Pairing it with the provider tells apart a region label that several providers share. Use it to spot a deliverability problem isolated to one provider in one region. For a per-provider view without the region split, use the mailbox-provider breakdown.\n\nA provider region is only known once the receiving mail system reports an outcome, so this breakdown covers the delivery stage onward. Accepted, processed, and rejected counts and processing latency are not included. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` metric, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "mailbox-provider-regions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. `processed`, `rejected`, and `oob_bounces` are not part of this breakdown's rows, so they are not sortable here.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of provider-region rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that provider region's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"mailbox_provider\": \"gmail\",\n      \"mailbox_provider_region\": \"NA\",\n      \"delivery\": {\n        \"delivered\": 8290,\n        \"bounced\": 131,\n        \"complained\": 8,\n        \"deferred\": 4,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"delivery_rate\": 0.9844,\n        \"bounce_rate\": 0.0156,\n        \"complaint_rate\": 0.00096\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 31\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e260d65c-cc69-8a71-8839-16b61765ac01",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get statistics by mailbox provider region",
                "description": {
                  "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by mailbox provider and provider region pair, for example `gmail` in `NA` or `microsoft` in `EU`. The provider region is the regional grouping the receiving mail system reports for the recipient's provider. Pairing it with the provider tells apart a region label that several providers share. Use it to spot a deliverability problem isolated to one provider in one region. For a per-provider view without the region split, use the mailbox-provider breakdown.\n\nA provider region is only known once the receiving mail system reports an outcome, so this breakdown covers the delivery stage onward. Accepted, processed, and rejected counts and processing latency are not included. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` metric, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "mailbox-provider-regions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. `processed`, `rejected`, and `oob_bounces` are not part of this breakdown's rows, so they are not sortable here.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of provider-region rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that provider region's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"mailbox_provider\": \"gmail\",\n      \"mailbox_provider_region\": \"NA\",\n      \"delivery\": {\n        \"delivered\": 8290,\n        \"bounced\": 131,\n        \"complained\": 8,\n        \"deferred\": 4,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"delivery_rate\": 0.9844,\n        \"bounce_rate\": 0.0156,\n        \"complaint_rate\": 0.00096\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 31\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "be4e3dd2-fb67-8156-8f02-56e26494d6c9",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get statistics by mailbox provider region",
                "description": {
                  "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by mailbox provider and provider region pair, for example `gmail` in `NA` or `microsoft` in `EU`. The provider region is the regional grouping the receiving mail system reports for the recipient's provider. Pairing it with the provider tells apart a region label that several providers share. Use it to spot a deliverability problem isolated to one provider in one region. For a per-provider view without the region split, use the mailbox-provider breakdown.\n\nA provider region is only known once the receiving mail system reports an outcome, so this breakdown covers the delivery stage onward. Accepted, processed, and rejected counts and processing latency are not included. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` metric, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "mailbox-provider-regions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. `processed`, `rejected`, and `oob_bounces` are not part of this breakdown's rows, so they are not sortable here.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of provider-region rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that provider region's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"mailbox_provider\": \"gmail\",\n      \"mailbox_provider_region\": \"NA\",\n      \"delivery\": {\n        \"delivered\": 8290,\n        \"bounced\": 131,\n        \"complained\": 8,\n        \"deferred\": 4,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"delivery_rate\": 0.9844,\n        \"bounce_rate\": 0.0156,\n        \"complaint_rate\": 0.00096\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 31\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2ee68194-2d8b-8ebe-815c-92175b5098b1",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get statistics by mailbox provider region",
                "description": {
                  "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by mailbox provider and provider region pair, for example `gmail` in `NA` or `microsoft` in `EU`. The provider region is the regional grouping the receiving mail system reports for the recipient's provider. Pairing it with the provider tells apart a region label that several providers share. Use it to spot a deliverability problem isolated to one provider in one region. For a per-provider view without the region split, use the mailbox-provider breakdown.\n\nA provider region is only known once the receiving mail system reports an outcome, so this breakdown covers the delivery stage onward. Accepted, processed, and rejected counts and processing latency are not included. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` metric, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "mailbox-provider-regions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. `processed`, `rejected`, and `oob_bounces` are not part of this breakdown's rows, so they are not sortable here.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of provider-region rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that provider region's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"mailbox_provider\": \"gmail\",\n      \"mailbox_provider_region\": \"NA\",\n      \"delivery\": {\n        \"delivered\": 8290,\n        \"bounced\": 131,\n        \"complained\": 8,\n        \"deferred\": 4,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"delivery_rate\": 0.9844,\n        \"bounce_rate\": 0.0156,\n        \"complaint_rate\": 0.00096\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 31\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cc585716-a2ca-86bf-8d45-2342c30c3fed",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get statistics by mailbox provider region",
                "description": {
                  "content": "Returns delivery, engagement, and deliverability counts for the requested period, grouped by mailbox provider and provider region pair, for example `gmail` in `NA` or `microsoft` in `EU`. The provider region is the regional grouping the receiving mail system reports for the recipient's provider. Pairing it with the provider tells apart a region label that several providers share. Use it to spot a deliverability problem isolated to one provider in one region. For a per-provider view without the region split, use the mailbox-provider breakdown.\n\nA provider region is only known once the receiving mail system reports an outcome, so this breakdown covers the delivery stage onward. Accepted, processed, and rejected counts and processing latency are not included. Rows are computed against event time rather than send time.\n\nRows are ranked by the `sort` metric, `delivered` by default, and capped at the requested `limit` (50 by default, 200 at most). The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "mailbox-provider-regions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `delivered`. `processed`, `rejected`, and `oob_bounces` are not part of this breakdown's rows, so they are not sortable here.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of provider-region rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that provider region's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"mailbox_provider\": \"gmail\",\n      \"mailbox_provider_region\": \"NA\",\n      \"delivery\": {\n        \"delivered\": 8290,\n        \"bounced\": 131,\n        \"complained\": 8,\n        \"deferred\": 4,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"delivery_rate\": 0.9844,\n        \"bounce_rate\": 0.0156,\n        \"complaint_rate\": 0.00096\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 31\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "0cbb3c74-a187-846a-8439-c6341011b952",
          "name": "Get statistics by recipient domain",
          "request": {
            "name": "Get statistics by recipient domain",
            "description": {
              "content": "Returns delivery and engagement counts for the requested period, grouped by recipient mailbox domain: the part of each recipient address after the `@`, for example `gmail.com`, `yahoo.com`, or `outlook.com`. This is the finest-grained deliverability view. Where the mailbox-provider breakdown groups recipients into provider buckets such as `gmail` or `microsoft`, this keys on the exact destination domain. Use it to spot a delivery-rate dip or a complaint spike at a specific domain.\n\nRows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most). Rows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "stats",
                "recipient-domains"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": true,
                  "key": "category",
                  "value": "",
                  "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                },
                {
                  "disabled": true,
                  "key": "sort",
                  "value": "",
                  "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum number of recipient-domain rows to return, ranked by the `sort` field descending."
                },
                {
                  "disabled": false,
                  "key": "include_trend",
                  "value": "false",
                  "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that recipient domain's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                },
                {
                  "disabled": true,
                  "key": "trend_grain",
                  "value": "",
                  "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "6a170ff3-2e68-8f64-8a47-1d8dbebd4825",
              "name": "Per-recipient-domain breakdown for the requested period.",
              "originalRequest": {
                "name": "Get statistics by recipient domain",
                "description": {
                  "content": "Returns delivery and engagement counts for the requested period, grouped by recipient mailbox domain: the part of each recipient address after the `@`, for example `gmail.com`, `yahoo.com`, or `outlook.com`. This is the finest-grained deliverability view. Where the mailbox-provider breakdown groups recipients into provider buckets such as `gmail` or `microsoft`, this keys on the exact destination domain. Use it to spot a delivery-rate dip or a complaint spike at a specific domain.\n\nRows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most). Rows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "recipient-domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of recipient-domain rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that recipient domain's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"recipient_domain\": \"gmail.com\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 412\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9599f3b8-50e6-8331-84a6-c7f25637ceec",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get statistics by recipient domain",
                "description": {
                  "content": "Returns delivery and engagement counts for the requested period, grouped by recipient mailbox domain: the part of each recipient address after the `@`, for example `gmail.com`, `yahoo.com`, or `outlook.com`. This is the finest-grained deliverability view. Where the mailbox-provider breakdown groups recipients into provider buckets such as `gmail` or `microsoft`, this keys on the exact destination domain. Use it to spot a delivery-rate dip or a complaint spike at a specific domain.\n\nRows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most). Rows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "recipient-domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of recipient-domain rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that recipient domain's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"recipient_domain\": \"gmail.com\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 412\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b42f39b5-6464-88fc-82c1-24fd15f8c735",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get statistics by recipient domain",
                "description": {
                  "content": "Returns delivery and engagement counts for the requested period, grouped by recipient mailbox domain: the part of each recipient address after the `@`, for example `gmail.com`, `yahoo.com`, or `outlook.com`. This is the finest-grained deliverability view. Where the mailbox-provider breakdown groups recipients into provider buckets such as `gmail` or `microsoft`, this keys on the exact destination domain. Use it to spot a delivery-rate dip or a complaint spike at a specific domain.\n\nRows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most). Rows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "recipient-domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of recipient-domain rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that recipient domain's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"recipient_domain\": \"gmail.com\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 412\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ecac518b-11bf-88aa-8f0e-a1adab1d7eb9",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get statistics by recipient domain",
                "description": {
                  "content": "Returns delivery and engagement counts for the requested period, grouped by recipient mailbox domain: the part of each recipient address after the `@`, for example `gmail.com`, `yahoo.com`, or `outlook.com`. This is the finest-grained deliverability view. Where the mailbox-provider breakdown groups recipients into provider buckets such as `gmail` or `microsoft`, this keys on the exact destination domain. Use it to spot a delivery-rate dip or a complaint spike at a specific domain.\n\nRows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most). Rows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "recipient-domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of recipient-domain rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that recipient domain's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"recipient_domain\": \"gmail.com\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 412\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e215810a-e5a2-8a6a-8e53-5ff5fc44b1d2",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get statistics by recipient domain",
                "description": {
                  "content": "Returns delivery and engagement counts for the requested period, grouped by recipient mailbox domain: the part of each recipient address after the `@`, for example `gmail.com`, `yahoo.com`, or `outlook.com`. This is the finest-grained deliverability view. Where the mailbox-provider breakdown groups recipients into provider buckets such as `gmail` or `microsoft`, this keys on the exact destination domain. Use it to spot a delivery-rate dip or a complaint spike at a specific domain.\n\nRows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most). Rows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "recipient-domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of recipient-domain rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that recipient domain's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"recipient_domain\": \"gmail.com\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 412\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "881ae3c6-8560-8dcc-87cc-50e2d6fc82a8",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get statistics by recipient domain",
                "description": {
                  "content": "Returns delivery and engagement counts for the requested period, grouped by recipient mailbox domain: the part of each recipient address after the `@`, for example `gmail.com`, `yahoo.com`, or `outlook.com`. This is the finest-grained deliverability view. Where the mailbox-provider breakdown groups recipients into provider buckets such as `gmail` or `microsoft`, this keys on the exact destination domain. Use it to spot a delivery-rate dip or a complaint spike at a specific domain.\n\nRows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most). Rows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "recipient-domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of recipient-domain rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that recipient domain's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"recipient_domain\": \"gmail.com\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 412\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "bbd0d3b2-55ec-8417-8066-15bc0549d3dc",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get statistics by recipient domain",
                "description": {
                  "content": "Returns delivery and engagement counts for the requested period, grouped by recipient mailbox domain: the part of each recipient address after the `@`, for example `gmail.com`, `yahoo.com`, or `outlook.com`. This is the finest-grained deliverability view. Where the mailbox-provider breakdown groups recipients into provider buckets such as `gmail` or `microsoft`, this keys on the exact destination domain. Use it to spot a delivery-rate dip or a complaint spike at a specific domain.\n\nRows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most). Rows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "recipient-domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of recipient-domain rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that recipient domain's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"recipient_domain\": \"gmail.com\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 412\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "819aa057-e9f6-8624-8bc3-d52782e707dc",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get statistics by recipient domain",
                "description": {
                  "content": "Returns delivery and engagement counts for the requested period, grouped by recipient mailbox domain: the part of each recipient address after the `@`, for example `gmail.com`, `yahoo.com`, or `outlook.com`. This is the finest-grained deliverability view. Where the mailbox-provider breakdown groups recipients into provider buckets such as `gmail` or `microsoft`, this keys on the exact destination domain. Use it to spot a delivery-rate dip or a complaint spike at a specific domain.\n\nRows are ranked by the `sort` metric, `processed` by default, and capped at the requested `limit` (50 by default, 200 at most). Rows are computed against event time rather than send time, so engagement received during the period counts even for messages that were sent earlier.\n\nThe window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "recipient-domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). It defaults to 30 days before `to` when you leave it out. When `include_trend=true` and `trend_grain=hourly`, that default tightens to 29 days before `to` instead, so the defaulted window still fits inside the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response can be used. A row whose rate is undefined because its denominator is zero sorts last. It defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of recipient-domain rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also gets a `trend` array: a short per-bucket series showing that recipient domain's delivery and engagement rates over the window. This only works when `limit` is 50 or fewer and the window is at most 90 days for `trend_grain=daily` or 720 hours for `trend_grain=hourly`. Ask for more and you get a `422`. When you leave `from` out and use `trend_grain=hourly`, the default window tightens to 29 days before `to` (720 hours total), so a request built entirely from defaults always fits inside the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"recipient_domain\": \"gmail.com\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 412\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "4720faf5-1e35-8665-8618-ad6ed7c33838",
          "name": "Get statistics by template",
          "request": {
            "name": "Get statistics by template",
            "description": {
              "content": "Returns aggregate delivery and engagement counts grouped by the template each message was sent with, so a template's deliverability and engagement can be compared side by side. Attribution is by the template used at send time; only messages sent with a template appear here, so a workspace that has sent none returns an empty list rather than an error. Each row is keyed by the template ID (`emt_…`); a template deleted after sending still appears by its ID.\n\nRows are ranked by the `sort` metric (default `processed`) descending and capped at the requested `limit` (default 50, hard maximum 200). Rows are computed against event time (not send time), so engagement received during the period for messages sent earlier is included.\n\nThe maximum window is 365 days; requesting a longer range returns `422`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "stats",
                "templates"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to 29 days before `to`, keeping the defaulted window within the 720-hour trend cap."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": true,
                  "key": "category",
                  "value": "",
                  "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                },
                {
                  "disabled": true,
                  "key": "sort",
                  "value": "",
                  "description": "Metric to rank rows by, applied descending. Any count or rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `processed`.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum number of template rows to return, ranked by the `sort` field descending."
                },
                {
                  "disabled": false,
                  "key": "include_trend",
                  "value": "false",
                  "description": "When true, each row also has a `trend` array: a short per-bucket series of that template's delivery and engagement rates over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns `422`. When `from` is omitted and `trend_grain=hourly`, the default start tightens to 29 days before `to`, keeping the window inside 720 hours, so a request built entirely from defaults always fits the cap.\n"
                },
                {
                  "disabled": true,
                  "key": "trend_grain",
                  "value": "",
                  "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "7dc44b00-42ec-8287-83de-eaaa37a9f00a",
              "name": "Per-template breakdown for the requested period.",
              "originalRequest": {
                "name": "Get statistics by template",
                "description": {
                  "content": "Returns aggregate delivery and engagement counts grouped by the template each message was sent with, so a template's deliverability and engagement can be compared side by side. Attribution is by the template used at send time; only messages sent with a template appear here, so a workspace that has sent none returns an empty list rather than an error. Each row is keyed by the template ID (`emt_…`); a template deleted after sending still appears by its ID.\n\nRows are ranked by the `sort` metric (default `processed`) descending and capped at the requested `limit` (default 50, hard maximum 200). Rows are computed against event time (not send time), so engagement received during the period for messages sent earlier is included.\n\nThe maximum window is 365 days; requesting a longer range returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "templates"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to 29 days before `to`, keeping the defaulted window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of template rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also has a `trend` array: a short per-bucket series of that template's delivery and engagement rates over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns `422`. When `from` is omitted and `trend_grain=hourly`, the default start tightens to 29 days before `to`, keeping the window inside 720 hours, so a request built entirely from defaults always fits the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 42\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8e7c918f-d32c-8e51-86d2-3a3b47144e5e",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get statistics by template",
                "description": {
                  "content": "Returns aggregate delivery and engagement counts grouped by the template each message was sent with, so a template's deliverability and engagement can be compared side by side. Attribution is by the template used at send time; only messages sent with a template appear here, so a workspace that has sent none returns an empty list rather than an error. Each row is keyed by the template ID (`emt_…`); a template deleted after sending still appears by its ID.\n\nRows are ranked by the `sort` metric (default `processed`) descending and capped at the requested `limit` (default 50, hard maximum 200). Rows are computed against event time (not send time), so engagement received during the period for messages sent earlier is included.\n\nThe maximum window is 365 days; requesting a longer range returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "templates"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to 29 days before `to`, keeping the defaulted window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of template rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also has a `trend` array: a short per-bucket series of that template's delivery and engagement rates over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns `422`. When `from` is omitted and `trend_grain=hourly`, the default start tightens to 29 days before `to`, keeping the window inside 720 hours, so a request built entirely from defaults always fits the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 42\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a8a128c0-ce8e-810a-82bf-940af5f59843",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get statistics by template",
                "description": {
                  "content": "Returns aggregate delivery and engagement counts grouped by the template each message was sent with, so a template's deliverability and engagement can be compared side by side. Attribution is by the template used at send time; only messages sent with a template appear here, so a workspace that has sent none returns an empty list rather than an error. Each row is keyed by the template ID (`emt_…`); a template deleted after sending still appears by its ID.\n\nRows are ranked by the `sort` metric (default `processed`) descending and capped at the requested `limit` (default 50, hard maximum 200). Rows are computed against event time (not send time), so engagement received during the period for messages sent earlier is included.\n\nThe maximum window is 365 days; requesting a longer range returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "templates"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to 29 days before `to`, keeping the defaulted window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of template rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also has a `trend` array: a short per-bucket series of that template's delivery and engagement rates over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns `422`. When `from` is omitted and `trend_grain=hourly`, the default start tightens to 29 days before `to`, keeping the window inside 720 hours, so a request built entirely from defaults always fits the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 42\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9cca1212-03ff-8df4-85ac-b98c6b258f36",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get statistics by template",
                "description": {
                  "content": "Returns aggregate delivery and engagement counts grouped by the template each message was sent with, so a template's deliverability and engagement can be compared side by side. Attribution is by the template used at send time; only messages sent with a template appear here, so a workspace that has sent none returns an empty list rather than an error. Each row is keyed by the template ID (`emt_…`); a template deleted after sending still appears by its ID.\n\nRows are ranked by the `sort` metric (default `processed`) descending and capped at the requested `limit` (default 50, hard maximum 200). Rows are computed against event time (not send time), so engagement received during the period for messages sent earlier is included.\n\nThe maximum window is 365 days; requesting a longer range returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "templates"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to 29 days before `to`, keeping the defaulted window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of template rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also has a `trend` array: a short per-bucket series of that template's delivery and engagement rates over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns `422`. When `from` is omitted and `trend_grain=hourly`, the default start tightens to 29 days before `to`, keeping the window inside 720 hours, so a request built entirely from defaults always fits the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 42\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5927839b-7b68-82f3-89e1-d5b0ac20511d",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get statistics by template",
                "description": {
                  "content": "Returns aggregate delivery and engagement counts grouped by the template each message was sent with, so a template's deliverability and engagement can be compared side by side. Attribution is by the template used at send time; only messages sent with a template appear here, so a workspace that has sent none returns an empty list rather than an error. Each row is keyed by the template ID (`emt_…`); a template deleted after sending still appears by its ID.\n\nRows are ranked by the `sort` metric (default `processed`) descending and capped at the requested `limit` (default 50, hard maximum 200). Rows are computed against event time (not send time), so engagement received during the period for messages sent earlier is included.\n\nThe maximum window is 365 days; requesting a longer range returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "templates"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to 29 days before `to`, keeping the defaulted window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of template rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also has a `trend` array: a short per-bucket series of that template's delivery and engagement rates over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns `422`. When `from` is omitted and `trend_grain=hourly`, the default start tightens to 29 days before `to`, keeping the window inside 720 hours, so a request built entirely from defaults always fits the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 42\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "875b9d6e-15ef-818c-8a81-db5a70d3ffc3",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get statistics by template",
                "description": {
                  "content": "Returns aggregate delivery and engagement counts grouped by the template each message was sent with, so a template's deliverability and engagement can be compared side by side. Attribution is by the template used at send time; only messages sent with a template appear here, so a workspace that has sent none returns an empty list rather than an error. Each row is keyed by the template ID (`emt_…`); a template deleted after sending still appears by its ID.\n\nRows are ranked by the `sort` metric (default `processed`) descending and capped at the requested `limit` (default 50, hard maximum 200). Rows are computed against event time (not send time), so engagement received during the period for messages sent earlier is included.\n\nThe maximum window is 365 days; requesting a longer range returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "templates"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to 29 days before `to`, keeping the defaulted window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of template rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also has a `trend` array: a short per-bucket series of that template's delivery and engagement rates over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns `422`. When `from` is omitted and `trend_grain=hourly`, the default start tightens to 29 days before `to`, keeping the window inside 720 hours, so a request built entirely from defaults always fits the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 42\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8700b546-719f-806b-85ff-bf7cda4fd186",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get statistics by template",
                "description": {
                  "content": "Returns aggregate delivery and engagement counts grouped by the template each message was sent with, so a template's deliverability and engagement can be compared side by side. Attribution is by the template used at send time; only messages sent with a template appear here, so a workspace that has sent none returns an empty list rather than an error. Each row is keyed by the template ID (`emt_…`); a template deleted after sending still appears by its ID.\n\nRows are ranked by the `sort` metric (default `processed`) descending and capped at the requested `limit` (default 50, hard maximum 200). Rows are computed against event time (not send time), so engagement received during the period for messages sent earlier is included.\n\nThe maximum window is 365 days; requesting a longer range returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "templates"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to 29 days before `to`, keeping the defaulted window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of template rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also has a `trend` array: a short per-bucket series of that template's delivery and engagement rates over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns `422`. When `from` is omitted and `trend_grain=hourly`, the default start tightens to 29 days before `to`, keeping the window inside 720 hours, so a request built entirely from defaults always fits the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 42\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "468802cb-ba1f-8a1e-8cbb-d6f4ec0f3b85",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get statistics by template",
                "description": {
                  "content": "Returns aggregate delivery and engagement counts grouped by the template each message was sent with, so a template's deliverability and engagement can be compared side by side. Attribution is by the template used at send time; only messages sent with a template appear here, so a workspace that has sent none returns an empty list rather than an error. Each row is keyed by the template ID (`emt_…`); a template deleted after sending still appears by its ID.\n\nRows are ranked by the `sort` metric (default `processed`) descending and capped at the requested `limit` (default 50, hard maximum 200). Rows are computed against event time (not send time), so engagement received during the period for messages sent earlier is included.\n\nThe maximum window is 365 days; requesting a longer range returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "templates"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to 29 days before `to`, keeping the defaulted window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of template rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also has a `trend` array: a short per-bucket series of that template's delivery and engagement rates over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns `422`. When `from` is omitted and `trend_grain=hourly`, the default start tightens to 29 days before `to`, keeping the window inside 720 hours, so a request built entirely from defaults always fits the cap.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"template_id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-12\"\n        }\n      ]\n    }\n  ],\n  \"total\": 42\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "d28c0655-e798-8f87-8db4-91272b9458f2",
          "name": "Get engagement by location",
          "request": {
            "name": "Get engagement by location",
            "description": {
              "content": "Returns engagement counts (opens and clicks) for the requested period, grouped by the location they were recorded from. Use it to see where your audience engages, for example the top countries by unique opens. The reading location is only known from open and click events, so rows have engagement counts but no delivery counts or rates.\n\nUse `group_by` to choose the granularity: `country` (the default), `region`, or `city`. Each row has the location hierarchy down to the requested level, so a `city` grouping also reports that row's region and country. Rows are ranked by the `sort` metric, `unique_opens` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "stats",
                "locations"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": true,
                  "key": "category",
                  "value": "",
                  "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                },
                {
                  "disabled": false,
                  "key": "group_by",
                  "value": "country",
                  "description": "Location granularity for each row. `country` (default) groups by country; `region` groups by region within country; `city` groups by city within region. Each row reports the location hierarchy down to the chosen level.\n"
                },
                {
                  "disabled": true,
                  "key": "sort",
                  "value": "",
                  "description": "Metric to rank rows by, applied descending. It defaults to `unique_opens`. Only engagement counts are sortable. This breakdown has no rates.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum number of location rows to return, ranked by the `sort` field descending."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "bf1026a5-7cd3-8aed-80d2-fa81235990d0",
              "name": "Per-location engagement breakdown for the requested period.",
              "originalRequest": {
                "name": "Get engagement by location",
                "description": {
                  "content": "Returns engagement counts (opens and clicks) for the requested period, grouped by the location they were recorded from. Use it to see where your audience engages, for example the top countries by unique opens. The reading location is only known from open and click events, so rows have engagement counts but no delivery counts or rates.\n\nUse `group_by` to choose the granularity: `country` (the default), `region`, or `city`. Each row has the location hierarchy down to the requested level, so a `city` grouping also reports that row's region and country. Rows are ranked by the `sort` metric, `unique_opens` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "locations"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "group_by",
                      "value": "country",
                      "description": "Location granularity for each row. `country` (default) groups by country; `region` groups by region within country; `city` groups by city within region. Each row reports the location hierarchy down to the chosen level.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. It defaults to `unique_opens`. Only engagement counts are sortable. This breakdown has no rates.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of location rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"country\": \"US\",\n      \"region\": \"California\",\n      \"city\": \"San Francisco\",\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621\n      }\n    }\n  ],\n  \"total\": 86\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "55f772a2-1102-802b-87cd-65626bce05ca",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get engagement by location",
                "description": {
                  "content": "Returns engagement counts (opens and clicks) for the requested period, grouped by the location they were recorded from. Use it to see where your audience engages, for example the top countries by unique opens. The reading location is only known from open and click events, so rows have engagement counts but no delivery counts or rates.\n\nUse `group_by` to choose the granularity: `country` (the default), `region`, or `city`. Each row has the location hierarchy down to the requested level, so a `city` grouping also reports that row's region and country. Rows are ranked by the `sort` metric, `unique_opens` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "locations"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "group_by",
                      "value": "country",
                      "description": "Location granularity for each row. `country` (default) groups by country; `region` groups by region within country; `city` groups by city within region. Each row reports the location hierarchy down to the chosen level.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. It defaults to `unique_opens`. Only engagement counts are sortable. This breakdown has no rates.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of location rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"country\": \"US\",\n      \"region\": \"California\",\n      \"city\": \"San Francisco\",\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621\n      }\n    }\n  ],\n  \"total\": 86\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "442147bb-6266-8371-8d38-59b082dd6321",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get engagement by location",
                "description": {
                  "content": "Returns engagement counts (opens and clicks) for the requested period, grouped by the location they were recorded from. Use it to see where your audience engages, for example the top countries by unique opens. The reading location is only known from open and click events, so rows have engagement counts but no delivery counts or rates.\n\nUse `group_by` to choose the granularity: `country` (the default), `region`, or `city`. Each row has the location hierarchy down to the requested level, so a `city` grouping also reports that row's region and country. Rows are ranked by the `sort` metric, `unique_opens` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "locations"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "group_by",
                      "value": "country",
                      "description": "Location granularity for each row. `country` (default) groups by country; `region` groups by region within country; `city` groups by city within region. Each row reports the location hierarchy down to the chosen level.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. It defaults to `unique_opens`. Only engagement counts are sortable. This breakdown has no rates.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of location rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"country\": \"US\",\n      \"region\": \"California\",\n      \"city\": \"San Francisco\",\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621\n      }\n    }\n  ],\n  \"total\": 86\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4a3ce9d3-b6b2-866b-83ae-b5209b42c636",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get engagement by location",
                "description": {
                  "content": "Returns engagement counts (opens and clicks) for the requested period, grouped by the location they were recorded from. Use it to see where your audience engages, for example the top countries by unique opens. The reading location is only known from open and click events, so rows have engagement counts but no delivery counts or rates.\n\nUse `group_by` to choose the granularity: `country` (the default), `region`, or `city`. Each row has the location hierarchy down to the requested level, so a `city` grouping also reports that row's region and country. Rows are ranked by the `sort` metric, `unique_opens` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "locations"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "group_by",
                      "value": "country",
                      "description": "Location granularity for each row. `country` (default) groups by country; `region` groups by region within country; `city` groups by city within region. Each row reports the location hierarchy down to the chosen level.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. It defaults to `unique_opens`. Only engagement counts are sortable. This breakdown has no rates.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of location rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"country\": \"US\",\n      \"region\": \"California\",\n      \"city\": \"San Francisco\",\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621\n      }\n    }\n  ],\n  \"total\": 86\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "faa8863d-8b1e-8fb3-8368-689624ab2aa6",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get engagement by location",
                "description": {
                  "content": "Returns engagement counts (opens and clicks) for the requested period, grouped by the location they were recorded from. Use it to see where your audience engages, for example the top countries by unique opens. The reading location is only known from open and click events, so rows have engagement counts but no delivery counts or rates.\n\nUse `group_by` to choose the granularity: `country` (the default), `region`, or `city`. Each row has the location hierarchy down to the requested level, so a `city` grouping also reports that row's region and country. Rows are ranked by the `sort` metric, `unique_opens` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "locations"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "group_by",
                      "value": "country",
                      "description": "Location granularity for each row. `country` (default) groups by country; `region` groups by region within country; `city` groups by city within region. Each row reports the location hierarchy down to the chosen level.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. It defaults to `unique_opens`. Only engagement counts are sortable. This breakdown has no rates.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of location rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"country\": \"US\",\n      \"region\": \"California\",\n      \"city\": \"San Francisco\",\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621\n      }\n    }\n  ],\n  \"total\": 86\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7b6bc1f7-71e4-80d2-8cab-f9a8aab2ef50",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get engagement by location",
                "description": {
                  "content": "Returns engagement counts (opens and clicks) for the requested period, grouped by the location they were recorded from. Use it to see where your audience engages, for example the top countries by unique opens. The reading location is only known from open and click events, so rows have engagement counts but no delivery counts or rates.\n\nUse `group_by` to choose the granularity: `country` (the default), `region`, or `city`. Each row has the location hierarchy down to the requested level, so a `city` grouping also reports that row's region and country. Rows are ranked by the `sort` metric, `unique_opens` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "locations"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "group_by",
                      "value": "country",
                      "description": "Location granularity for each row. `country` (default) groups by country; `region` groups by region within country; `city` groups by city within region. Each row reports the location hierarchy down to the chosen level.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. It defaults to `unique_opens`. Only engagement counts are sortable. This breakdown has no rates.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of location rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"country\": \"US\",\n      \"region\": \"California\",\n      \"city\": \"San Francisco\",\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621\n      }\n    }\n  ],\n  \"total\": 86\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "83871cc4-3036-85d8-84a4-5a5d2e5c04ea",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get engagement by location",
                "description": {
                  "content": "Returns engagement counts (opens and clicks) for the requested period, grouped by the location they were recorded from. Use it to see where your audience engages, for example the top countries by unique opens. The reading location is only known from open and click events, so rows have engagement counts but no delivery counts or rates.\n\nUse `group_by` to choose the granularity: `country` (the default), `region`, or `city`. Each row has the location hierarchy down to the requested level, so a `city` grouping also reports that row's region and country. Rows are ranked by the `sort` metric, `unique_opens` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "locations"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "group_by",
                      "value": "country",
                      "description": "Location granularity for each row. `country` (default) groups by country; `region` groups by region within country; `city` groups by city within region. Each row reports the location hierarchy down to the chosen level.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. It defaults to `unique_opens`. Only engagement counts are sortable. This breakdown has no rates.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of location rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"country\": \"US\",\n      \"region\": \"California\",\n      \"city\": \"San Francisco\",\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621\n      }\n    }\n  ],\n  \"total\": 86\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ef4c9367-11e9-8f17-82e9-d29331e05a13",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get engagement by location",
                "description": {
                  "content": "Returns engagement counts (opens and clicks) for the requested period, grouped by the location they were recorded from. Use it to see where your audience engages, for example the top countries by unique opens. The reading location is only known from open and click events, so rows have engagement counts but no delivery counts or rates.\n\nUse `group_by` to choose the granularity: `country` (the default), `region`, or `city`. Each row has the location hierarchy down to the requested level, so a `city` grouping also reports that row's region and country. Rows are ranked by the `sort` metric, `unique_opens` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "locations"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "group_by",
                      "value": "country",
                      "description": "Location granularity for each row. `country` (default) groups by country; `region` groups by region within country; `city` groups by city within region. Each row reports the location hierarchy down to the chosen level.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. It defaults to `unique_opens`. Only engagement counts are sortable. This breakdown has no rates.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of location rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"country\": \"US\",\n      \"region\": \"California\",\n      \"city\": \"San Francisco\",\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621\n      }\n    }\n  ],\n  \"total\": 86\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "4953cb01-98cb-844c-894b-e12629197d3d",
          "name": "Get engagement by email client",
          "request": {
            "name": "Get engagement by email client",
            "description": {
              "content": "Returns engagement counts (opens and clicks) for the requested period, grouped by the email client, operating system, or device type they were recorded from. Use it for the classic view of opens by mail client, for example the share of opens from Apple Mail compared with Gmail and Outlook. The reading environment is only known from open and click events, so rows have engagement counts but no delivery counts or rates.\n\nUse `group_by` to choose the facet: `email_client` (the default), `os`, or `device_type`. Each row fills in the facet you chose and leaves the other two `null`. Rows are ranked by the `sort` metric, `unique_opens` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "stats",
                "clients"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": true,
                  "key": "category",
                  "value": "",
                  "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                },
                {
                  "disabled": false,
                  "key": "group_by",
                  "value": "email_client",
                  "description": "Which reading-environment facet to group rows by. `email_client` (default) groups by mail client; `os` groups by operating system; `device_type` groups by device type. Each row populates the chosen facet and leaves the other two `null`.\n"
                },
                {
                  "disabled": true,
                  "key": "sort",
                  "value": "",
                  "description": "Metric to rank rows by, applied descending. It defaults to `unique_opens`. Only engagement counts are sortable. This breakdown has no rates.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum number of client rows to return, ranked by the `sort` field descending."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "0a220831-c79c-8194-806c-bfaa53e63d3e",
              "name": "Per-client engagement breakdown for the requested period.",
              "originalRequest": {
                "name": "Get engagement by email client",
                "description": {
                  "content": "Returns engagement counts (opens and clicks) for the requested period, grouped by the email client, operating system, or device type they were recorded from. Use it for the classic view of opens by mail client, for example the share of opens from Apple Mail compared with Gmail and Outlook. The reading environment is only known from open and click events, so rows have engagement counts but no delivery counts or rates.\n\nUse `group_by` to choose the facet: `email_client` (the default), `os`, or `device_type`. Each row fills in the facet you chose and leaves the other two `null`. Rows are ranked by the `sort` metric, `unique_opens` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "clients"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "group_by",
                      "value": "email_client",
                      "description": "Which reading-environment facet to group rows by. `email_client` (default) groups by mail client; `os` groups by operating system; `device_type` groups by device type. Each row populates the chosen facet and leaves the other two `null`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. It defaults to `unique_opens`. Only engagement counts are sortable. This breakdown has no rates.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of client rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"email_client\": \"Apple Mail\",\n      \"os\": \"iOS\",\n      \"device_type\": \"mobile\",\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621\n      }\n    }\n  ],\n  \"total\": 9\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0f7e1771-caf3-8e93-86c8-2ed9d3e73045",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get engagement by email client",
                "description": {
                  "content": "Returns engagement counts (opens and clicks) for the requested period, grouped by the email client, operating system, or device type they were recorded from. Use it for the classic view of opens by mail client, for example the share of opens from Apple Mail compared with Gmail and Outlook. The reading environment is only known from open and click events, so rows have engagement counts but no delivery counts or rates.\n\nUse `group_by` to choose the facet: `email_client` (the default), `os`, or `device_type`. Each row fills in the facet you chose and leaves the other two `null`. Rows are ranked by the `sort` metric, `unique_opens` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "clients"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "group_by",
                      "value": "email_client",
                      "description": "Which reading-environment facet to group rows by. `email_client` (default) groups by mail client; `os` groups by operating system; `device_type` groups by device type. Each row populates the chosen facet and leaves the other two `null`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. It defaults to `unique_opens`. Only engagement counts are sortable. This breakdown has no rates.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of client rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"email_client\": \"Apple Mail\",\n      \"os\": \"iOS\",\n      \"device_type\": \"mobile\",\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621\n      }\n    }\n  ],\n  \"total\": 9\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8f9da939-ba7b-83c9-8533-b97112d874ee",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get engagement by email client",
                "description": {
                  "content": "Returns engagement counts (opens and clicks) for the requested period, grouped by the email client, operating system, or device type they were recorded from. Use it for the classic view of opens by mail client, for example the share of opens from Apple Mail compared with Gmail and Outlook. The reading environment is only known from open and click events, so rows have engagement counts but no delivery counts or rates.\n\nUse `group_by` to choose the facet: `email_client` (the default), `os`, or `device_type`. Each row fills in the facet you chose and leaves the other two `null`. Rows are ranked by the `sort` metric, `unique_opens` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "clients"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "group_by",
                      "value": "email_client",
                      "description": "Which reading-environment facet to group rows by. `email_client` (default) groups by mail client; `os` groups by operating system; `device_type` groups by device type. Each row populates the chosen facet and leaves the other two `null`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. It defaults to `unique_opens`. Only engagement counts are sortable. This breakdown has no rates.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of client rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"email_client\": \"Apple Mail\",\n      \"os\": \"iOS\",\n      \"device_type\": \"mobile\",\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621\n      }\n    }\n  ],\n  \"total\": 9\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "83ad1ba8-6443-8000-8431-fc94befaee34",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get engagement by email client",
                "description": {
                  "content": "Returns engagement counts (opens and clicks) for the requested period, grouped by the email client, operating system, or device type they were recorded from. Use it for the classic view of opens by mail client, for example the share of opens from Apple Mail compared with Gmail and Outlook. The reading environment is only known from open and click events, so rows have engagement counts but no delivery counts or rates.\n\nUse `group_by` to choose the facet: `email_client` (the default), `os`, or `device_type`. Each row fills in the facet you chose and leaves the other two `null`. Rows are ranked by the `sort` metric, `unique_opens` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "clients"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "group_by",
                      "value": "email_client",
                      "description": "Which reading-environment facet to group rows by. `email_client` (default) groups by mail client; `os` groups by operating system; `device_type` groups by device type. Each row populates the chosen facet and leaves the other two `null`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. It defaults to `unique_opens`. Only engagement counts are sortable. This breakdown has no rates.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of client rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"email_client\": \"Apple Mail\",\n      \"os\": \"iOS\",\n      \"device_type\": \"mobile\",\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621\n      }\n    }\n  ],\n  \"total\": 9\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9d7bfb33-56a9-845e-8c68-c0ee6eca204f",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get engagement by email client",
                "description": {
                  "content": "Returns engagement counts (opens and clicks) for the requested period, grouped by the email client, operating system, or device type they were recorded from. Use it for the classic view of opens by mail client, for example the share of opens from Apple Mail compared with Gmail and Outlook. The reading environment is only known from open and click events, so rows have engagement counts but no delivery counts or rates.\n\nUse `group_by` to choose the facet: `email_client` (the default), `os`, or `device_type`. Each row fills in the facet you chose and leaves the other two `null`. Rows are ranked by the `sort` metric, `unique_opens` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "clients"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "group_by",
                      "value": "email_client",
                      "description": "Which reading-environment facet to group rows by. `email_client` (default) groups by mail client; `os` groups by operating system; `device_type` groups by device type. Each row populates the chosen facet and leaves the other two `null`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. It defaults to `unique_opens`. Only engagement counts are sortable. This breakdown has no rates.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of client rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"email_client\": \"Apple Mail\",\n      \"os\": \"iOS\",\n      \"device_type\": \"mobile\",\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621\n      }\n    }\n  ],\n  \"total\": 9\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a4f7a08f-9191-8659-8104-4f2021291ee0",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get engagement by email client",
                "description": {
                  "content": "Returns engagement counts (opens and clicks) for the requested period, grouped by the email client, operating system, or device type they were recorded from. Use it for the classic view of opens by mail client, for example the share of opens from Apple Mail compared with Gmail and Outlook. The reading environment is only known from open and click events, so rows have engagement counts but no delivery counts or rates.\n\nUse `group_by` to choose the facet: `email_client` (the default), `os`, or `device_type`. Each row fills in the facet you chose and leaves the other two `null`. Rows are ranked by the `sort` metric, `unique_opens` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "clients"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "group_by",
                      "value": "email_client",
                      "description": "Which reading-environment facet to group rows by. `email_client` (default) groups by mail client; `os` groups by operating system; `device_type` groups by device type. Each row populates the chosen facet and leaves the other two `null`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. It defaults to `unique_opens`. Only engagement counts are sortable. This breakdown has no rates.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of client rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"email_client\": \"Apple Mail\",\n      \"os\": \"iOS\",\n      \"device_type\": \"mobile\",\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621\n      }\n    }\n  ],\n  \"total\": 9\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3bb38e49-20d9-85c3-833a-1168867d4f45",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get engagement by email client",
                "description": {
                  "content": "Returns engagement counts (opens and clicks) for the requested period, grouped by the email client, operating system, or device type they were recorded from. Use it for the classic view of opens by mail client, for example the share of opens from Apple Mail compared with Gmail and Outlook. The reading environment is only known from open and click events, so rows have engagement counts but no delivery counts or rates.\n\nUse `group_by` to choose the facet: `email_client` (the default), `os`, or `device_type`. Each row fills in the facet you chose and leaves the other two `null`. Rows are ranked by the `sort` metric, `unique_opens` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "clients"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "group_by",
                      "value": "email_client",
                      "description": "Which reading-environment facet to group rows by. `email_client` (default) groups by mail client; `os` groups by operating system; `device_type` groups by device type. Each row populates the chosen facet and leaves the other two `null`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. It defaults to `unique_opens`. Only engagement counts are sortable. This breakdown has no rates.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of client rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"email_client\": \"Apple Mail\",\n      \"os\": \"iOS\",\n      \"device_type\": \"mobile\",\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621\n      }\n    }\n  ],\n  \"total\": 9\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c7a62f22-1946-86ae-848c-31a08401c4d2",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get engagement by email client",
                "description": {
                  "content": "Returns engagement counts (opens and clicks) for the requested period, grouped by the email client, operating system, or device type they were recorded from. Use it for the classic view of opens by mail client, for example the share of opens from Apple Mail compared with Gmail and Outlook. The reading environment is only known from open and click events, so rows have engagement counts but no delivery counts or rates.\n\nUse `group_by` to choose the facet: `email_client` (the default), `os`, or `device_type`. Each row fills in the facet you chose and leaves the other two `null`. Rows are ranked by the `sort` metric, `unique_opens` by default, and capped at the requested `limit` (50 by default, 200 at most).\n\nRows are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "clients"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints; supplying it returns `422`. To compare categories use `GET /v1/email/stats/categories`; the summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "group_by",
                      "value": "email_client",
                      "description": "Which reading-environment facet to group rows by. `email_client` (default) groups by mail client; `os` groups by operating system; `device_type` groups by device type. Each row populates the chosen facet and leaves the other two `null`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. It defaults to `unique_opens`. Only engagement counts are sortable. This breakdown has no rates.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of client rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"email_client\": \"Apple Mail\",\n      \"os\": \"iOS\",\n      \"device_type\": \"mobile\",\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621\n      }\n    }\n  ],\n  \"total\": 9\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "41facfc4-f7e6-8ab0-89a7-3585ad0609ff",
          "name": "Get bounces by SMTP error code",
          "request": {
            "name": "Get bounces by SMTP error code",
            "description": {
              "content": "Returns bounce counts for the requested period, grouped by the SMTP error code the receiving mail server returned. It answers the question of which SMTP responses are driving your bounces. Each row reports how many recipients bounced with that code, plus the hard, soft, admin, block, and undetermined split for that code.\n\nThis failure-only breakdown omits delivered, open, click, and rate fields because bounce codes occur only on bounce events.\n\nRows are ranked by the `sort` metric, `bounced` by default, and capped at the requested `limit` (50 by default, 200 at most). They are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "stats",
                "bounce-codes"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": true,
                  "key": "category",
                  "value": "",
                  "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                },
                {
                  "disabled": false,
                  "key": "sort",
                  "value": "bounced",
                  "description": "Metric to rank rows by, applied descending. It defaults to `bounced`. Only the bounce counts are sortable here, because this breakdown has no rate fields.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum number of bounce-code rows to return, ranked by the `sort` field descending."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "d7f2a212-1275-898c-8b17-96bcedd4d5c2",
              "name": "Per-SMTP-code bounce breakdown for the requested period.",
              "originalRequest": {
                "name": "Get bounces by SMTP error code",
                "description": {
                  "content": "Returns bounce counts for the requested period, grouped by the SMTP error code the receiving mail server returned. It answers the question of which SMTP responses are driving your bounces. Each row reports how many recipients bounced with that code, plus the hard, soft, admin, block, and undetermined split for that code.\n\nThis failure-only breakdown omits delivered, open, click, and rate fields because bounce codes occur only on bounce events.\n\nRows are ranked by the `sort` metric, `bounced` by default, and capped at the requested `limit` (50 by default, 200 at most). They are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "bounce-codes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "bounced",
                      "description": "Metric to rank rows by, applied descending. It defaults to `bounced`. Only the bounce counts are sortable here, because this breakdown has no rate fields.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of bounce-code rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"smtp_error_code\": \"5.1.1\",\n      \"bounced\": 1240,\n      \"bounces\": {\n        \"hard\": 42,\n        \"soft\": 48,\n        \"admin\": 4,\n        \"block\": 6,\n        \"undetermined\": 1\n      }\n    }\n  ],\n  \"total\": 17\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "90b20f53-2e82-8aa4-8f7f-558b7286c029",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get bounces by SMTP error code",
                "description": {
                  "content": "Returns bounce counts for the requested period, grouped by the SMTP error code the receiving mail server returned. It answers the question of which SMTP responses are driving your bounces. Each row reports how many recipients bounced with that code, plus the hard, soft, admin, block, and undetermined split for that code.\n\nThis failure-only breakdown omits delivered, open, click, and rate fields because bounce codes occur only on bounce events.\n\nRows are ranked by the `sort` metric, `bounced` by default, and capped at the requested `limit` (50 by default, 200 at most). They are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "bounce-codes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "bounced",
                      "description": "Metric to rank rows by, applied descending. It defaults to `bounced`. Only the bounce counts are sortable here, because this breakdown has no rate fields.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of bounce-code rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"smtp_error_code\": \"5.1.1\",\n      \"bounced\": 1240,\n      \"bounces\": {\n        \"hard\": 42,\n        \"soft\": 48,\n        \"admin\": 4,\n        \"block\": 6,\n        \"undetermined\": 1\n      }\n    }\n  ],\n  \"total\": 17\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "90089569-90f7-8f46-852b-30be2a4cafa3",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get bounces by SMTP error code",
                "description": {
                  "content": "Returns bounce counts for the requested period, grouped by the SMTP error code the receiving mail server returned. It answers the question of which SMTP responses are driving your bounces. Each row reports how many recipients bounced with that code, plus the hard, soft, admin, block, and undetermined split for that code.\n\nThis failure-only breakdown omits delivered, open, click, and rate fields because bounce codes occur only on bounce events.\n\nRows are ranked by the `sort` metric, `bounced` by default, and capped at the requested `limit` (50 by default, 200 at most). They are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "bounce-codes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "bounced",
                      "description": "Metric to rank rows by, applied descending. It defaults to `bounced`. Only the bounce counts are sortable here, because this breakdown has no rate fields.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of bounce-code rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"smtp_error_code\": \"5.1.1\",\n      \"bounced\": 1240,\n      \"bounces\": {\n        \"hard\": 42,\n        \"soft\": 48,\n        \"admin\": 4,\n        \"block\": 6,\n        \"undetermined\": 1\n      }\n    }\n  ],\n  \"total\": 17\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7dfe0e7a-1de7-87c7-8f1c-121c225d0c3b",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get bounces by SMTP error code",
                "description": {
                  "content": "Returns bounce counts for the requested period, grouped by the SMTP error code the receiving mail server returned. It answers the question of which SMTP responses are driving your bounces. Each row reports how many recipients bounced with that code, plus the hard, soft, admin, block, and undetermined split for that code.\n\nThis failure-only breakdown omits delivered, open, click, and rate fields because bounce codes occur only on bounce events.\n\nRows are ranked by the `sort` metric, `bounced` by default, and capped at the requested `limit` (50 by default, 200 at most). They are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "bounce-codes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "bounced",
                      "description": "Metric to rank rows by, applied descending. It defaults to `bounced`. Only the bounce counts are sortable here, because this breakdown has no rate fields.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of bounce-code rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"smtp_error_code\": \"5.1.1\",\n      \"bounced\": 1240,\n      \"bounces\": {\n        \"hard\": 42,\n        \"soft\": 48,\n        \"admin\": 4,\n        \"block\": 6,\n        \"undetermined\": 1\n      }\n    }\n  ],\n  \"total\": 17\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "699be035-0001-8325-83bb-0d71ff66d474",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get bounces by SMTP error code",
                "description": {
                  "content": "Returns bounce counts for the requested period, grouped by the SMTP error code the receiving mail server returned. It answers the question of which SMTP responses are driving your bounces. Each row reports how many recipients bounced with that code, plus the hard, soft, admin, block, and undetermined split for that code.\n\nThis failure-only breakdown omits delivered, open, click, and rate fields because bounce codes occur only on bounce events.\n\nRows are ranked by the `sort` metric, `bounced` by default, and capped at the requested `limit` (50 by default, 200 at most). They are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "bounce-codes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "bounced",
                      "description": "Metric to rank rows by, applied descending. It defaults to `bounced`. Only the bounce counts are sortable here, because this breakdown has no rate fields.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of bounce-code rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"smtp_error_code\": \"5.1.1\",\n      \"bounced\": 1240,\n      \"bounces\": {\n        \"hard\": 42,\n        \"soft\": 48,\n        \"admin\": 4,\n        \"block\": 6,\n        \"undetermined\": 1\n      }\n    }\n  ],\n  \"total\": 17\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "040f14d5-c078-814b-8780-be34a106da57",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get bounces by SMTP error code",
                "description": {
                  "content": "Returns bounce counts for the requested period, grouped by the SMTP error code the receiving mail server returned. It answers the question of which SMTP responses are driving your bounces. Each row reports how many recipients bounced with that code, plus the hard, soft, admin, block, and undetermined split for that code.\n\nThis failure-only breakdown omits delivered, open, click, and rate fields because bounce codes occur only on bounce events.\n\nRows are ranked by the `sort` metric, `bounced` by default, and capped at the requested `limit` (50 by default, 200 at most). They are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "bounce-codes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "bounced",
                      "description": "Metric to rank rows by, applied descending. It defaults to `bounced`. Only the bounce counts are sortable here, because this breakdown has no rate fields.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of bounce-code rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"smtp_error_code\": \"5.1.1\",\n      \"bounced\": 1240,\n      \"bounces\": {\n        \"hard\": 42,\n        \"soft\": 48,\n        \"admin\": 4,\n        \"block\": 6,\n        \"undetermined\": 1\n      }\n    }\n  ],\n  \"total\": 17\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "60b2af9f-77d2-80bd-84ef-55394a2e6a7a",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get bounces by SMTP error code",
                "description": {
                  "content": "Returns bounce counts for the requested period, grouped by the SMTP error code the receiving mail server returned. It answers the question of which SMTP responses are driving your bounces. Each row reports how many recipients bounced with that code, plus the hard, soft, admin, block, and undetermined split for that code.\n\nThis failure-only breakdown omits delivered, open, click, and rate fields because bounce codes occur only on bounce events.\n\nRows are ranked by the `sort` metric, `bounced` by default, and capped at the requested `limit` (50 by default, 200 at most). They are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "bounce-codes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "bounced",
                      "description": "Metric to rank rows by, applied descending. It defaults to `bounced`. Only the bounce counts are sortable here, because this breakdown has no rate fields.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of bounce-code rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"smtp_error_code\": \"5.1.1\",\n      \"bounced\": 1240,\n      \"bounces\": {\n        \"hard\": 42,\n        \"soft\": 48,\n        \"admin\": 4,\n        \"block\": 6,\n        \"undetermined\": 1\n      }\n    }\n  ],\n  \"total\": 17\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "65822d89-fe2b-80fd-8152-23b38e5ec688",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get bounces by SMTP error code",
                "description": {
                  "content": "Returns bounce counts for the requested period, grouped by the SMTP error code the receiving mail server returned. It answers the question of which SMTP responses are driving your bounces. Each row reports how many recipients bounced with that code, plus the hard, soft, admin, block, and undetermined split for that code.\n\nThis failure-only breakdown omits delivered, open, click, and rate fields because bounce codes occur only on bounce events.\n\nRows are ranked by the `sort` metric, `bounced` by default, and capped at the requested `limit` (50 by default, 200 at most). They are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "bounce-codes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "bounced",
                      "description": "Metric to rank rows by, applied descending. It defaults to `bounced`. Only the bounce counts are sortable here, because this breakdown has no rate fields.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of bounce-code rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"smtp_error_code\": \"5.1.1\",\n      \"bounced\": 1240,\n      \"bounces\": {\n        \"hard\": 42,\n        \"soft\": 48,\n        \"admin\": 4,\n        \"block\": 6,\n        \"undetermined\": 1\n      }\n    }\n  ],\n  \"total\": 17\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "8a966848-c1d8-833d-8e24-35b349ff670e",
          "name": "Get complaints by type",
          "request": {
            "name": "Get complaints by type",
            "description": {
              "content": "Returns spam-complaint counts for the requested period, grouped by the feedback-loop complaint type the mailbox provider reported, for example `abuse`, `fraud`, or `virus`. Use it to see what kind of complaints your mail attracts.\n\nThis breakdown only covers the complaint side. Each row has the complained count for one type and nothing else, because a complaint type is only ever recorded on a spam-complaint event.\n\nRows are ranked by `complained` descending, and capped at the requested `limit` (default 50, hard maximum 200). They are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "stats",
                "complaint-types"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": true,
                  "key": "category",
                  "value": "",
                  "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                },
                {
                  "disabled": false,
                  "key": "sort",
                  "value": "complained",
                  "description": "Metric to rank rows by, applied descending. It defaults to `complained`, the only sortable metric for this breakdown.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum number of complaint-type rows to return, ranked by `complained` descending."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "23139f4f-7a12-827d-83fb-8fa6f60969b9",
              "name": "Per-complaint-type breakdown for the requested period.",
              "originalRequest": {
                "name": "Get complaints by type",
                "description": {
                  "content": "Returns spam-complaint counts for the requested period, grouped by the feedback-loop complaint type the mailbox provider reported, for example `abuse`, `fraud`, or `virus`. Use it to see what kind of complaints your mail attracts.\n\nThis breakdown only covers the complaint side. Each row has the complained count for one type and nothing else, because a complaint type is only ever recorded on a spam-complaint event.\n\nRows are ranked by `complained` descending, and capped at the requested `limit` (default 50, hard maximum 200). They are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "complaint-types"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "complained",
                      "description": "Metric to rank rows by, applied descending. It defaults to `complained`, the only sortable metric for this breakdown.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of complaint-type rows to return, ranked by `complained` descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"feedback_type\": \"abuse\",\n      \"complained\": 47\n    }\n  ],\n  \"total\": 4\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7399e065-6aa2-8c57-809c-fa8af2944917",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get complaints by type",
                "description": {
                  "content": "Returns spam-complaint counts for the requested period, grouped by the feedback-loop complaint type the mailbox provider reported, for example `abuse`, `fraud`, or `virus`. Use it to see what kind of complaints your mail attracts.\n\nThis breakdown only covers the complaint side. Each row has the complained count for one type and nothing else, because a complaint type is only ever recorded on a spam-complaint event.\n\nRows are ranked by `complained` descending, and capped at the requested `limit` (default 50, hard maximum 200). They are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "complaint-types"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "complained",
                      "description": "Metric to rank rows by, applied descending. It defaults to `complained`, the only sortable metric for this breakdown.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of complaint-type rows to return, ranked by `complained` descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"feedback_type\": \"abuse\",\n      \"complained\": 47\n    }\n  ],\n  \"total\": 4\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "63952e96-4958-8029-863f-5929541c8e46",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get complaints by type",
                "description": {
                  "content": "Returns spam-complaint counts for the requested period, grouped by the feedback-loop complaint type the mailbox provider reported, for example `abuse`, `fraud`, or `virus`. Use it to see what kind of complaints your mail attracts.\n\nThis breakdown only covers the complaint side. Each row has the complained count for one type and nothing else, because a complaint type is only ever recorded on a spam-complaint event.\n\nRows are ranked by `complained` descending, and capped at the requested `limit` (default 50, hard maximum 200). They are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "complaint-types"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "complained",
                      "description": "Metric to rank rows by, applied descending. It defaults to `complained`, the only sortable metric for this breakdown.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of complaint-type rows to return, ranked by `complained` descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"feedback_type\": \"abuse\",\n      \"complained\": 47\n    }\n  ],\n  \"total\": 4\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c2db4269-58a6-8503-8949-efbdc0e4ffde",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get complaints by type",
                "description": {
                  "content": "Returns spam-complaint counts for the requested period, grouped by the feedback-loop complaint type the mailbox provider reported, for example `abuse`, `fraud`, or `virus`. Use it to see what kind of complaints your mail attracts.\n\nThis breakdown only covers the complaint side. Each row has the complained count for one type and nothing else, because a complaint type is only ever recorded on a spam-complaint event.\n\nRows are ranked by `complained` descending, and capped at the requested `limit` (default 50, hard maximum 200). They are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "complaint-types"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "complained",
                      "description": "Metric to rank rows by, applied descending. It defaults to `complained`, the only sortable metric for this breakdown.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of complaint-type rows to return, ranked by `complained` descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"feedback_type\": \"abuse\",\n      \"complained\": 47\n    }\n  ],\n  \"total\": 4\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "02d19114-7dbe-83a0-85a6-25f255cb74d8",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get complaints by type",
                "description": {
                  "content": "Returns spam-complaint counts for the requested period, grouped by the feedback-loop complaint type the mailbox provider reported, for example `abuse`, `fraud`, or `virus`. Use it to see what kind of complaints your mail attracts.\n\nThis breakdown only covers the complaint side. Each row has the complained count for one type and nothing else, because a complaint type is only ever recorded on a spam-complaint event.\n\nRows are ranked by `complained` descending, and capped at the requested `limit` (default 50, hard maximum 200). They are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "complaint-types"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "complained",
                      "description": "Metric to rank rows by, applied descending. It defaults to `complained`, the only sortable metric for this breakdown.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of complaint-type rows to return, ranked by `complained` descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"feedback_type\": \"abuse\",\n      \"complained\": 47\n    }\n  ],\n  \"total\": 4\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5de8efe1-1dcb-8668-810a-e1f785e0794d",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get complaints by type",
                "description": {
                  "content": "Returns spam-complaint counts for the requested period, grouped by the feedback-loop complaint type the mailbox provider reported, for example `abuse`, `fraud`, or `virus`. Use it to see what kind of complaints your mail attracts.\n\nThis breakdown only covers the complaint side. Each row has the complained count for one type and nothing else, because a complaint type is only ever recorded on a spam-complaint event.\n\nRows are ranked by `complained` descending, and capped at the requested `limit` (default 50, hard maximum 200). They are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "complaint-types"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "complained",
                      "description": "Metric to rank rows by, applied descending. It defaults to `complained`, the only sortable metric for this breakdown.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of complaint-type rows to return, ranked by `complained` descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"feedback_type\": \"abuse\",\n      \"complained\": 47\n    }\n  ],\n  \"total\": 4\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "325f4361-ef41-89e5-8bbf-7936e243b232",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get complaints by type",
                "description": {
                  "content": "Returns spam-complaint counts for the requested period, grouped by the feedback-loop complaint type the mailbox provider reported, for example `abuse`, `fraud`, or `virus`. Use it to see what kind of complaints your mail attracts.\n\nThis breakdown only covers the complaint side. Each row has the complained count for one type and nothing else, because a complaint type is only ever recorded on a spam-complaint event.\n\nRows are ranked by `complained` descending, and capped at the requested `limit` (default 50, hard maximum 200). They are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "complaint-types"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "complained",
                      "description": "Metric to rank rows by, applied descending. It defaults to `complained`, the only sortable metric for this breakdown.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of complaint-type rows to return, ranked by `complained` descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"feedback_type\": \"abuse\",\n      \"complained\": 47\n    }\n  ],\n  \"total\": 4\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "702fe316-907b-8de2-8c4f-6c1bb23803b7",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get complaints by type",
                "description": {
                  "content": "Returns spam-complaint counts for the requested period, grouped by the feedback-loop complaint type the mailbox provider reported, for example `abuse`, `fraud`, or `virus`. Use it to see what kind of complaints your mail attracts.\n\nThis breakdown only covers the complaint side. Each row has the complained count for one type and nothing else, because a complaint type is only ever recorded on a spam-complaint event.\n\nRows are ranked by `complained` descending, and capped at the requested `limit` (default 50, hard maximum 200). They are computed against event time rather than send time. The window can span at most 365 days. Ask for more and you get a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "complaint-types"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "complained",
                      "description": "Metric to rank rows by, applied descending. It defaults to `complained`, the only sortable metric for this breakdown.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of complaint-type rows to return, ranked by `complained` descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"feedback_type\": \"abuse\",\n      \"complained\": 47\n    }\n  ],\n  \"total\": 4\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "5e40671d-e5ab-81f0-8c02-f12c1579b81f",
          "name": "Get statistics by broadcast",
          "request": {
            "name": "Get statistics by broadcast",
            "description": {
              "content": "Returns aggregate delivery and engagement counts grouped by broadcast for the requested period, so each broadcast's deliverability and engagement can be compared side by side. Only messages sent as part of a broadcast appear here. One-off and transactional sends are not included, so a workspace that has not sent broadcasts returns an empty list rather than an error.\n\nRows are ranked by the `sort` metric (default `processed`) descending and capped at the requested `limit` (default 50, hard maximum 200). Rows are computed against event time (not send time), so engagement received during the period for messages sent earlier is included.\n\nThe maximum window is 365 days. Requesting a longer range returns a `422`. This breakdown is computed from per-message activity retained for 30 days, so it reflects roughly the last 30 days of activity even when the requested window reaches further back.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "stats",
                "broadcasts"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive) in `YYYY-MM-DD`, UTC. Defaults to 30 days before `to` when omitted."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive) in `YYYY-MM-DD`, UTC. Defaults to today (UTC) when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": true,
                  "key": "category",
                  "value": "",
                  "description": "Not supported on breakdown endpoints. Supplying it returns a `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                },
                {
                  "disabled": true,
                  "key": "sort",
                  "value": "",
                  "description": "Metric to rank rows by, applied descending. Any count or rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `processed`.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum number of broadcast rows to return, ranked by the `sort` field descending."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "d89376fb-266b-8f9f-8386-bd3ab0a3f13f",
              "name": "Per-broadcast breakdown for the requested period.",
              "originalRequest": {
                "name": "Get statistics by broadcast",
                "description": {
                  "content": "Returns aggregate delivery and engagement counts grouped by broadcast for the requested period, so each broadcast's deliverability and engagement can be compared side by side. Only messages sent as part of a broadcast appear here. One-off and transactional sends are not included, so a workspace that has not sent broadcasts returns an empty list rather than an error.\n\nRows are ranked by the `sort` metric (default `processed`) descending and capped at the requested `limit` (default 50, hard maximum 200). Rows are computed against event time (not send time), so engagement received during the period for messages sent earlier is included.\n\nThe maximum window is 365 days. Requesting a longer range returns a `422`. This breakdown is computed from per-message activity retained for 30 days, so it reflects roughly the last 30 days of activity even when the requested window reaches further back.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "broadcasts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, UTC. Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, UTC. Defaults to today (UTC) when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns a `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of broadcast rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"broadcast_id\": \"eb_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      }\n    }\n  ],\n  \"total\": 57\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "42f71d55-9cd8-8167-8b4a-72af83491c27",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get statistics by broadcast",
                "description": {
                  "content": "Returns aggregate delivery and engagement counts grouped by broadcast for the requested period, so each broadcast's deliverability and engagement can be compared side by side. Only messages sent as part of a broadcast appear here. One-off and transactional sends are not included, so a workspace that has not sent broadcasts returns an empty list rather than an error.\n\nRows are ranked by the `sort` metric (default `processed`) descending and capped at the requested `limit` (default 50, hard maximum 200). Rows are computed against event time (not send time), so engagement received during the period for messages sent earlier is included.\n\nThe maximum window is 365 days. Requesting a longer range returns a `422`. This breakdown is computed from per-message activity retained for 30 days, so it reflects roughly the last 30 days of activity even when the requested window reaches further back.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "broadcasts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, UTC. Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, UTC. Defaults to today (UTC) when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns a `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of broadcast rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"broadcast_id\": \"eb_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      }\n    }\n  ],\n  \"total\": 57\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b14f3a0d-4400-85ce-8fa6-51747893a30e",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get statistics by broadcast",
                "description": {
                  "content": "Returns aggregate delivery and engagement counts grouped by broadcast for the requested period, so each broadcast's deliverability and engagement can be compared side by side. Only messages sent as part of a broadcast appear here. One-off and transactional sends are not included, so a workspace that has not sent broadcasts returns an empty list rather than an error.\n\nRows are ranked by the `sort` metric (default `processed`) descending and capped at the requested `limit` (default 50, hard maximum 200). Rows are computed against event time (not send time), so engagement received during the period for messages sent earlier is included.\n\nThe maximum window is 365 days. Requesting a longer range returns a `422`. This breakdown is computed from per-message activity retained for 30 days, so it reflects roughly the last 30 days of activity even when the requested window reaches further back.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "broadcasts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, UTC. Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, UTC. Defaults to today (UTC) when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns a `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of broadcast rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"broadcast_id\": \"eb_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      }\n    }\n  ],\n  \"total\": 57\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1d3d922a-cc59-89e0-8e75-d340739f49a2",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get statistics by broadcast",
                "description": {
                  "content": "Returns aggregate delivery and engagement counts grouped by broadcast for the requested period, so each broadcast's deliverability and engagement can be compared side by side. Only messages sent as part of a broadcast appear here. One-off and transactional sends are not included, so a workspace that has not sent broadcasts returns an empty list rather than an error.\n\nRows are ranked by the `sort` metric (default `processed`) descending and capped at the requested `limit` (default 50, hard maximum 200). Rows are computed against event time (not send time), so engagement received during the period for messages sent earlier is included.\n\nThe maximum window is 365 days. Requesting a longer range returns a `422`. This breakdown is computed from per-message activity retained for 30 days, so it reflects roughly the last 30 days of activity even when the requested window reaches further back.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "broadcasts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, UTC. Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, UTC. Defaults to today (UTC) when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns a `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of broadcast rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"broadcast_id\": \"eb_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      }\n    }\n  ],\n  \"total\": 57\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fff1e4ea-0b95-8270-8c83-a5d223a56f91",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get statistics by broadcast",
                "description": {
                  "content": "Returns aggregate delivery and engagement counts grouped by broadcast for the requested period, so each broadcast's deliverability and engagement can be compared side by side. Only messages sent as part of a broadcast appear here. One-off and transactional sends are not included, so a workspace that has not sent broadcasts returns an empty list rather than an error.\n\nRows are ranked by the `sort` metric (default `processed`) descending and capped at the requested `limit` (default 50, hard maximum 200). Rows are computed against event time (not send time), so engagement received during the period for messages sent earlier is included.\n\nThe maximum window is 365 days. Requesting a longer range returns a `422`. This breakdown is computed from per-message activity retained for 30 days, so it reflects roughly the last 30 days of activity even when the requested window reaches further back.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "broadcasts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, UTC. Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, UTC. Defaults to today (UTC) when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns a `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of broadcast rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"broadcast_id\": \"eb_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      }\n    }\n  ],\n  \"total\": 57\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1f77d5b5-d4e0-8f84-8c13-9862407edd2f",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get statistics by broadcast",
                "description": {
                  "content": "Returns aggregate delivery and engagement counts grouped by broadcast for the requested period, so each broadcast's deliverability and engagement can be compared side by side. Only messages sent as part of a broadcast appear here. One-off and transactional sends are not included, so a workspace that has not sent broadcasts returns an empty list rather than an error.\n\nRows are ranked by the `sort` metric (default `processed`) descending and capped at the requested `limit` (default 50, hard maximum 200). Rows are computed against event time (not send time), so engagement received during the period for messages sent earlier is included.\n\nThe maximum window is 365 days. Requesting a longer range returns a `422`. This breakdown is computed from per-message activity retained for 30 days, so it reflects roughly the last 30 days of activity even when the requested window reaches further back.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "broadcasts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, UTC. Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, UTC. Defaults to today (UTC) when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns a `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of broadcast rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"broadcast_id\": \"eb_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      }\n    }\n  ],\n  \"total\": 57\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dfdd25e7-7b8c-82f5-84ad-3455b89453b2",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get statistics by broadcast",
                "description": {
                  "content": "Returns aggregate delivery and engagement counts grouped by broadcast for the requested period, so each broadcast's deliverability and engagement can be compared side by side. Only messages sent as part of a broadcast appear here. One-off and transactional sends are not included, so a workspace that has not sent broadcasts returns an empty list rather than an error.\n\nRows are ranked by the `sort` metric (default `processed`) descending and capped at the requested `limit` (default 50, hard maximum 200). Rows are computed against event time (not send time), so engagement received during the period for messages sent earlier is included.\n\nThe maximum window is 365 days. Requesting a longer range returns a `422`. This breakdown is computed from per-message activity retained for 30 days, so it reflects roughly the last 30 days of activity even when the requested window reaches further back.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "broadcasts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, UTC. Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, UTC. Defaults to today (UTC) when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns a `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of broadcast rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"broadcast_id\": \"eb_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      }\n    }\n  ],\n  \"total\": 57\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "22740294-1739-86ba-8f4f-ed5d1fca0749",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get statistics by broadcast",
                "description": {
                  "content": "Returns aggregate delivery and engagement counts grouped by broadcast for the requested period, so each broadcast's deliverability and engagement can be compared side by side. Only messages sent as part of a broadcast appear here. One-off and transactional sends are not included, so a workspace that has not sent broadcasts returns an empty list rather than an error.\n\nRows are ranked by the `sort` metric (default `processed`) descending and capped at the requested `limit` (default 50, hard maximum 200). Rows are computed against event time (not send time), so engagement received during the period for messages sent earlier is included.\n\nThe maximum window is 365 days. Requesting a longer range returns a `422`. This breakdown is computed from per-message activity retained for 30 days, so it reflects roughly the last 30 days of activity even when the requested window reaches further back.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "stats",
                    "broadcasts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in `YYYY-MM-DD`, UTC. Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in `YYYY-MM-DD`, UTC. Defaults to today (UTC) when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Not supported on breakdown endpoints. Supplying it returns a `422`. To compare categories, use `GET /v1/email/stats/categories`. The summary, daily, and hourly statistics accept `category` as a filter."
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any count or rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `processed`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of broadcast rows to return, ranked by the `sort` field descending."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"broadcast_id\": \"eb_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      }\n    }\n  ],\n  \"total\": 57\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "6c536cc2-35dc-8173-8c6e-a55ec6b5f7a7",
      "name": "sms-messages",
      "description": {
        "content": "Send SMS messages to recipients you address by phone number, and read their delivery status and lifecycle events. Each message is one recipient and one body; set `category` to control opt-out policy and per-country compliance.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "a6f55351-1cf3-89e9-8fc9-0fbeed0c84d4",
          "name": "Create an SMS message",
          "request": {
            "name": "Create an SMS message",
            "description": {
              "content": "Sends one SMS to one recipient with exactly one content form: `text`, which\nrequires `category` and `from`, or a stored `template`, which selects both\nfor you. To submit up to 100 independent messages in one request, use\n[Send a batch of SMS messages](https://bird.com/docs/api/reference/create-sms-message-batch)\ninstead.\n\nThe `202 Accepted` response means the API durably accepted the message for\nasynchronous delivery. Delivery remains pending; follow it with\n[Get an SMS message](https://bird.com/docs/api/reference/get-sms-message) or by subscribing\nto `sms.*` webhook events.\n\nAn invalid field, more than 12 segments, a disabled destination country, or\na sender not permitted for the destination returns `422`. Insufficient\nwallet balance returns `402`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "messages"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"to\": \"+14155550100\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your verification code is 123456.\",\n  \"category\": \"authentication\",\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"tags\": [\n    {\n      \"name\": \"campaign\",\n      \"value\": \"signup\"\n    }\n  ],\n  \"metadata\": {\n    \"user_id\": \"usr_12345\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "fee21876-e0fd-872f-8b5a-e324f1d0d43e",
              "name": "Message accepted for asynchronous delivery.",
              "originalRequest": {
                "name": "Create an SMS message",
                "description": {
                  "content": "Sends one SMS to one recipient with exactly one content form: `text`, which\nrequires `category` and `from`, or a stored `template`, which selects both\nfor you. To submit up to 100 independent messages in one request, use\n[Send a batch of SMS messages](https://bird.com/docs/api/reference/create-sms-message-batch)\ninstead.\n\nThe `202 Accepted` response means the API durably accepted the message for\nasynchronous delivery. Delivery remains pending; follow it with\n[Get an SMS message](https://bird.com/docs/api/reference/get-sms-message) or by subscribing\nto `sms.*` webhook events.\n\nAn invalid field, more than 12 segments, a disabled destination country, or\na sender not permitted for the destination returns `422`. Insufficient\nwallet balance returns `402`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": \"+14155550100\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your verification code is 123456.\",\n  \"category\": \"authentication\",\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"tags\": [\n    {\n      \"name\": \"campaign\",\n      \"value\": \"signup\"\n    }\n  ],\n  \"metadata\": {\n    \"user_id\": \"usr_12345\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"status\": \"scheduled\",\n  \"to\": \"+15551234567\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your order has shipped and is on its way.\",\n  \"category\": \"transactional\",\n  \"segments\": {\n    \"encoding\": \"GSM_7BIT\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"carrier\": \"Verizon\",\n  \"mcc_mnc\": \"311480\",\n  \"last_error\": {\n    \"code\": \"invalid_destination\",\n    \"description\": \"Carrier filtered as spam\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "535efa96-6da0-88aa-8dc9-ba1e8fe87296",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create an SMS message",
                "description": {
                  "content": "Sends one SMS to one recipient with exactly one content form: `text`, which\nrequires `category` and `from`, or a stored `template`, which selects both\nfor you. To submit up to 100 independent messages in one request, use\n[Send a batch of SMS messages](https://bird.com/docs/api/reference/create-sms-message-batch)\ninstead.\n\nThe `202 Accepted` response means the API durably accepted the message for\nasynchronous delivery. Delivery remains pending; follow it with\n[Get an SMS message](https://bird.com/docs/api/reference/get-sms-message) or by subscribing\nto `sms.*` webhook events.\n\nAn invalid field, more than 12 segments, a disabled destination country, or\na sender not permitted for the destination returns `422`. Insufficient\nwallet balance returns `402`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": \"+14155550100\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your verification code is 123456.\",\n  \"category\": \"authentication\",\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"tags\": [\n    {\n      \"name\": \"campaign\",\n      \"value\": \"signup\"\n    }\n  ],\n  \"metadata\": {\n    \"user_id\": \"usr_12345\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"status\": \"scheduled\",\n  \"to\": \"+15551234567\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your order has shipped and is on its way.\",\n  \"category\": \"transactional\",\n  \"segments\": {\n    \"encoding\": \"GSM_7BIT\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"carrier\": \"Verizon\",\n  \"mcc_mnc\": \"311480\",\n  \"last_error\": {\n    \"code\": \"invalid_destination\",\n    \"description\": \"Carrier filtered as spam\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b693c7b3-395c-82d4-840e-3850caf406c3",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create an SMS message",
                "description": {
                  "content": "Sends one SMS to one recipient with exactly one content form: `text`, which\nrequires `category` and `from`, or a stored `template`, which selects both\nfor you. To submit up to 100 independent messages in one request, use\n[Send a batch of SMS messages](https://bird.com/docs/api/reference/create-sms-message-batch)\ninstead.\n\nThe `202 Accepted` response means the API durably accepted the message for\nasynchronous delivery. Delivery remains pending; follow it with\n[Get an SMS message](https://bird.com/docs/api/reference/get-sms-message) or by subscribing\nto `sms.*` webhook events.\n\nAn invalid field, more than 12 segments, a disabled destination country, or\na sender not permitted for the destination returns `422`. Insufficient\nwallet balance returns `402`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": \"+14155550100\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your verification code is 123456.\",\n  \"category\": \"authentication\",\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"tags\": [\n    {\n      \"name\": \"campaign\",\n      \"value\": \"signup\"\n    }\n  ],\n  \"metadata\": {\n    \"user_id\": \"usr_12345\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"status\": \"scheduled\",\n  \"to\": \"+15551234567\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your order has shipped and is on its way.\",\n  \"category\": \"transactional\",\n  \"segments\": {\n    \"encoding\": \"GSM_7BIT\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"carrier\": \"Verizon\",\n  \"mcc_mnc\": \"311480\",\n  \"last_error\": {\n    \"code\": \"invalid_destination\",\n    \"description\": \"Carrier filtered as spam\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "72c508dc-5dcd-8000-8fc3-b04b21cd48e3",
              "name": "Insufficient balance",
              "originalRequest": {
                "name": "Create an SMS message",
                "description": {
                  "content": "Sends one SMS to one recipient with exactly one content form: `text`, which\nrequires `category` and `from`, or a stored `template`, which selects both\nfor you. To submit up to 100 independent messages in one request, use\n[Send a batch of SMS messages](https://bird.com/docs/api/reference/create-sms-message-batch)\ninstead.\n\nThe `202 Accepted` response means the API durably accepted the message for\nasynchronous delivery. Delivery remains pending; follow it with\n[Get an SMS message](https://bird.com/docs/api/reference/get-sms-message) or by subscribing\nto `sms.*` webhook events.\n\nAn invalid field, more than 12 segments, a disabled destination country, or\na sender not permitted for the destination returns `422`. Insufficient\nwallet balance returns `402`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": \"+14155550100\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your verification code is 123456.\",\n  \"category\": \"authentication\",\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"tags\": [\n    {\n      \"name\": \"campaign\",\n      \"value\": \"signup\"\n    }\n  ],\n  \"metadata\": {\n    \"user_id\": \"usr_12345\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Payment Required",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"status\": \"scheduled\",\n  \"to\": \"+15551234567\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your order has shipped and is on its way.\",\n  \"category\": \"transactional\",\n  \"segments\": {\n    \"encoding\": \"GSM_7BIT\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"carrier\": \"Verizon\",\n  \"mcc_mnc\": \"311480\",\n  \"last_error\": {\n    \"code\": \"invalid_destination\",\n    \"description\": \"Carrier filtered as spam\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1ecd0346-f44d-8157-8678-616a442948d8",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create an SMS message",
                "description": {
                  "content": "Sends one SMS to one recipient with exactly one content form: `text`, which\nrequires `category` and `from`, or a stored `template`, which selects both\nfor you. To submit up to 100 independent messages in one request, use\n[Send a batch of SMS messages](https://bird.com/docs/api/reference/create-sms-message-batch)\ninstead.\n\nThe `202 Accepted` response means the API durably accepted the message for\nasynchronous delivery. Delivery remains pending; follow it with\n[Get an SMS message](https://bird.com/docs/api/reference/get-sms-message) or by subscribing\nto `sms.*` webhook events.\n\nAn invalid field, more than 12 segments, a disabled destination country, or\na sender not permitted for the destination returns `422`. Insufficient\nwallet balance returns `402`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": \"+14155550100\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your verification code is 123456.\",\n  \"category\": \"authentication\",\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"tags\": [\n    {\n      \"name\": \"campaign\",\n      \"value\": \"signup\"\n    }\n  ],\n  \"metadata\": {\n    \"user_id\": \"usr_12345\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"status\": \"scheduled\",\n  \"to\": \"+15551234567\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your order has shipped and is on its way.\",\n  \"category\": \"transactional\",\n  \"segments\": {\n    \"encoding\": \"GSM_7BIT\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"carrier\": \"Verizon\",\n  \"mcc_mnc\": \"311480\",\n  \"last_error\": {\n    \"code\": \"invalid_destination\",\n    \"description\": \"Carrier filtered as spam\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7ef8e1bf-387f-8bfa-81d7-e5f5aae32754",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create an SMS message",
                "description": {
                  "content": "Sends one SMS to one recipient with exactly one content form: `text`, which\nrequires `category` and `from`, or a stored `template`, which selects both\nfor you. To submit up to 100 independent messages in one request, use\n[Send a batch of SMS messages](https://bird.com/docs/api/reference/create-sms-message-batch)\ninstead.\n\nThe `202 Accepted` response means the API durably accepted the message for\nasynchronous delivery. Delivery remains pending; follow it with\n[Get an SMS message](https://bird.com/docs/api/reference/get-sms-message) or by subscribing\nto `sms.*` webhook events.\n\nAn invalid field, more than 12 segments, a disabled destination country, or\na sender not permitted for the destination returns `422`. Insufficient\nwallet balance returns `402`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": \"+14155550100\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your verification code is 123456.\",\n  \"category\": \"authentication\",\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"tags\": [\n    {\n      \"name\": \"campaign\",\n      \"value\": \"signup\"\n    }\n  ],\n  \"metadata\": {\n    \"user_id\": \"usr_12345\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"status\": \"scheduled\",\n  \"to\": \"+15551234567\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your order has shipped and is on its way.\",\n  \"category\": \"transactional\",\n  \"segments\": {\n    \"encoding\": \"GSM_7BIT\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"carrier\": \"Verizon\",\n  \"mcc_mnc\": \"311480\",\n  \"last_error\": {\n    \"code\": \"invalid_destination\",\n    \"description\": \"Carrier filtered as spam\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9d062c9d-8b49-871a-8ca5-2d7ffe520132",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create an SMS message",
                "description": {
                  "content": "Sends one SMS to one recipient with exactly one content form: `text`, which\nrequires `category` and `from`, or a stored `template`, which selects both\nfor you. To submit up to 100 independent messages in one request, use\n[Send a batch of SMS messages](https://bird.com/docs/api/reference/create-sms-message-batch)\ninstead.\n\nThe `202 Accepted` response means the API durably accepted the message for\nasynchronous delivery. Delivery remains pending; follow it with\n[Get an SMS message](https://bird.com/docs/api/reference/get-sms-message) or by subscribing\nto `sms.*` webhook events.\n\nAn invalid field, more than 12 segments, a disabled destination country, or\na sender not permitted for the destination returns `422`. Insufficient\nwallet balance returns `402`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": \"+14155550100\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your verification code is 123456.\",\n  \"category\": \"authentication\",\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"tags\": [\n    {\n      \"name\": \"campaign\",\n      \"value\": \"signup\"\n    }\n  ],\n  \"metadata\": {\n    \"user_id\": \"usr_12345\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 202,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"status\": \"scheduled\",\n  \"to\": \"+15551234567\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your order has shipped and is on its way.\",\n  \"category\": \"transactional\",\n  \"segments\": {\n    \"encoding\": \"GSM_7BIT\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"carrier\": \"Verizon\",\n  \"mcc_mnc\": \"311480\",\n  \"last_error\": {\n    \"code\": \"invalid_destination\",\n    \"description\": \"Carrier filtered as spam\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cf79e982-e58b-87dd-8b49-65bf65bb8448",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create an SMS message",
                "description": {
                  "content": "Sends one SMS to one recipient with exactly one content form: `text`, which\nrequires `category` and `from`, or a stored `template`, which selects both\nfor you. To submit up to 100 independent messages in one request, use\n[Send a batch of SMS messages](https://bird.com/docs/api/reference/create-sms-message-batch)\ninstead.\n\nThe `202 Accepted` response means the API durably accepted the message for\nasynchronous delivery. Delivery remains pending; follow it with\n[Get an SMS message](https://bird.com/docs/api/reference/get-sms-message) or by subscribing\nto `sms.*` webhook events.\n\nAn invalid field, more than 12 segments, a disabled destination country, or\na sender not permitted for the destination returns `422`. Insufficient\nwallet balance returns `402`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": \"+14155550100\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your verification code is 123456.\",\n  \"category\": \"authentication\",\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"tags\": [\n    {\n      \"name\": \"campaign\",\n      \"value\": \"signup\"\n    }\n  ],\n  \"metadata\": {\n    \"user_id\": \"usr_12345\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"status\": \"scheduled\",\n  \"to\": \"+15551234567\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your order has shipped and is on its way.\",\n  \"category\": \"transactional\",\n  \"segments\": {\n    \"encoding\": \"GSM_7BIT\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"carrier\": \"Verizon\",\n  \"mcc_mnc\": \"311480\",\n  \"last_error\": {\n    \"code\": \"invalid_destination\",\n    \"description\": \"Carrier filtered as spam\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "e19f29ad-efee-8c51-8e49-6e44c87bee76",
          "name": "List SMS messages",
          "request": {
            "name": "List SMS messages",
            "description": {
              "content": "Returns the workspace's SMS messages as a cursor-paginated list, newest\nfirst. Filter by direction, status, category, recipient, sender, failure\nreason, tag, or creation time; pass the response's `next_cursor` back as\n`starting_after` to fetch the next page. To follow a single message's\ndelivery, use [Get an SMS message](https://bird.com/docs/api/reference/get-sms-message)\ninstead.\n\nMessages are retained for **30 days**. A `created_after` earlier than that\nis accepted and raised to the retention bound rather than rejected, so a\nwider window returns what is still retained instead of failing. Messages\nolder than the retention window cannot be retrieved.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "messages"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                },
                {
                  "disabled": false,
                  "key": "created_after",
                  "value": "2026-05-01T00:00:00Z",
                  "description": "Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                },
                {
                  "disabled": false,
                  "key": "created_before",
                  "value": "2026-06-01T00:00:00Z",
                  "description": "Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                },
                {
                  "disabled": true,
                  "key": "direction",
                  "value": "",
                  "description": "Filter by direction. Omit for both."
                },
                {
                  "disabled": true,
                  "key": "status",
                  "value": "",
                  "description": "Keep only messages whose current `status` matches; repeat the parameter to match any of several. One of `scheduled`, `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, `canceled`, `expired`, or `received`. `scheduled` and `canceled` are accepted but match nothing until send-later scheduling ships.\n"
                },
                {
                  "disabled": true,
                  "key": "status",
                  "value": "",
                  "description": "Keep only messages whose current `status` matches; repeat the parameter to match any of several. One of `scheduled`, `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, `canceled`, `expired`, or `received`. `scheduled` and `canceled` are accepted but match nothing until send-later scheduling ships.\n"
                },
                {
                  "disabled": true,
                  "key": "error_code",
                  "value": "",
                  "description": "Keep only messages whose failure reason (`last_error.code`) matches; repeat the parameter to match any of several. One of `invalid_destination`, `unreachable`, `blocked_by_carrier`, `blocked_by_recipient`, `landline_unreachable`, `content_rejected`, `sender_unregistered`, `recipient_opted_out`, `provider_unavailable`, `insufficient_balance`, or `unknown`.\n"
                },
                {
                  "disabled": true,
                  "key": "error_code",
                  "value": "",
                  "description": "Keep only messages whose failure reason (`last_error.code`) matches; repeat the parameter to match any of several. One of `invalid_destination`, `unreachable`, `blocked_by_carrier`, `blocked_by_recipient`, `landline_unreachable`, `content_rejected`, `sender_unregistered`, `recipient_opted_out`, `provider_unavailable`, `insufficient_balance`, or `unknown`.\n"
                },
                {
                  "disabled": true,
                  "key": "category",
                  "value": "",
                  "description": "Filter by category."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "+14155550100",
                  "description": "Filter by recipient phone number (E.164 exact match)."
                },
                {
                  "disabled": false,
                  "key": "from",
                  "value": "+15557654321",
                  "description": "Filter by sender (E.164, alphanumeric, or short code; exact match)."
                },
                {
                  "disabled": true,
                  "key": "tag",
                  "value": "",
                  "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                },
                {
                  "disabled": true,
                  "key": "tag",
                  "value": "",
                  "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "7cc25a6c-5f36-89fc-8b3b-57c61db9ffa0",
              "name": "Paginated list of messages.",
              "originalRequest": {
                "name": "List SMS messages",
                "description": {
                  "content": "Returns the workspace's SMS messages as a cursor-paginated list, newest\nfirst. Filter by direction, status, category, recipient, sender, failure\nreason, tag, or creation time; pass the response's `next_cursor` back as\n`starting_after` to fetch the next page. To follow a single message's\ndelivery, use [Get an SMS message](https://bird.com/docs/api/reference/get-sms-message)\ninstead.\n\nMessages are retained for **30 days**. A `created_after` earlier than that\nis accepted and raised to the retention bound rather than rejected, so a\nwider window returns what is still retained instead of failing. Messages\nolder than the retention window cannot be retrieved.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "created_after",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": false,
                      "key": "created_before",
                      "value": "2026-06-01T00:00:00Z",
                      "description": "Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter by direction. Omit for both."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Keep only messages whose current `status` matches; repeat the parameter to match any of several. One of `scheduled`, `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, `canceled`, `expired`, or `received`. `scheduled` and `canceled` are accepted but match nothing until send-later scheduling ships.\n"
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Keep only messages whose current `status` matches; repeat the parameter to match any of several. One of `scheduled`, `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, `canceled`, `expired`, or `received`. `scheduled` and `canceled` are accepted but match nothing until send-later scheduling ships.\n"
                    },
                    {
                      "disabled": true,
                      "key": "error_code",
                      "value": "",
                      "description": "Keep only messages whose failure reason (`last_error.code`) matches; repeat the parameter to match any of several. One of `invalid_destination`, `unreachable`, `blocked_by_carrier`, `blocked_by_recipient`, `landline_unreachable`, `content_rejected`, `sender_unregistered`, `recipient_opted_out`, `provider_unavailable`, `insufficient_balance`, or `unknown`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "error_code",
                      "value": "",
                      "description": "Keep only messages whose failure reason (`last_error.code`) matches; repeat the parameter to match any of several. One of `invalid_destination`, `unreachable`, `blocked_by_carrier`, `blocked_by_recipient`, `landline_unreachable`, `content_rejected`, `sender_unregistered`, `recipient_opted_out`, `provider_unavailable`, `insufficient_balance`, or `unknown`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Filter by category."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "+14155550100",
                      "description": "Filter by recipient phone number (E.164 exact match)."
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "+15557654321",
                      "description": "Filter by sender (E.164, alphanumeric, or short code; exact match)."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"status\": \"scheduled\",\n      \"to\": \"+15551234567\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Your order has shipped and is on its way.\",\n      \"category\": \"transactional\",\n      \"segments\": {\n        \"encoding\": \"GSM_7BIT\"\n      },\n      \"cost\": {\n        \"amount\": \"0.00990\",\n        \"currency_code\": \"USD\",\n        \"transaction_amount\": \"0.00790\",\n        \"passthrough_amount\": \"0.00200\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"options\": {\n        \"smart_encoding\": true\n      },\n      \"carrier\": \"Verizon\",\n      \"mcc_mnc\": \"311480\",\n      \"last_error\": {\n        \"code\": \"invalid_destination\",\n        \"description\": \"Carrier filtered as spam\"\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "244a9910-0962-83a5-8e10-380572f4b129",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List SMS messages",
                "description": {
                  "content": "Returns the workspace's SMS messages as a cursor-paginated list, newest\nfirst. Filter by direction, status, category, recipient, sender, failure\nreason, tag, or creation time; pass the response's `next_cursor` back as\n`starting_after` to fetch the next page. To follow a single message's\ndelivery, use [Get an SMS message](https://bird.com/docs/api/reference/get-sms-message)\ninstead.\n\nMessages are retained for **30 days**. A `created_after` earlier than that\nis accepted and raised to the retention bound rather than rejected, so a\nwider window returns what is still retained instead of failing. Messages\nolder than the retention window cannot be retrieved.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "created_after",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": false,
                      "key": "created_before",
                      "value": "2026-06-01T00:00:00Z",
                      "description": "Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter by direction. Omit for both."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Keep only messages whose current `status` matches; repeat the parameter to match any of several. One of `scheduled`, `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, `canceled`, `expired`, or `received`. `scheduled` and `canceled` are accepted but match nothing until send-later scheduling ships.\n"
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Keep only messages whose current `status` matches; repeat the parameter to match any of several. One of `scheduled`, `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, `canceled`, `expired`, or `received`. `scheduled` and `canceled` are accepted but match nothing until send-later scheduling ships.\n"
                    },
                    {
                      "disabled": true,
                      "key": "error_code",
                      "value": "",
                      "description": "Keep only messages whose failure reason (`last_error.code`) matches; repeat the parameter to match any of several. One of `invalid_destination`, `unreachable`, `blocked_by_carrier`, `blocked_by_recipient`, `landline_unreachable`, `content_rejected`, `sender_unregistered`, `recipient_opted_out`, `provider_unavailable`, `insufficient_balance`, or `unknown`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "error_code",
                      "value": "",
                      "description": "Keep only messages whose failure reason (`last_error.code`) matches; repeat the parameter to match any of several. One of `invalid_destination`, `unreachable`, `blocked_by_carrier`, `blocked_by_recipient`, `landline_unreachable`, `content_rejected`, `sender_unregistered`, `recipient_opted_out`, `provider_unavailable`, `insufficient_balance`, or `unknown`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Filter by category."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "+14155550100",
                      "description": "Filter by recipient phone number (E.164 exact match)."
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "+15557654321",
                      "description": "Filter by sender (E.164, alphanumeric, or short code; exact match)."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"status\": \"scheduled\",\n      \"to\": \"+15551234567\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Your order has shipped and is on its way.\",\n      \"category\": \"transactional\",\n      \"segments\": {\n        \"encoding\": \"GSM_7BIT\"\n      },\n      \"cost\": {\n        \"amount\": \"0.00990\",\n        \"currency_code\": \"USD\",\n        \"transaction_amount\": \"0.00790\",\n        \"passthrough_amount\": \"0.00200\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"options\": {\n        \"smart_encoding\": true\n      },\n      \"carrier\": \"Verizon\",\n      \"mcc_mnc\": \"311480\",\n      \"last_error\": {\n        \"code\": \"invalid_destination\",\n        \"description\": \"Carrier filtered as spam\"\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b346701a-8043-8d54-831f-0832cdea68a1",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List SMS messages",
                "description": {
                  "content": "Returns the workspace's SMS messages as a cursor-paginated list, newest\nfirst. Filter by direction, status, category, recipient, sender, failure\nreason, tag, or creation time; pass the response's `next_cursor` back as\n`starting_after` to fetch the next page. To follow a single message's\ndelivery, use [Get an SMS message](https://bird.com/docs/api/reference/get-sms-message)\ninstead.\n\nMessages are retained for **30 days**. A `created_after` earlier than that\nis accepted and raised to the retention bound rather than rejected, so a\nwider window returns what is still retained instead of failing. Messages\nolder than the retention window cannot be retrieved.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "created_after",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": false,
                      "key": "created_before",
                      "value": "2026-06-01T00:00:00Z",
                      "description": "Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter by direction. Omit for both."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Keep only messages whose current `status` matches; repeat the parameter to match any of several. One of `scheduled`, `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, `canceled`, `expired`, or `received`. `scheduled` and `canceled` are accepted but match nothing until send-later scheduling ships.\n"
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Keep only messages whose current `status` matches; repeat the parameter to match any of several. One of `scheduled`, `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, `canceled`, `expired`, or `received`. `scheduled` and `canceled` are accepted but match nothing until send-later scheduling ships.\n"
                    },
                    {
                      "disabled": true,
                      "key": "error_code",
                      "value": "",
                      "description": "Keep only messages whose failure reason (`last_error.code`) matches; repeat the parameter to match any of several. One of `invalid_destination`, `unreachable`, `blocked_by_carrier`, `blocked_by_recipient`, `landline_unreachable`, `content_rejected`, `sender_unregistered`, `recipient_opted_out`, `provider_unavailable`, `insufficient_balance`, or `unknown`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "error_code",
                      "value": "",
                      "description": "Keep only messages whose failure reason (`last_error.code`) matches; repeat the parameter to match any of several. One of `invalid_destination`, `unreachable`, `blocked_by_carrier`, `blocked_by_recipient`, `landline_unreachable`, `content_rejected`, `sender_unregistered`, `recipient_opted_out`, `provider_unavailable`, `insufficient_balance`, or `unknown`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Filter by category."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "+14155550100",
                      "description": "Filter by recipient phone number (E.164 exact match)."
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "+15557654321",
                      "description": "Filter by sender (E.164, alphanumeric, or short code; exact match)."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"status\": \"scheduled\",\n      \"to\": \"+15551234567\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Your order has shipped and is on its way.\",\n      \"category\": \"transactional\",\n      \"segments\": {\n        \"encoding\": \"GSM_7BIT\"\n      },\n      \"cost\": {\n        \"amount\": \"0.00990\",\n        \"currency_code\": \"USD\",\n        \"transaction_amount\": \"0.00790\",\n        \"passthrough_amount\": \"0.00200\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"options\": {\n        \"smart_encoding\": true\n      },\n      \"carrier\": \"Verizon\",\n      \"mcc_mnc\": \"311480\",\n      \"last_error\": {\n        \"code\": \"invalid_destination\",\n        \"description\": \"Carrier filtered as spam\"\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "25d76959-d235-8494-8e50-a074a8078213",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List SMS messages",
                "description": {
                  "content": "Returns the workspace's SMS messages as a cursor-paginated list, newest\nfirst. Filter by direction, status, category, recipient, sender, failure\nreason, tag, or creation time; pass the response's `next_cursor` back as\n`starting_after` to fetch the next page. To follow a single message's\ndelivery, use [Get an SMS message](https://bird.com/docs/api/reference/get-sms-message)\ninstead.\n\nMessages are retained for **30 days**. A `created_after` earlier than that\nis accepted and raised to the retention bound rather than rejected, so a\nwider window returns what is still retained instead of failing. Messages\nolder than the retention window cannot be retrieved.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "created_after",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": false,
                      "key": "created_before",
                      "value": "2026-06-01T00:00:00Z",
                      "description": "Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter by direction. Omit for both."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Keep only messages whose current `status` matches; repeat the parameter to match any of several. One of `scheduled`, `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, `canceled`, `expired`, or `received`. `scheduled` and `canceled` are accepted but match nothing until send-later scheduling ships.\n"
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Keep only messages whose current `status` matches; repeat the parameter to match any of several. One of `scheduled`, `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, `canceled`, `expired`, or `received`. `scheduled` and `canceled` are accepted but match nothing until send-later scheduling ships.\n"
                    },
                    {
                      "disabled": true,
                      "key": "error_code",
                      "value": "",
                      "description": "Keep only messages whose failure reason (`last_error.code`) matches; repeat the parameter to match any of several. One of `invalid_destination`, `unreachable`, `blocked_by_carrier`, `blocked_by_recipient`, `landline_unreachable`, `content_rejected`, `sender_unregistered`, `recipient_opted_out`, `provider_unavailable`, `insufficient_balance`, or `unknown`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "error_code",
                      "value": "",
                      "description": "Keep only messages whose failure reason (`last_error.code`) matches; repeat the parameter to match any of several. One of `invalid_destination`, `unreachable`, `blocked_by_carrier`, `blocked_by_recipient`, `landline_unreachable`, `content_rejected`, `sender_unregistered`, `recipient_opted_out`, `provider_unavailable`, `insufficient_balance`, or `unknown`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Filter by category."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "+14155550100",
                      "description": "Filter by recipient phone number (E.164 exact match)."
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "+15557654321",
                      "description": "Filter by sender (E.164, alphanumeric, or short code; exact match)."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"status\": \"scheduled\",\n      \"to\": \"+15551234567\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Your order has shipped and is on its way.\",\n      \"category\": \"transactional\",\n      \"segments\": {\n        \"encoding\": \"GSM_7BIT\"\n      },\n      \"cost\": {\n        \"amount\": \"0.00990\",\n        \"currency_code\": \"USD\",\n        \"transaction_amount\": \"0.00790\",\n        \"passthrough_amount\": \"0.00200\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"options\": {\n        \"smart_encoding\": true\n      },\n      \"carrier\": \"Verizon\",\n      \"mcc_mnc\": \"311480\",\n      \"last_error\": {\n        \"code\": \"invalid_destination\",\n        \"description\": \"Carrier filtered as spam\"\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4e18c608-dcc6-8e83-88b4-a5382b20dad8",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List SMS messages",
                "description": {
                  "content": "Returns the workspace's SMS messages as a cursor-paginated list, newest\nfirst. Filter by direction, status, category, recipient, sender, failure\nreason, tag, or creation time; pass the response's `next_cursor` back as\n`starting_after` to fetch the next page. To follow a single message's\ndelivery, use [Get an SMS message](https://bird.com/docs/api/reference/get-sms-message)\ninstead.\n\nMessages are retained for **30 days**. A `created_after` earlier than that\nis accepted and raised to the retention bound rather than rejected, so a\nwider window returns what is still retained instead of failing. Messages\nolder than the retention window cannot be retrieved.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "created_after",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": false,
                      "key": "created_before",
                      "value": "2026-06-01T00:00:00Z",
                      "description": "Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter by direction. Omit for both."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Keep only messages whose current `status` matches; repeat the parameter to match any of several. One of `scheduled`, `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, `canceled`, `expired`, or `received`. `scheduled` and `canceled` are accepted but match nothing until send-later scheduling ships.\n"
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Keep only messages whose current `status` matches; repeat the parameter to match any of several. One of `scheduled`, `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, `canceled`, `expired`, or `received`. `scheduled` and `canceled` are accepted but match nothing until send-later scheduling ships.\n"
                    },
                    {
                      "disabled": true,
                      "key": "error_code",
                      "value": "",
                      "description": "Keep only messages whose failure reason (`last_error.code`) matches; repeat the parameter to match any of several. One of `invalid_destination`, `unreachable`, `blocked_by_carrier`, `blocked_by_recipient`, `landline_unreachable`, `content_rejected`, `sender_unregistered`, `recipient_opted_out`, `provider_unavailable`, `insufficient_balance`, or `unknown`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "error_code",
                      "value": "",
                      "description": "Keep only messages whose failure reason (`last_error.code`) matches; repeat the parameter to match any of several. One of `invalid_destination`, `unreachable`, `blocked_by_carrier`, `blocked_by_recipient`, `landline_unreachable`, `content_rejected`, `sender_unregistered`, `recipient_opted_out`, `provider_unavailable`, `insufficient_balance`, or `unknown`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Filter by category."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "+14155550100",
                      "description": "Filter by recipient phone number (E.164 exact match)."
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "+15557654321",
                      "description": "Filter by sender (E.164, alphanumeric, or short code; exact match)."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"status\": \"scheduled\",\n      \"to\": \"+15551234567\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Your order has shipped and is on its way.\",\n      \"category\": \"transactional\",\n      \"segments\": {\n        \"encoding\": \"GSM_7BIT\"\n      },\n      \"cost\": {\n        \"amount\": \"0.00990\",\n        \"currency_code\": \"USD\",\n        \"transaction_amount\": \"0.00790\",\n        \"passthrough_amount\": \"0.00200\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"options\": {\n        \"smart_encoding\": true\n      },\n      \"carrier\": \"Verizon\",\n      \"mcc_mnc\": \"311480\",\n      \"last_error\": {\n        \"code\": \"invalid_destination\",\n        \"description\": \"Carrier filtered as spam\"\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "674b139b-f579-8f8e-8915-c32ccc358de0",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List SMS messages",
                "description": {
                  "content": "Returns the workspace's SMS messages as a cursor-paginated list, newest\nfirst. Filter by direction, status, category, recipient, sender, failure\nreason, tag, or creation time; pass the response's `next_cursor` back as\n`starting_after` to fetch the next page. To follow a single message's\ndelivery, use [Get an SMS message](https://bird.com/docs/api/reference/get-sms-message)\ninstead.\n\nMessages are retained for **30 days**. A `created_after` earlier than that\nis accepted and raised to the retention bound rather than rejected, so a\nwider window returns what is still retained instead of failing. Messages\nolder than the retention window cannot be retrieved.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "created_after",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": false,
                      "key": "created_before",
                      "value": "2026-06-01T00:00:00Z",
                      "description": "Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter by direction. Omit for both."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Keep only messages whose current `status` matches; repeat the parameter to match any of several. One of `scheduled`, `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, `canceled`, `expired`, or `received`. `scheduled` and `canceled` are accepted but match nothing until send-later scheduling ships.\n"
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Keep only messages whose current `status` matches; repeat the parameter to match any of several. One of `scheduled`, `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, `canceled`, `expired`, or `received`. `scheduled` and `canceled` are accepted but match nothing until send-later scheduling ships.\n"
                    },
                    {
                      "disabled": true,
                      "key": "error_code",
                      "value": "",
                      "description": "Keep only messages whose failure reason (`last_error.code`) matches; repeat the parameter to match any of several. One of `invalid_destination`, `unreachable`, `blocked_by_carrier`, `blocked_by_recipient`, `landline_unreachable`, `content_rejected`, `sender_unregistered`, `recipient_opted_out`, `provider_unavailable`, `insufficient_balance`, or `unknown`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "error_code",
                      "value": "",
                      "description": "Keep only messages whose failure reason (`last_error.code`) matches; repeat the parameter to match any of several. One of `invalid_destination`, `unreachable`, `blocked_by_carrier`, `blocked_by_recipient`, `landline_unreachable`, `content_rejected`, `sender_unregistered`, `recipient_opted_out`, `provider_unavailable`, `insufficient_balance`, or `unknown`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Filter by category."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "+14155550100",
                      "description": "Filter by recipient phone number (E.164 exact match)."
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "+15557654321",
                      "description": "Filter by sender (E.164, alphanumeric, or short code; exact match)."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"status\": \"scheduled\",\n      \"to\": \"+15551234567\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Your order has shipped and is on its way.\",\n      \"category\": \"transactional\",\n      \"segments\": {\n        \"encoding\": \"GSM_7BIT\"\n      },\n      \"cost\": {\n        \"amount\": \"0.00990\",\n        \"currency_code\": \"USD\",\n        \"transaction_amount\": \"0.00790\",\n        \"passthrough_amount\": \"0.00200\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"options\": {\n        \"smart_encoding\": true\n      },\n      \"carrier\": \"Verizon\",\n      \"mcc_mnc\": \"311480\",\n      \"last_error\": {\n        \"code\": \"invalid_destination\",\n        \"description\": \"Carrier filtered as spam\"\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "edd87f29-5352-86f3-8765-53877801892c",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "List SMS messages",
                "description": {
                  "content": "Returns the workspace's SMS messages as a cursor-paginated list, newest\nfirst. Filter by direction, status, category, recipient, sender, failure\nreason, tag, or creation time; pass the response's `next_cursor` back as\n`starting_after` to fetch the next page. To follow a single message's\ndelivery, use [Get an SMS message](https://bird.com/docs/api/reference/get-sms-message)\ninstead.\n\nMessages are retained for **30 days**. A `created_after` earlier than that\nis accepted and raised to the retention bound rather than rejected, so a\nwider window returns what is still retained instead of failing. Messages\nolder than the retention window cannot be retrieved.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "created_after",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": false,
                      "key": "created_before",
                      "value": "2026-06-01T00:00:00Z",
                      "description": "Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter by direction. Omit for both."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Keep only messages whose current `status` matches; repeat the parameter to match any of several. One of `scheduled`, `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, `canceled`, `expired`, or `received`. `scheduled` and `canceled` are accepted but match nothing until send-later scheduling ships.\n"
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Keep only messages whose current `status` matches; repeat the parameter to match any of several. One of `scheduled`, `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, `canceled`, `expired`, or `received`. `scheduled` and `canceled` are accepted but match nothing until send-later scheduling ships.\n"
                    },
                    {
                      "disabled": true,
                      "key": "error_code",
                      "value": "",
                      "description": "Keep only messages whose failure reason (`last_error.code`) matches; repeat the parameter to match any of several. One of `invalid_destination`, `unreachable`, `blocked_by_carrier`, `blocked_by_recipient`, `landline_unreachable`, `content_rejected`, `sender_unregistered`, `recipient_opted_out`, `provider_unavailable`, `insufficient_balance`, or `unknown`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "error_code",
                      "value": "",
                      "description": "Keep only messages whose failure reason (`last_error.code`) matches; repeat the parameter to match any of several. One of `invalid_destination`, `unreachable`, `blocked_by_carrier`, `blocked_by_recipient`, `landline_unreachable`, `content_rejected`, `sender_unregistered`, `recipient_opted_out`, `provider_unavailable`, `insufficient_balance`, or `unknown`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Filter by category."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "+14155550100",
                      "description": "Filter by recipient phone number (E.164 exact match)."
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "+15557654321",
                      "description": "Filter by sender (E.164, alphanumeric, or short code; exact match)."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"status\": \"scheduled\",\n      \"to\": \"+15551234567\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Your order has shipped and is on its way.\",\n      \"category\": \"transactional\",\n      \"segments\": {\n        \"encoding\": \"GSM_7BIT\"\n      },\n      \"cost\": {\n        \"amount\": \"0.00990\",\n        \"currency_code\": \"USD\",\n        \"transaction_amount\": \"0.00790\",\n        \"passthrough_amount\": \"0.00200\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"options\": {\n        \"smart_encoding\": true\n      },\n      \"carrier\": \"Verizon\",\n      \"mcc_mnc\": \"311480\",\n      \"last_error\": {\n        \"code\": \"invalid_destination\",\n        \"description\": \"Carrier filtered as spam\"\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "bce09ac3-361b-8256-8320-06fc25c18994",
          "name": "Create a batch of SMS messages",
          "request": {
            "name": "Create a batch of SMS messages",
            "description": {
              "content": "Sends up to 100 independent SMS messages in one request. Each item is a\ncomplete send request with its own recipient, content, ID, status, and\ncost. For a single message, use\n[Send an SMS message](https://bird.com/docs/api/reference/create-sms-message) instead.\n\nAcceptance is all-or-nothing: every item is validated before any is queued,\nand one invalid item rejects the whole batch with a `422` (nothing is\nsent). A batch from a workspace with no wallet balance fails with a `402`.\nThe `202` response lists the accepted messages in submission order; each\ndelivers asynchronously and is tracked individually, like a single send.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "batches"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"messages\": [\n    {\n      \"to\": \"+15551111111\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Hi Alice!\",\n      \"category\": \"marketing\"\n    },\n    {\n      \"to\": \"+15552222222\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Hi Bob!\",\n      \"category\": \"marketing\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "07028984-1dfe-83f4-8427-273872c7ced0",
              "name": "Batch accepted for asynchronous delivery.",
              "originalRequest": {
                "name": "Create a batch of SMS messages",
                "description": {
                  "content": "Sends up to 100 independent SMS messages in one request. Each item is a\ncomplete send request with its own recipient, content, ID, status, and\ncost. For a single message, use\n[Send an SMS message](https://bird.com/docs/api/reference/create-sms-message) instead.\n\nAcceptance is all-or-nothing: every item is validated before any is queued,\nand one invalid item rejects the whole batch with a `422` (nothing is\nsent). A batch from a workspace with no wallet balance fails with a `402`.\nThe `202` response lists the accepted messages in submission order; each\ndelivers asynchronously and is tracked individually, like a single send.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "batches"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"messages\": [\n    {\n      \"to\": \"+15551111111\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Hi Alice!\",\n      \"category\": \"marketing\"\n    },\n    {\n      \"to\": \"+15552222222\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Hi Bob!\",\n      \"category\": \"marketing\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"status\": \"scheduled\",\n      \"to\": \"+15551234567\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Your order has shipped and is on its way.\",\n      \"category\": \"transactional\",\n      \"segments\": {\n        \"encoding\": \"GSM_7BIT\"\n      },\n      \"cost\": {\n        \"amount\": \"0.00990\",\n        \"currency_code\": \"USD\",\n        \"transaction_amount\": \"0.00790\",\n        \"passthrough_amount\": \"0.00200\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"options\": {\n        \"smart_encoding\": true\n      },\n      \"carrier\": \"Verizon\",\n      \"mcc_mnc\": \"311480\",\n      \"last_error\": {\n        \"code\": \"invalid_destination\",\n        \"description\": \"Carrier filtered as spam\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "10280e9d-0acb-8062-8f86-0a2a4e152b9e",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create a batch of SMS messages",
                "description": {
                  "content": "Sends up to 100 independent SMS messages in one request. Each item is a\ncomplete send request with its own recipient, content, ID, status, and\ncost. For a single message, use\n[Send an SMS message](https://bird.com/docs/api/reference/create-sms-message) instead.\n\nAcceptance is all-or-nothing: every item is validated before any is queued,\nand one invalid item rejects the whole batch with a `422` (nothing is\nsent). A batch from a workspace with no wallet balance fails with a `402`.\nThe `202` response lists the accepted messages in submission order; each\ndelivers asynchronously and is tracked individually, like a single send.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "batches"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"messages\": [\n    {\n      \"to\": \"+15551111111\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Hi Alice!\",\n      \"category\": \"marketing\"\n    },\n    {\n      \"to\": \"+15552222222\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Hi Bob!\",\n      \"category\": \"marketing\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"status\": \"scheduled\",\n      \"to\": \"+15551234567\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Your order has shipped and is on its way.\",\n      \"category\": \"transactional\",\n      \"segments\": {\n        \"encoding\": \"GSM_7BIT\"\n      },\n      \"cost\": {\n        \"amount\": \"0.00990\",\n        \"currency_code\": \"USD\",\n        \"transaction_amount\": \"0.00790\",\n        \"passthrough_amount\": \"0.00200\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"options\": {\n        \"smart_encoding\": true\n      },\n      \"carrier\": \"Verizon\",\n      \"mcc_mnc\": \"311480\",\n      \"last_error\": {\n        \"code\": \"invalid_destination\",\n        \"description\": \"Carrier filtered as spam\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "68fbdd01-a638-84d3-85b9-fe01de631b8e",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create a batch of SMS messages",
                "description": {
                  "content": "Sends up to 100 independent SMS messages in one request. Each item is a\ncomplete send request with its own recipient, content, ID, status, and\ncost. For a single message, use\n[Send an SMS message](https://bird.com/docs/api/reference/create-sms-message) instead.\n\nAcceptance is all-or-nothing: every item is validated before any is queued,\nand one invalid item rejects the whole batch with a `422` (nothing is\nsent). A batch from a workspace with no wallet balance fails with a `402`.\nThe `202` response lists the accepted messages in submission order; each\ndelivers asynchronously and is tracked individually, like a single send.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "batches"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"messages\": [\n    {\n      \"to\": \"+15551111111\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Hi Alice!\",\n      \"category\": \"marketing\"\n    },\n    {\n      \"to\": \"+15552222222\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Hi Bob!\",\n      \"category\": \"marketing\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"status\": \"scheduled\",\n      \"to\": \"+15551234567\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Your order has shipped and is on its way.\",\n      \"category\": \"transactional\",\n      \"segments\": {\n        \"encoding\": \"GSM_7BIT\"\n      },\n      \"cost\": {\n        \"amount\": \"0.00990\",\n        \"currency_code\": \"USD\",\n        \"transaction_amount\": \"0.00790\",\n        \"passthrough_amount\": \"0.00200\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"options\": {\n        \"smart_encoding\": true\n      },\n      \"carrier\": \"Verizon\",\n      \"mcc_mnc\": \"311480\",\n      \"last_error\": {\n        \"code\": \"invalid_destination\",\n        \"description\": \"Carrier filtered as spam\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "56e4bcfb-212e-8166-8edc-ef76e703c45a",
              "name": "Insufficient balance",
              "originalRequest": {
                "name": "Create a batch of SMS messages",
                "description": {
                  "content": "Sends up to 100 independent SMS messages in one request. Each item is a\ncomplete send request with its own recipient, content, ID, status, and\ncost. For a single message, use\n[Send an SMS message](https://bird.com/docs/api/reference/create-sms-message) instead.\n\nAcceptance is all-or-nothing: every item is validated before any is queued,\nand one invalid item rejects the whole batch with a `422` (nothing is\nsent). A batch from a workspace with no wallet balance fails with a `402`.\nThe `202` response lists the accepted messages in submission order; each\ndelivers asynchronously and is tracked individually, like a single send.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "batches"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"messages\": [\n    {\n      \"to\": \"+15551111111\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Hi Alice!\",\n      \"category\": \"marketing\"\n    },\n    {\n      \"to\": \"+15552222222\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Hi Bob!\",\n      \"category\": \"marketing\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Payment Required",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"status\": \"scheduled\",\n      \"to\": \"+15551234567\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Your order has shipped and is on its way.\",\n      \"category\": \"transactional\",\n      \"segments\": {\n        \"encoding\": \"GSM_7BIT\"\n      },\n      \"cost\": {\n        \"amount\": \"0.00990\",\n        \"currency_code\": \"USD\",\n        \"transaction_amount\": \"0.00790\",\n        \"passthrough_amount\": \"0.00200\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"options\": {\n        \"smart_encoding\": true\n      },\n      \"carrier\": \"Verizon\",\n      \"mcc_mnc\": \"311480\",\n      \"last_error\": {\n        \"code\": \"invalid_destination\",\n        \"description\": \"Carrier filtered as spam\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a6f330ff-289f-8295-8db5-55ae32b7ff97",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create a batch of SMS messages",
                "description": {
                  "content": "Sends up to 100 independent SMS messages in one request. Each item is a\ncomplete send request with its own recipient, content, ID, status, and\ncost. For a single message, use\n[Send an SMS message](https://bird.com/docs/api/reference/create-sms-message) instead.\n\nAcceptance is all-or-nothing: every item is validated before any is queued,\nand one invalid item rejects the whole batch with a `422` (nothing is\nsent). A batch from a workspace with no wallet balance fails with a `402`.\nThe `202` response lists the accepted messages in submission order; each\ndelivers asynchronously and is tracked individually, like a single send.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "batches"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"messages\": [\n    {\n      \"to\": \"+15551111111\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Hi Alice!\",\n      \"category\": \"marketing\"\n    },\n    {\n      \"to\": \"+15552222222\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Hi Bob!\",\n      \"category\": \"marketing\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"status\": \"scheduled\",\n      \"to\": \"+15551234567\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Your order has shipped and is on its way.\",\n      \"category\": \"transactional\",\n      \"segments\": {\n        \"encoding\": \"GSM_7BIT\"\n      },\n      \"cost\": {\n        \"amount\": \"0.00990\",\n        \"currency_code\": \"USD\",\n        \"transaction_amount\": \"0.00790\",\n        \"passthrough_amount\": \"0.00200\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"options\": {\n        \"smart_encoding\": true\n      },\n      \"carrier\": \"Verizon\",\n      \"mcc_mnc\": \"311480\",\n      \"last_error\": {\n        \"code\": \"invalid_destination\",\n        \"description\": \"Carrier filtered as spam\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6b3da225-831d-84e9-8f3f-64d41bdb2ca0",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create a batch of SMS messages",
                "description": {
                  "content": "Sends up to 100 independent SMS messages in one request. Each item is a\ncomplete send request with its own recipient, content, ID, status, and\ncost. For a single message, use\n[Send an SMS message](https://bird.com/docs/api/reference/create-sms-message) instead.\n\nAcceptance is all-or-nothing: every item is validated before any is queued,\nand one invalid item rejects the whole batch with a `422` (nothing is\nsent). A batch from a workspace with no wallet balance fails with a `402`.\nThe `202` response lists the accepted messages in submission order; each\ndelivers asynchronously and is tracked individually, like a single send.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "batches"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"messages\": [\n    {\n      \"to\": \"+15551111111\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Hi Alice!\",\n      \"category\": \"marketing\"\n    },\n    {\n      \"to\": \"+15552222222\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Hi Bob!\",\n      \"category\": \"marketing\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"status\": \"scheduled\",\n      \"to\": \"+15551234567\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Your order has shipped and is on its way.\",\n      \"category\": \"transactional\",\n      \"segments\": {\n        \"encoding\": \"GSM_7BIT\"\n      },\n      \"cost\": {\n        \"amount\": \"0.00990\",\n        \"currency_code\": \"USD\",\n        \"transaction_amount\": \"0.00790\",\n        \"passthrough_amount\": \"0.00200\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"options\": {\n        \"smart_encoding\": true\n      },\n      \"carrier\": \"Verizon\",\n      \"mcc_mnc\": \"311480\",\n      \"last_error\": {\n        \"code\": \"invalid_destination\",\n        \"description\": \"Carrier filtered as spam\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "275df69b-cc86-88bb-87b8-298142538eb3",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create a batch of SMS messages",
                "description": {
                  "content": "Sends up to 100 independent SMS messages in one request. Each item is a\ncomplete send request with its own recipient, content, ID, status, and\ncost. For a single message, use\n[Send an SMS message](https://bird.com/docs/api/reference/create-sms-message) instead.\n\nAcceptance is all-or-nothing: every item is validated before any is queued,\nand one invalid item rejects the whole batch with a `422` (nothing is\nsent). A batch from a workspace with no wallet balance fails with a `402`.\nThe `202` response lists the accepted messages in submission order; each\ndelivers asynchronously and is tracked individually, like a single send.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "batches"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"messages\": [\n    {\n      \"to\": \"+15551111111\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Hi Alice!\",\n      \"category\": \"marketing\"\n    },\n    {\n      \"to\": \"+15552222222\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Hi Bob!\",\n      \"category\": \"marketing\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 202,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"status\": \"scheduled\",\n      \"to\": \"+15551234567\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Your order has shipped and is on its way.\",\n      \"category\": \"transactional\",\n      \"segments\": {\n        \"encoding\": \"GSM_7BIT\"\n      },\n      \"cost\": {\n        \"amount\": \"0.00990\",\n        \"currency_code\": \"USD\",\n        \"transaction_amount\": \"0.00790\",\n        \"passthrough_amount\": \"0.00200\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"options\": {\n        \"smart_encoding\": true\n      },\n      \"carrier\": \"Verizon\",\n      \"mcc_mnc\": \"311480\",\n      \"last_error\": {\n        \"code\": \"invalid_destination\",\n        \"description\": \"Carrier filtered as spam\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9c431844-93b1-84d2-873c-51c3ae65e1cb",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create a batch of SMS messages",
                "description": {
                  "content": "Sends up to 100 independent SMS messages in one request. Each item is a\ncomplete send request with its own recipient, content, ID, status, and\ncost. For a single message, use\n[Send an SMS message](https://bird.com/docs/api/reference/create-sms-message) instead.\n\nAcceptance is all-or-nothing: every item is validated before any is queued,\nand one invalid item rejects the whole batch with a `422` (nothing is\nsent). A batch from a workspace with no wallet balance fails with a `402`.\nThe `202` response lists the accepted messages in submission order; each\ndelivers asynchronously and is tracked individually, like a single send.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "batches"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"messages\": [\n    {\n      \"to\": \"+15551111111\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Hi Alice!\",\n      \"category\": \"marketing\"\n    },\n    {\n      \"to\": \"+15552222222\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Hi Bob!\",\n      \"category\": \"marketing\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"status\": \"scheduled\",\n      \"to\": \"+15551234567\",\n      \"from\": \"+15557654321\",\n      \"text\": \"Your order has shipped and is on its way.\",\n      \"category\": \"transactional\",\n      \"segments\": {\n        \"encoding\": \"GSM_7BIT\"\n      },\n      \"cost\": {\n        \"amount\": \"0.00990\",\n        \"currency_code\": \"USD\",\n        \"transaction_amount\": \"0.00790\",\n        \"passthrough_amount\": \"0.00200\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"options\": {\n        \"smart_encoding\": true\n      },\n      \"carrier\": \"Verizon\",\n      \"mcc_mnc\": \"311480\",\n      \"last_error\": {\n        \"code\": \"invalid_destination\",\n        \"description\": \"Carrier filtered as spam\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "4387010c-e925-8067-8eaf-e06f2fce3920",
          "name": "Get an SMS message",
          "request": {
            "name": "Get an SMS message",
            "description": {
              "content": "Returns a single SMS message: its current delivery status, segment breakdown, cost, and failure detail when it failed. The `status` advances asynchronously as delivery progresses, and `cost` is null until the message has been priced, so poll this operation (or subscribe to `sms.*` webhook events) after a send to confirm delivery. To scan messages in bulk, use [List SMS messages](https://bird.com/docs/api/reference/list-sms-messages) instead.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "messages",
                ":message_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "message_id",
                  "description": "(Required) ID of the message, as returned in the send response's `id` field."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "d1a7c66f-8742-85a9-8eca-dde00c0c1fda",
              "name": "SMS message with its current delivery status.",
              "originalRequest": {
                "name": "Get an SMS message",
                "description": {
                  "content": "Returns a single SMS message: its current delivery status, segment breakdown, cost, and failure detail when it failed. The `status` advances asynchronously as delivery progresses, and `cost` is null until the message has been priced, so poll this operation (or subscribe to `sms.*` webhook events) after a send to confirm delivery. To scan messages in bulk, use [List SMS messages](https://bird.com/docs/api/reference/list-sms-messages) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message, as returned in the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"status\": \"scheduled\",\n  \"to\": \"+15551234567\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your order has shipped and is on its way.\",\n  \"category\": \"transactional\",\n  \"segments\": {\n    \"encoding\": \"GSM_7BIT\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"carrier\": \"Verizon\",\n  \"mcc_mnc\": \"311480\",\n  \"last_error\": {\n    \"code\": \"invalid_destination\",\n    \"description\": \"Carrier filtered as spam\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "287b822f-9fcc-8e61-8a8e-a98b027abbd0",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get an SMS message",
                "description": {
                  "content": "Returns a single SMS message: its current delivery status, segment breakdown, cost, and failure detail when it failed. The `status` advances asynchronously as delivery progresses, and `cost` is null until the message has been priced, so poll this operation (or subscribe to `sms.*` webhook events) after a send to confirm delivery. To scan messages in bulk, use [List SMS messages](https://bird.com/docs/api/reference/list-sms-messages) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message, as returned in the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"status\": \"scheduled\",\n  \"to\": \"+15551234567\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your order has shipped and is on its way.\",\n  \"category\": \"transactional\",\n  \"segments\": {\n    \"encoding\": \"GSM_7BIT\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"carrier\": \"Verizon\",\n  \"mcc_mnc\": \"311480\",\n  \"last_error\": {\n    \"code\": \"invalid_destination\",\n    \"description\": \"Carrier filtered as spam\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a26a1913-5f0b-8b06-8af7-bcd25f6eb3fa",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get an SMS message",
                "description": {
                  "content": "Returns a single SMS message: its current delivery status, segment breakdown, cost, and failure detail when it failed. The `status` advances asynchronously as delivery progresses, and `cost` is null until the message has been priced, so poll this operation (or subscribe to `sms.*` webhook events) after a send to confirm delivery. To scan messages in bulk, use [List SMS messages](https://bird.com/docs/api/reference/list-sms-messages) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message, as returned in the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"status\": \"scheduled\",\n  \"to\": \"+15551234567\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your order has shipped and is on its way.\",\n  \"category\": \"transactional\",\n  \"segments\": {\n    \"encoding\": \"GSM_7BIT\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"carrier\": \"Verizon\",\n  \"mcc_mnc\": \"311480\",\n  \"last_error\": {\n    \"code\": \"invalid_destination\",\n    \"description\": \"Carrier filtered as spam\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9a48383f-e764-8dc2-8c6e-cd5c85dd5916",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get an SMS message",
                "description": {
                  "content": "Returns a single SMS message: its current delivery status, segment breakdown, cost, and failure detail when it failed. The `status` advances asynchronously as delivery progresses, and `cost` is null until the message has been priced, so poll this operation (or subscribe to `sms.*` webhook events) after a send to confirm delivery. To scan messages in bulk, use [List SMS messages](https://bird.com/docs/api/reference/list-sms-messages) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message, as returned in the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"status\": \"scheduled\",\n  \"to\": \"+15551234567\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your order has shipped and is on its way.\",\n  \"category\": \"transactional\",\n  \"segments\": {\n    \"encoding\": \"GSM_7BIT\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"carrier\": \"Verizon\",\n  \"mcc_mnc\": \"311480\",\n  \"last_error\": {\n    \"code\": \"invalid_destination\",\n    \"description\": \"Carrier filtered as spam\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "30c67eb0-6363-8dcd-864c-54be1118070f",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get an SMS message",
                "description": {
                  "content": "Returns a single SMS message: its current delivery status, segment breakdown, cost, and failure detail when it failed. The `status` advances asynchronously as delivery progresses, and `cost` is null until the message has been priced, so poll this operation (or subscribe to `sms.*` webhook events) after a send to confirm delivery. To scan messages in bulk, use [List SMS messages](https://bird.com/docs/api/reference/list-sms-messages) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message, as returned in the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"status\": \"scheduled\",\n  \"to\": \"+15551234567\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your order has shipped and is on its way.\",\n  \"category\": \"transactional\",\n  \"segments\": {\n    \"encoding\": \"GSM_7BIT\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"carrier\": \"Verizon\",\n  \"mcc_mnc\": \"311480\",\n  \"last_error\": {\n    \"code\": \"invalid_destination\",\n    \"description\": \"Carrier filtered as spam\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "85f6b0e8-b9da-8fa9-84db-87afd8cea289",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get an SMS message",
                "description": {
                  "content": "Returns a single SMS message: its current delivery status, segment breakdown, cost, and failure detail when it failed. The `status` advances asynchronously as delivery progresses, and `cost` is null until the message has been priced, so poll this operation (or subscribe to `sms.*` webhook events) after a send to confirm delivery. To scan messages in bulk, use [List SMS messages](https://bird.com/docs/api/reference/list-sms-messages) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message, as returned in the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"status\": \"scheduled\",\n  \"to\": \"+15551234567\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your order has shipped and is on its way.\",\n  \"category\": \"transactional\",\n  \"segments\": {\n    \"encoding\": \"GSM_7BIT\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"carrier\": \"Verizon\",\n  \"mcc_mnc\": \"311480\",\n  \"last_error\": {\n    \"code\": \"invalid_destination\",\n    \"description\": \"Carrier filtered as spam\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a0843002-8e52-830a-890c-b525734aaf70",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get an SMS message",
                "description": {
                  "content": "Returns a single SMS message: its current delivery status, segment breakdown, cost, and failure detail when it failed. The `status` advances asynchronously as delivery progresses, and `cost` is null until the message has been priced, so poll this operation (or subscribe to `sms.*` webhook events) after a send to confirm delivery. To scan messages in bulk, use [List SMS messages](https://bird.com/docs/api/reference/list-sms-messages) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message, as returned in the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"status\": \"scheduled\",\n  \"to\": \"+15551234567\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your order has shipped and is on its way.\",\n  \"category\": \"transactional\",\n  \"segments\": {\n    \"encoding\": \"GSM_7BIT\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"carrier\": \"Verizon\",\n  \"mcc_mnc\": \"311480\",\n  \"last_error\": {\n    \"code\": \"invalid_destination\",\n    \"description\": \"Carrier filtered as spam\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "154a4d32-1ef4-857f-89a9-58b457179dc6",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get an SMS message",
                "description": {
                  "content": "Returns a single SMS message: its current delivery status, segment breakdown, cost, and failure detail when it failed. The `status` advances asynchronously as delivery progresses, and `cost` is null until the message has been priced, so poll this operation (or subscribe to `sms.*` webhook events) after a send to confirm delivery. To scan messages in bulk, use [List SMS messages](https://bird.com/docs/api/reference/list-sms-messages) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message, as returned in the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"status\": \"scheduled\",\n  \"to\": \"+15551234567\",\n  \"from\": \"+15557654321\",\n  \"text\": \"Your order has shipped and is on its way.\",\n  \"category\": \"transactional\",\n  \"segments\": {\n    \"encoding\": \"GSM_7BIT\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"options\": {\n    \"smart_encoding\": true\n  },\n  \"carrier\": \"Verizon\",\n  \"mcc_mnc\": \"311480\",\n  \"last_error\": {\n    \"code\": \"invalid_destination\",\n    \"description\": \"Carrier filtered as spam\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "7e097f92-25b1-8380-8bf1-f80f71aa3e60",
          "name": "List events for an SMS message",
          "request": {
            "name": "List events for an SMS message",
            "description": {
              "content": "Returns the lifecycle event timeline for a message, in chronological order.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "messages",
                ":message_id",
                "events"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "type",
                  "value": "",
                  "description": "Filter by event type, such as `sms.delivered` or `sms.failed`."
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "message_id",
                  "description": "(Required) ID of the SMS message (`sms_` prefix), as returned when the message was accepted."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "2f55045e-01ac-8187-8d32-b12e54310704",
              "name": "Event timeline for this message.",
              "originalRequest": {
                "name": "List events for an SMS message",
                "description": {
                  "content": "Returns the lifecycle event timeline for a message, in chronological order.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages",
                    ":message_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "Filter by event type, such as `sms.delivered` or `sms.failed`."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the SMS message (`sms_` prefix), as returned when the message was accepted."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"evt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"sms.delivered\",\n      \"carrier\": \"Verizon\",\n      \"mcc_mnc\": \"311480\",\n      \"error\": {\n        \"code\": \"invalid_destination\",\n        \"description\": \"Carrier filtered as spam\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "45bca602-89e7-8df7-883b-e6e3304fa515",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List events for an SMS message",
                "description": {
                  "content": "Returns the lifecycle event timeline for a message, in chronological order.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages",
                    ":message_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "Filter by event type, such as `sms.delivered` or `sms.failed`."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the SMS message (`sms_` prefix), as returned when the message was accepted."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"evt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"sms.delivered\",\n      \"carrier\": \"Verizon\",\n      \"mcc_mnc\": \"311480\",\n      \"error\": {\n        \"code\": \"invalid_destination\",\n        \"description\": \"Carrier filtered as spam\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8f557a48-c804-8a66-8db3-604aafb60e4b",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List events for an SMS message",
                "description": {
                  "content": "Returns the lifecycle event timeline for a message, in chronological order.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages",
                    ":message_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "Filter by event type, such as `sms.delivered` or `sms.failed`."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the SMS message (`sms_` prefix), as returned when the message was accepted."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"evt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"sms.delivered\",\n      \"carrier\": \"Verizon\",\n      \"mcc_mnc\": \"311480\",\n      \"error\": {\n        \"code\": \"invalid_destination\",\n        \"description\": \"Carrier filtered as spam\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e0862c92-2abc-88e1-82da-03a7324ece2e",
              "name": "Resource not found",
              "originalRequest": {
                "name": "List events for an SMS message",
                "description": {
                  "content": "Returns the lifecycle event timeline for a message, in chronological order.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages",
                    ":message_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "Filter by event type, such as `sms.delivered` or `sms.failed`."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the SMS message (`sms_` prefix), as returned when the message was accepted."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"evt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"sms.delivered\",\n      \"carrier\": \"Verizon\",\n      \"mcc_mnc\": \"311480\",\n      \"error\": {\n        \"code\": \"invalid_destination\",\n        \"description\": \"Carrier filtered as spam\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "de917c9e-4354-8175-88c7-ee30ff58e682",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List events for an SMS message",
                "description": {
                  "content": "Returns the lifecycle event timeline for a message, in chronological order.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages",
                    ":message_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "Filter by event type, such as `sms.delivered` or `sms.failed`."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the SMS message (`sms_` prefix), as returned when the message was accepted."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"evt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"sms.delivered\",\n      \"carrier\": \"Verizon\",\n      \"mcc_mnc\": \"311480\",\n      \"error\": {\n        \"code\": \"invalid_destination\",\n        \"description\": \"Carrier filtered as spam\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "50bcf8fc-415e-8660-8402-3905681a8bfc",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List events for an SMS message",
                "description": {
                  "content": "Returns the lifecycle event timeline for a message, in chronological order.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages",
                    ":message_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "Filter by event type, such as `sms.delivered` or `sms.failed`."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the SMS message (`sms_` prefix), as returned when the message was accepted."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"evt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"sms.delivered\",\n      \"carrier\": \"Verizon\",\n      \"mcc_mnc\": \"311480\",\n      \"error\": {\n        \"code\": \"invalid_destination\",\n        \"description\": \"Carrier filtered as spam\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ca6e5569-4f63-8d7d-89b3-ae6bab7858c6",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List events for an SMS message",
                "description": {
                  "content": "Returns the lifecycle event timeline for a message, in chronological order.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages",
                    ":message_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "Filter by event type, such as `sms.delivered` or `sms.failed`."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the SMS message (`sms_` prefix), as returned when the message was accepted."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"evt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"sms.delivered\",\n      \"carrier\": \"Verizon\",\n      \"mcc_mnc\": \"311480\",\n      \"error\": {\n        \"code\": \"invalid_destination\",\n        \"description\": \"Carrier filtered as spam\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b7abe04f-704f-85d5-882b-be0471224231",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "List events for an SMS message",
                "description": {
                  "content": "Returns the lifecycle event timeline for a message, in chronological order.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "messages",
                    ":message_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "Filter by event type, such as `sms.delivered` or `sms.failed`."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the SMS message (`sms_` prefix), as returned when the message was accepted."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"evt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"sms.delivered\",\n      \"carrier\": \"Verizon\",\n      \"mcc_mnc\": \"311480\",\n      \"error\": {\n        \"code\": \"invalid_destination\",\n        \"description\": \"Carrier filtered as spam\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "2caa4041-cccc-8382-8c31-962383191a49",
      "name": "sms-templates",
      "description": {
        "content": "Browse the SMS templates available to your workspace, including its built-in templates. Each template has a typed set of slots you fill in when sending.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "37bfce90-b1a9-83ea-8e83-447c12594705",
          "name": "List SMS templates",
          "request": {
            "name": "List SMS templates",
            "description": {
              "content": "Returns the SMS templates you can send from, including our built-in templates. Filter by scope, category, or language; the catalog is small and returned in full, so this list is not paginated. To read one template's variables before sending with it, use [Get an SMS template](https://bird.com/docs/api/reference/get-sms-template).\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "templates"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "scope",
                  "value": "",
                  "description": "Keep only templates of this scope. Every SMS template is `system`, so `workspace` matches none. Omit for all.\n"
                },
                {
                  "disabled": true,
                  "key": "category",
                  "value": "",
                  "description": "Keep only templates whose `category` matches. Omit for all categories."
                },
                {
                  "disabled": true,
                  "key": "language",
                  "value": "",
                  "description": "Keep only templates available in this language, as a BCP-47 tag. Matches the template's `available_languages` entries exactly, with no fallback.\n"
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "f2768725-5bff-8551-89b0-97421421abc4",
              "name": "List of templates available to your workspace.",
              "originalRequest": {
                "name": "List SMS templates",
                "description": {
                  "content": "Returns the SMS templates you can send from, including our built-in templates. Filter by scope, category, or language; the catalog is small and returned in full, so this list is not paginated. To read one template's variables before sending with it, use [Get an SMS template](https://bird.com/docs/api/reference/get-sms-template).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "templates"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "scope",
                      "value": "",
                      "description": "Keep only templates of this scope. Every SMS template is `system`, so `workspace` matches none. Omit for all.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Keep only templates whose `category` matches. Omit for all categories."
                    },
                    {
                      "disabled": true,
                      "key": "language",
                      "value": "",
                      "description": "Keep only templates available in this language, as a BCP-47 tag. Matches the template's `available_languages` entries exactly, with no fallback.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"smt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"slug\": \"bird_otp_verification\",\n      \"name\": \"bird_otp_verification\",\n      \"description\": \"One-time passcode verification\",\n      \"scope\": \"system\",\n      \"status\": \"active\",\n      \"category\": \"transactional\",\n      \"body\": \"Your verification code is {{ code }}.\",\n      \"variables\": [\n        {\n          \"type\": \"code\"\n        }\n      ],\n      \"default_language\": \"pt-BR\",\n      \"available_languages\": [\n        \"en\"\n      ],\n      \"languages\": {\n        \"en\": {\n          \"status\": \"live\"\n        },\n        \"nl\": {\n          \"status\": \"live\"\n        }\n      },\n      \"on_missing_language\": \"fallback\",\n      \"draft_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"live_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"published_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "11e2d6d6-1935-810e-8f5a-55316eb00850",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List SMS templates",
                "description": {
                  "content": "Returns the SMS templates you can send from, including our built-in templates. Filter by scope, category, or language; the catalog is small and returned in full, so this list is not paginated. To read one template's variables before sending with it, use [Get an SMS template](https://bird.com/docs/api/reference/get-sms-template).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "templates"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "scope",
                      "value": "",
                      "description": "Keep only templates of this scope. Every SMS template is `system`, so `workspace` matches none. Omit for all.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Keep only templates whose `category` matches. Omit for all categories."
                    },
                    {
                      "disabled": true,
                      "key": "language",
                      "value": "",
                      "description": "Keep only templates available in this language, as a BCP-47 tag. Matches the template's `available_languages` entries exactly, with no fallback.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"smt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"slug\": \"bird_otp_verification\",\n      \"name\": \"bird_otp_verification\",\n      \"description\": \"One-time passcode verification\",\n      \"scope\": \"system\",\n      \"status\": \"active\",\n      \"category\": \"transactional\",\n      \"body\": \"Your verification code is {{ code }}.\",\n      \"variables\": [\n        {\n          \"type\": \"code\"\n        }\n      ],\n      \"default_language\": \"pt-BR\",\n      \"available_languages\": [\n        \"en\"\n      ],\n      \"languages\": {\n        \"en\": {\n          \"status\": \"live\"\n        },\n        \"nl\": {\n          \"status\": \"live\"\n        }\n      },\n      \"on_missing_language\": \"fallback\",\n      \"draft_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"live_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"published_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "eb2bdfbe-e372-87a4-8649-e05b707884c0",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List SMS templates",
                "description": {
                  "content": "Returns the SMS templates you can send from, including our built-in templates. Filter by scope, category, or language; the catalog is small and returned in full, so this list is not paginated. To read one template's variables before sending with it, use [Get an SMS template](https://bird.com/docs/api/reference/get-sms-template).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "templates"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "scope",
                      "value": "",
                      "description": "Keep only templates of this scope. Every SMS template is `system`, so `workspace` matches none. Omit for all.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Keep only templates whose `category` matches. Omit for all categories."
                    },
                    {
                      "disabled": true,
                      "key": "language",
                      "value": "",
                      "description": "Keep only templates available in this language, as a BCP-47 tag. Matches the template's `available_languages` entries exactly, with no fallback.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"smt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"slug\": \"bird_otp_verification\",\n      \"name\": \"bird_otp_verification\",\n      \"description\": \"One-time passcode verification\",\n      \"scope\": \"system\",\n      \"status\": \"active\",\n      \"category\": \"transactional\",\n      \"body\": \"Your verification code is {{ code }}.\",\n      \"variables\": [\n        {\n          \"type\": \"code\"\n        }\n      ],\n      \"default_language\": \"pt-BR\",\n      \"available_languages\": [\n        \"en\"\n      ],\n      \"languages\": {\n        \"en\": {\n          \"status\": \"live\"\n        },\n        \"nl\": {\n          \"status\": \"live\"\n        }\n      },\n      \"on_missing_language\": \"fallback\",\n      \"draft_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"live_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"published_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7535ccff-9eb9-8418-8cf0-030b8fa106d7",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List SMS templates",
                "description": {
                  "content": "Returns the SMS templates you can send from, including our built-in templates. Filter by scope, category, or language; the catalog is small and returned in full, so this list is not paginated. To read one template's variables before sending with it, use [Get an SMS template](https://bird.com/docs/api/reference/get-sms-template).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "templates"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "scope",
                      "value": "",
                      "description": "Keep only templates of this scope. Every SMS template is `system`, so `workspace` matches none. Omit for all.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Keep only templates whose `category` matches. Omit for all categories."
                    },
                    {
                      "disabled": true,
                      "key": "language",
                      "value": "",
                      "description": "Keep only templates available in this language, as a BCP-47 tag. Matches the template's `available_languages` entries exactly, with no fallback.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"smt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"slug\": \"bird_otp_verification\",\n      \"name\": \"bird_otp_verification\",\n      \"description\": \"One-time passcode verification\",\n      \"scope\": \"system\",\n      \"status\": \"active\",\n      \"category\": \"transactional\",\n      \"body\": \"Your verification code is {{ code }}.\",\n      \"variables\": [\n        {\n          \"type\": \"code\"\n        }\n      ],\n      \"default_language\": \"pt-BR\",\n      \"available_languages\": [\n        \"en\"\n      ],\n      \"languages\": {\n        \"en\": {\n          \"status\": \"live\"\n        },\n        \"nl\": {\n          \"status\": \"live\"\n        }\n      },\n      \"on_missing_language\": \"fallback\",\n      \"draft_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"live_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"published_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "59e84d9a-9b31-8ed4-88d8-b5b60f8ac5f7",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List SMS templates",
                "description": {
                  "content": "Returns the SMS templates you can send from, including our built-in templates. Filter by scope, category, or language; the catalog is small and returned in full, so this list is not paginated. To read one template's variables before sending with it, use [Get an SMS template](https://bird.com/docs/api/reference/get-sms-template).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "templates"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "scope",
                      "value": "",
                      "description": "Keep only templates of this scope. Every SMS template is `system`, so `workspace` matches none. Omit for all.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Keep only templates whose `category` matches. Omit for all categories."
                    },
                    {
                      "disabled": true,
                      "key": "language",
                      "value": "",
                      "description": "Keep only templates available in this language, as a BCP-47 tag. Matches the template's `available_languages` entries exactly, with no fallback.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"smt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"slug\": \"bird_otp_verification\",\n      \"name\": \"bird_otp_verification\",\n      \"description\": \"One-time passcode verification\",\n      \"scope\": \"system\",\n      \"status\": \"active\",\n      \"category\": \"transactional\",\n      \"body\": \"Your verification code is {{ code }}.\",\n      \"variables\": [\n        {\n          \"type\": \"code\"\n        }\n      ],\n      \"default_language\": \"pt-BR\",\n      \"available_languages\": [\n        \"en\"\n      ],\n      \"languages\": {\n        \"en\": {\n          \"status\": \"live\"\n        },\n        \"nl\": {\n          \"status\": \"live\"\n        }\n      },\n      \"on_missing_language\": \"fallback\",\n      \"draft_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"live_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"published_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "16e7679b-82b3-8cfc-8bfa-0175c3001577",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List SMS templates",
                "description": {
                  "content": "Returns the SMS templates you can send from, including our built-in templates. Filter by scope, category, or language; the catalog is small and returned in full, so this list is not paginated. To read one template's variables before sending with it, use [Get an SMS template](https://bird.com/docs/api/reference/get-sms-template).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "templates"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "scope",
                      "value": "",
                      "description": "Keep only templates of this scope. Every SMS template is `system`, so `workspace` matches none. Omit for all.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Keep only templates whose `category` matches. Omit for all categories."
                    },
                    {
                      "disabled": true,
                      "key": "language",
                      "value": "",
                      "description": "Keep only templates available in this language, as a BCP-47 tag. Matches the template's `available_languages` entries exactly, with no fallback.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"smt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"slug\": \"bird_otp_verification\",\n      \"name\": \"bird_otp_verification\",\n      \"description\": \"One-time passcode verification\",\n      \"scope\": \"system\",\n      \"status\": \"active\",\n      \"category\": \"transactional\",\n      \"body\": \"Your verification code is {{ code }}.\",\n      \"variables\": [\n        {\n          \"type\": \"code\"\n        }\n      ],\n      \"default_language\": \"pt-BR\",\n      \"available_languages\": [\n        \"en\"\n      ],\n      \"languages\": {\n        \"en\": {\n          \"status\": \"live\"\n        },\n        \"nl\": {\n          \"status\": \"live\"\n        }\n      },\n      \"on_missing_language\": \"fallback\",\n      \"draft_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"live_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"published_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "75e00793-eebb-89de-8053-50dd9803c2c5",
          "name": "Get an SMS template",
          "request": {
            "name": "Get an SMS template",
            "description": {
              "content": "Returns a single SMS template: its body preview, category, the `variables` it expects (each with its accepted format), and the languages it is available in. Fetch a template before sending with it to see which `parameters` keys are required; an unknown reference returns a `404`. To browse the whole catalog, use [List SMS templates](https://bird.com/docs/api/reference/list-sms-templates) instead.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "templates",
                ":template_ref"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "bird_otp_verification",
                  "key": "template_ref",
                  "description": "(Required) The template's `slug` (for example `bird_otp_verification`) or its `smt_`-prefixed ID. A reference starting with `smt_` resolves by ID; anything else resolves by slug.\n"
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "458d17dc-6de0-8c0d-88dc-780f55d7c3fe",
              "name": "The requested template.",
              "originalRequest": {
                "name": "Get an SMS template",
                "description": {
                  "content": "Returns a single SMS template: its body preview, category, the `variables` it expects (each with its accepted format), and the languages it is available in. Fetch a template before sending with it to see which `parameters` keys are required; an unknown reference returns a `404`. To browse the whole catalog, use [List SMS templates](https://bird.com/docs/api/reference/list-sms-templates) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "templates",
                    ":template_ref"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "bird_otp_verification",
                      "key": "template_ref",
                      "description": "(Required) The template's `slug` (for example `bird_otp_verification`) or its `smt_`-prefixed ID. A reference starting with `smt_` resolves by ID; anything else resolves by slug.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"smt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"slug\": \"bird_otp_verification\",\n  \"name\": \"bird_otp_verification\",\n  \"description\": \"One-time passcode verification\",\n  \"scope\": \"system\",\n  \"status\": \"active\",\n  \"category\": \"transactional\",\n  \"body\": \"Your verification code is {{ code }}.\",\n  \"variables\": [\n    {\n      \"type\": \"code\"\n    }\n  ],\n  \"default_language\": \"pt-BR\",\n  \"available_languages\": [\n    \"en\"\n  ],\n  \"languages\": {\n    \"en\": {\n      \"status\": \"live\"\n    },\n    \"nl\": {\n      \"status\": \"live\"\n    }\n  },\n  \"on_missing_language\": \"fallback\",\n  \"draft_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"live_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"published_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f65d85e2-dcb4-8efb-81de-8ab40113a9d1",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get an SMS template",
                "description": {
                  "content": "Returns a single SMS template: its body preview, category, the `variables` it expects (each with its accepted format), and the languages it is available in. Fetch a template before sending with it to see which `parameters` keys are required; an unknown reference returns a `404`. To browse the whole catalog, use [List SMS templates](https://bird.com/docs/api/reference/list-sms-templates) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "templates",
                    ":template_ref"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "bird_otp_verification",
                      "key": "template_ref",
                      "description": "(Required) The template's `slug` (for example `bird_otp_verification`) or its `smt_`-prefixed ID. A reference starting with `smt_` resolves by ID; anything else resolves by slug.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"smt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"slug\": \"bird_otp_verification\",\n  \"name\": \"bird_otp_verification\",\n  \"description\": \"One-time passcode verification\",\n  \"scope\": \"system\",\n  \"status\": \"active\",\n  \"category\": \"transactional\",\n  \"body\": \"Your verification code is {{ code }}.\",\n  \"variables\": [\n    {\n      \"type\": \"code\"\n    }\n  ],\n  \"default_language\": \"pt-BR\",\n  \"available_languages\": [\n    \"en\"\n  ],\n  \"languages\": {\n    \"en\": {\n      \"status\": \"live\"\n    },\n    \"nl\": {\n      \"status\": \"live\"\n    }\n  },\n  \"on_missing_language\": \"fallback\",\n  \"draft_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"live_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"published_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4cc37888-c9e6-8afe-8c7d-ef0e69829c98",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get an SMS template",
                "description": {
                  "content": "Returns a single SMS template: its body preview, category, the `variables` it expects (each with its accepted format), and the languages it is available in. Fetch a template before sending with it to see which `parameters` keys are required; an unknown reference returns a `404`. To browse the whole catalog, use [List SMS templates](https://bird.com/docs/api/reference/list-sms-templates) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "templates",
                    ":template_ref"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "bird_otp_verification",
                      "key": "template_ref",
                      "description": "(Required) The template's `slug` (for example `bird_otp_verification`) or its `smt_`-prefixed ID. A reference starting with `smt_` resolves by ID; anything else resolves by slug.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"smt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"slug\": \"bird_otp_verification\",\n  \"name\": \"bird_otp_verification\",\n  \"description\": \"One-time passcode verification\",\n  \"scope\": \"system\",\n  \"status\": \"active\",\n  \"category\": \"transactional\",\n  \"body\": \"Your verification code is {{ code }}.\",\n  \"variables\": [\n    {\n      \"type\": \"code\"\n    }\n  ],\n  \"default_language\": \"pt-BR\",\n  \"available_languages\": [\n    \"en\"\n  ],\n  \"languages\": {\n    \"en\": {\n      \"status\": \"live\"\n    },\n    \"nl\": {\n      \"status\": \"live\"\n    }\n  },\n  \"on_missing_language\": \"fallback\",\n  \"draft_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"live_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"published_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cd5c49ba-b904-8a4d-820e-27f3ef438c3e",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get an SMS template",
                "description": {
                  "content": "Returns a single SMS template: its body preview, category, the `variables` it expects (each with its accepted format), and the languages it is available in. Fetch a template before sending with it to see which `parameters` keys are required; an unknown reference returns a `404`. To browse the whole catalog, use [List SMS templates](https://bird.com/docs/api/reference/list-sms-templates) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "templates",
                    ":template_ref"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "bird_otp_verification",
                      "key": "template_ref",
                      "description": "(Required) The template's `slug` (for example `bird_otp_verification`) or its `smt_`-prefixed ID. A reference starting with `smt_` resolves by ID; anything else resolves by slug.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"smt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"slug\": \"bird_otp_verification\",\n  \"name\": \"bird_otp_verification\",\n  \"description\": \"One-time passcode verification\",\n  \"scope\": \"system\",\n  \"status\": \"active\",\n  \"category\": \"transactional\",\n  \"body\": \"Your verification code is {{ code }}.\",\n  \"variables\": [\n    {\n      \"type\": \"code\"\n    }\n  ],\n  \"default_language\": \"pt-BR\",\n  \"available_languages\": [\n    \"en\"\n  ],\n  \"languages\": {\n    \"en\": {\n      \"status\": \"live\"\n    },\n    \"nl\": {\n      \"status\": \"live\"\n    }\n  },\n  \"on_missing_language\": \"fallback\",\n  \"draft_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"live_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"published_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "48b51d52-2f57-8680-8d74-29e257502ad6",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get an SMS template",
                "description": {
                  "content": "Returns a single SMS template: its body preview, category, the `variables` it expects (each with its accepted format), and the languages it is available in. Fetch a template before sending with it to see which `parameters` keys are required; an unknown reference returns a `404`. To browse the whole catalog, use [List SMS templates](https://bird.com/docs/api/reference/list-sms-templates) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "templates",
                    ":template_ref"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "bird_otp_verification",
                      "key": "template_ref",
                      "description": "(Required) The template's `slug` (for example `bird_otp_verification`) or its `smt_`-prefixed ID. A reference starting with `smt_` resolves by ID; anything else resolves by slug.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"smt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"slug\": \"bird_otp_verification\",\n  \"name\": \"bird_otp_verification\",\n  \"description\": \"One-time passcode verification\",\n  \"scope\": \"system\",\n  \"status\": \"active\",\n  \"category\": \"transactional\",\n  \"body\": \"Your verification code is {{ code }}.\",\n  \"variables\": [\n    {\n      \"type\": \"code\"\n    }\n  ],\n  \"default_language\": \"pt-BR\",\n  \"available_languages\": [\n    \"en\"\n  ],\n  \"languages\": {\n    \"en\": {\n      \"status\": \"live\"\n    },\n    \"nl\": {\n      \"status\": \"live\"\n    }\n  },\n  \"on_missing_language\": \"fallback\",\n  \"draft_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"live_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"published_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "020cf20e-38cc-83c3-8b6f-dbae1a811540",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get an SMS template",
                "description": {
                  "content": "Returns a single SMS template: its body preview, category, the `variables` it expects (each with its accepted format), and the languages it is available in. Fetch a template before sending with it to see which `parameters` keys are required; an unknown reference returns a `404`. To browse the whole catalog, use [List SMS templates](https://bird.com/docs/api/reference/list-sms-templates) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "templates",
                    ":template_ref"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "bird_otp_verification",
                      "key": "template_ref",
                      "description": "(Required) The template's `slug` (for example `bird_otp_verification`) or its `smt_`-prefixed ID. A reference starting with `smt_` resolves by ID; anything else resolves by slug.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"smt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"slug\": \"bird_otp_verification\",\n  \"name\": \"bird_otp_verification\",\n  \"description\": \"One-time passcode verification\",\n  \"scope\": \"system\",\n  \"status\": \"active\",\n  \"category\": \"transactional\",\n  \"body\": \"Your verification code is {{ code }}.\",\n  \"variables\": [\n    {\n      \"type\": \"code\"\n    }\n  ],\n  \"default_language\": \"pt-BR\",\n  \"available_languages\": [\n    \"en\"\n  ],\n  \"languages\": {\n    \"en\": {\n      \"status\": \"live\"\n    },\n    \"nl\": {\n      \"status\": \"live\"\n    }\n  },\n  \"on_missing_language\": \"fallback\",\n  \"draft_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"live_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"published_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c5fe769e-784c-8525-8cc0-e87b891389df",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get an SMS template",
                "description": {
                  "content": "Returns a single SMS template: its body preview, category, the `variables` it expects (each with its accepted format), and the languages it is available in. Fetch a template before sending with it to see which `parameters` keys are required; an unknown reference returns a `404`. To browse the whole catalog, use [List SMS templates](https://bird.com/docs/api/reference/list-sms-templates) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "templates",
                    ":template_ref"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "bird_otp_verification",
                      "key": "template_ref",
                      "description": "(Required) The template's `slug` (for example `bird_otp_verification`) or its `smt_`-prefixed ID. A reference starting with `smt_` resolves by ID; anything else resolves by slug.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"smt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"slug\": \"bird_otp_verification\",\n  \"name\": \"bird_otp_verification\",\n  \"description\": \"One-time passcode verification\",\n  \"scope\": \"system\",\n  \"status\": \"active\",\n  \"category\": \"transactional\",\n  \"body\": \"Your verification code is {{ code }}.\",\n  \"variables\": [\n    {\n      \"type\": \"code\"\n    }\n  ],\n  \"default_language\": \"pt-BR\",\n  \"available_languages\": [\n    \"en\"\n  ],\n  \"languages\": {\n    \"en\": {\n      \"status\": \"live\"\n    },\n    \"nl\": {\n      \"status\": \"live\"\n    }\n  },\n  \"on_missing_language\": \"fallback\",\n  \"draft_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"live_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"published_version_id\": \"smv_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "7c158767-0a1c-81d4-8c54-53bc78e76f45",
      "name": "sms-stats",
      "description": {
        "content": "SMS analytics, including daily and hourly lifecycle counts, dimension breakdowns, and a KPI summary.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "f3f1f885-d897-8019-8f63-54a638f195f3",
          "name": "Get aggregate outbound SMS statistics",
          "request": {
            "name": "Get aggregate outbound SMS statistics",
            "description": {
              "content": "Returns one aggregate row for the requested period. It includes SMS lifecycle counts, delivery and failure rates, and processing, delivery, and total latency percentiles (`p50`, `p95`, and `p99`). Rows use send-time attribution, so recent periods can under-report `delivered` while delivery reports arrive.\n\nRate fields are `null` when their denominator is zero. For example, `delivery_rate` is `null` when no message was accepted.\n\n`from` and `to` must both be days or RFC 3339 instants. Day windows cover up to 365 days. Instant bounds round down to the hour and may span up to 720 hours. Mixing the forms returns `422`. Set `timezone` for local boundaries, one dimension filter at most, or `compare=previous_period` for the preceding equal-length window.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "stats",
                "summary"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Inclusive start of the window: a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The `timezone` parameter makes a calendar day local and rounds an instant down to the local hour. Omit `timezone` to use UTC. When `timezone` is set, a numeric UTC offset such as `+05:45` is rejected; use a calendar day or a `Z` (UTC) instant. This value must use the same form as `to`. When omitted, it defaults to 30 days before `to` for day windows or 168 hours (7 days) before `to` for hour windows.\n"
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "Inclusive end of the window: a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The `timezone` parameter makes a calendar day local and rounds an instant down to the local hour. Omit `timezone` to use UTC. When `timezone` is set, a numeric UTC offset is rejected; use a calendar day or a `Z` (UTC) instant. This value must use the same form as `from`. When omitted, it defaults to today for day windows or the current hour for hour windows in that timezone. Day windows may not exceed 365 days; hour windows may not exceed 720 hours (30 days).\n"
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": false,
                  "key": "originator",
                  "value": "BirdSMS",
                  "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                },
                {
                  "disabled": false,
                  "key": "country",
                  "value": "US",
                  "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                },
                {
                  "disabled": false,
                  "key": "category",
                  "value": "transactional",
                  "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                },
                {
                  "disabled": false,
                  "key": "carrier",
                  "value": "Verizon",
                  "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                },
                {
                  "disabled": true,
                  "key": "compare",
                  "value": "",
                  "description": "Set to `previous_period` to also include the same statistics for the immediately preceding window of equal length, plus the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "87a4d284-796b-87f5-81db-cf5f0b09db66",
              "name": "Aggregate summary for the requested period.",
              "originalRequest": {
                "name": "Get aggregate outbound SMS statistics",
                "description": {
                  "content": "Returns one aggregate row for the requested period. It includes SMS lifecycle counts, delivery and failure rates, and processing, delivery, and total latency percentiles (`p50`, `p95`, and `p99`). Rows use send-time attribution, so recent periods can under-report `delivered` while delivery reports arrive.\n\nRate fields are `null` when their denominator is zero. For example, `delivery_rate` is `null` when no message was accepted.\n\n`from` and `to` must both be days or RFC 3339 instants. Day windows cover up to 365 days. Instant bounds round down to the hour and may span up to 720 hours. Mixing the forms returns `422`. Set `timezone` for local boundaries, one dimension filter at most, or `compare=previous_period` for the preceding equal-length window.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Inclusive start of the window: a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The `timezone` parameter makes a calendar day local and rounds an instant down to the local hour. Omit `timezone` to use UTC. When `timezone` is set, a numeric UTC offset such as `+05:45` is rejected; use a calendar day or a `Z` (UTC) instant. This value must use the same form as `to`. When omitted, it defaults to 30 days before `to` for day windows or 168 hours (7 days) before `to` for hour windows.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "Inclusive end of the window: a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The `timezone` parameter makes a calendar day local and rounds an instant down to the local hour. Omit `timezone` to use UTC. When `timezone` is set, a numeric UTC offset is rejected; use a calendar day or a `Z` (UTC) instant. This value must use the same form as `from`. When omitted, it defaults to today for day windows or the current hour for hour windows in that timezone. Day windows may not exceed 365 days; hour windows may not exceed 720 hours (30 days).\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "BirdSMS",
                      "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "US",
                      "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "carrier",
                      "value": "Verizon",
                      "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                    },
                    {
                      "disabled": true,
                      "key": "compare",
                      "value": "",
                      "description": "Set to `previous_period` to also include the same statistics for the immediately preceding window of equal length, plus the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"delivery\": {\n    \"accepted\": 14820,\n    \"sent\": 14810,\n    \"delivered\": 14720,\n    \"undelivered\": 60,\n    \"failed\": 25,\n    \"rejected\": 10,\n    \"expired\": 5,\n    \"delivery_rate\": 0.9932,\n    \"failure_rate\": 0.0061\n  },\n  \"latency\": {\n    \"processing\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"delivery\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"total\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    }\n  },\n  \"comparison\": {\n    \"period\": {\n      \"from\": \"2026-05-01\",\n      \"to\": \"2026-05-25\",\n      \"data_as_of\": \"2026-05-25T14:03:10Z\"\n    },\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"sent\": 14810,\n      \"delivered\": 14720,\n      \"undelivered\": 60,\n      \"failed\": 25,\n      \"rejected\": 10,\n      \"expired\": 5,\n      \"delivery_rate\": 0.9932,\n      \"failure_rate\": 0.0061\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"delta\": {\n      \"accepted_pct_change\": 0.508,\n      \"sent_pct_change\": 0.121,\n      \"delivered_pct_change\": 0.122,\n      \"undelivered_pct_change\": -0.031,\n      \"failed_pct_change\": -0.018,\n      \"rejected_pct_change\": 0,\n      \"expired_pct_change\": 0.04,\n      \"delivery_rate_pp\": 0.004,\n      \"failure_rate_pp\": -0.0008\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "547dea23-8c79-86ac-8c96-81447b1b6566",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get aggregate outbound SMS statistics",
                "description": {
                  "content": "Returns one aggregate row for the requested period. It includes SMS lifecycle counts, delivery and failure rates, and processing, delivery, and total latency percentiles (`p50`, `p95`, and `p99`). Rows use send-time attribution, so recent periods can under-report `delivered` while delivery reports arrive.\n\nRate fields are `null` when their denominator is zero. For example, `delivery_rate` is `null` when no message was accepted.\n\n`from` and `to` must both be days or RFC 3339 instants. Day windows cover up to 365 days. Instant bounds round down to the hour and may span up to 720 hours. Mixing the forms returns `422`. Set `timezone` for local boundaries, one dimension filter at most, or `compare=previous_period` for the preceding equal-length window.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Inclusive start of the window: a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The `timezone` parameter makes a calendar day local and rounds an instant down to the local hour. Omit `timezone` to use UTC. When `timezone` is set, a numeric UTC offset such as `+05:45` is rejected; use a calendar day or a `Z` (UTC) instant. This value must use the same form as `to`. When omitted, it defaults to 30 days before `to` for day windows or 168 hours (7 days) before `to` for hour windows.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "Inclusive end of the window: a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The `timezone` parameter makes a calendar day local and rounds an instant down to the local hour. Omit `timezone` to use UTC. When `timezone` is set, a numeric UTC offset is rejected; use a calendar day or a `Z` (UTC) instant. This value must use the same form as `from`. When omitted, it defaults to today for day windows or the current hour for hour windows in that timezone. Day windows may not exceed 365 days; hour windows may not exceed 720 hours (30 days).\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "BirdSMS",
                      "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "US",
                      "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "carrier",
                      "value": "Verizon",
                      "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                    },
                    {
                      "disabled": true,
                      "key": "compare",
                      "value": "",
                      "description": "Set to `previous_period` to also include the same statistics for the immediately preceding window of equal length, plus the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"delivery\": {\n    \"accepted\": 14820,\n    \"sent\": 14810,\n    \"delivered\": 14720,\n    \"undelivered\": 60,\n    \"failed\": 25,\n    \"rejected\": 10,\n    \"expired\": 5,\n    \"delivery_rate\": 0.9932,\n    \"failure_rate\": 0.0061\n  },\n  \"latency\": {\n    \"processing\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"delivery\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"total\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    }\n  },\n  \"comparison\": {\n    \"period\": {\n      \"from\": \"2026-05-01\",\n      \"to\": \"2026-05-25\",\n      \"data_as_of\": \"2026-05-25T14:03:10Z\"\n    },\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"sent\": 14810,\n      \"delivered\": 14720,\n      \"undelivered\": 60,\n      \"failed\": 25,\n      \"rejected\": 10,\n      \"expired\": 5,\n      \"delivery_rate\": 0.9932,\n      \"failure_rate\": 0.0061\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"delta\": {\n      \"accepted_pct_change\": 0.508,\n      \"sent_pct_change\": 0.121,\n      \"delivered_pct_change\": 0.122,\n      \"undelivered_pct_change\": -0.031,\n      \"failed_pct_change\": -0.018,\n      \"rejected_pct_change\": 0,\n      \"expired_pct_change\": 0.04,\n      \"delivery_rate_pp\": 0.004,\n      \"failure_rate_pp\": -0.0008\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "10efa8b0-9968-8fa2-8a8f-b42543615ccb",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get aggregate outbound SMS statistics",
                "description": {
                  "content": "Returns one aggregate row for the requested period. It includes SMS lifecycle counts, delivery and failure rates, and processing, delivery, and total latency percentiles (`p50`, `p95`, and `p99`). Rows use send-time attribution, so recent periods can under-report `delivered` while delivery reports arrive.\n\nRate fields are `null` when their denominator is zero. For example, `delivery_rate` is `null` when no message was accepted.\n\n`from` and `to` must both be days or RFC 3339 instants. Day windows cover up to 365 days. Instant bounds round down to the hour and may span up to 720 hours. Mixing the forms returns `422`. Set `timezone` for local boundaries, one dimension filter at most, or `compare=previous_period` for the preceding equal-length window.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Inclusive start of the window: a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The `timezone` parameter makes a calendar day local and rounds an instant down to the local hour. Omit `timezone` to use UTC. When `timezone` is set, a numeric UTC offset such as `+05:45` is rejected; use a calendar day or a `Z` (UTC) instant. This value must use the same form as `to`. When omitted, it defaults to 30 days before `to` for day windows or 168 hours (7 days) before `to` for hour windows.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "Inclusive end of the window: a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The `timezone` parameter makes a calendar day local and rounds an instant down to the local hour. Omit `timezone` to use UTC. When `timezone` is set, a numeric UTC offset is rejected; use a calendar day or a `Z` (UTC) instant. This value must use the same form as `from`. When omitted, it defaults to today for day windows or the current hour for hour windows in that timezone. Day windows may not exceed 365 days; hour windows may not exceed 720 hours (30 days).\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "BirdSMS",
                      "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "US",
                      "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "carrier",
                      "value": "Verizon",
                      "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                    },
                    {
                      "disabled": true,
                      "key": "compare",
                      "value": "",
                      "description": "Set to `previous_period` to also include the same statistics for the immediately preceding window of equal length, plus the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"delivery\": {\n    \"accepted\": 14820,\n    \"sent\": 14810,\n    \"delivered\": 14720,\n    \"undelivered\": 60,\n    \"failed\": 25,\n    \"rejected\": 10,\n    \"expired\": 5,\n    \"delivery_rate\": 0.9932,\n    \"failure_rate\": 0.0061\n  },\n  \"latency\": {\n    \"processing\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"delivery\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"total\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    }\n  },\n  \"comparison\": {\n    \"period\": {\n      \"from\": \"2026-05-01\",\n      \"to\": \"2026-05-25\",\n      \"data_as_of\": \"2026-05-25T14:03:10Z\"\n    },\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"sent\": 14810,\n      \"delivered\": 14720,\n      \"undelivered\": 60,\n      \"failed\": 25,\n      \"rejected\": 10,\n      \"expired\": 5,\n      \"delivery_rate\": 0.9932,\n      \"failure_rate\": 0.0061\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"delta\": {\n      \"accepted_pct_change\": 0.508,\n      \"sent_pct_change\": 0.121,\n      \"delivered_pct_change\": 0.122,\n      \"undelivered_pct_change\": -0.031,\n      \"failed_pct_change\": -0.018,\n      \"rejected_pct_change\": 0,\n      \"expired_pct_change\": 0.04,\n      \"delivery_rate_pp\": 0.004,\n      \"failure_rate_pp\": -0.0008\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4f714f9c-7a5f-864a-8fda-e528e3a97ed8",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get aggregate outbound SMS statistics",
                "description": {
                  "content": "Returns one aggregate row for the requested period. It includes SMS lifecycle counts, delivery and failure rates, and processing, delivery, and total latency percentiles (`p50`, `p95`, and `p99`). Rows use send-time attribution, so recent periods can under-report `delivered` while delivery reports arrive.\n\nRate fields are `null` when their denominator is zero. For example, `delivery_rate` is `null` when no message was accepted.\n\n`from` and `to` must both be days or RFC 3339 instants. Day windows cover up to 365 days. Instant bounds round down to the hour and may span up to 720 hours. Mixing the forms returns `422`. Set `timezone` for local boundaries, one dimension filter at most, or `compare=previous_period` for the preceding equal-length window.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Inclusive start of the window: a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The `timezone` parameter makes a calendar day local and rounds an instant down to the local hour. Omit `timezone` to use UTC. When `timezone` is set, a numeric UTC offset such as `+05:45` is rejected; use a calendar day or a `Z` (UTC) instant. This value must use the same form as `to`. When omitted, it defaults to 30 days before `to` for day windows or 168 hours (7 days) before `to` for hour windows.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "Inclusive end of the window: a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The `timezone` parameter makes a calendar day local and rounds an instant down to the local hour. Omit `timezone` to use UTC. When `timezone` is set, a numeric UTC offset is rejected; use a calendar day or a `Z` (UTC) instant. This value must use the same form as `from`. When omitted, it defaults to today for day windows or the current hour for hour windows in that timezone. Day windows may not exceed 365 days; hour windows may not exceed 720 hours (30 days).\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "BirdSMS",
                      "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "US",
                      "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "carrier",
                      "value": "Verizon",
                      "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                    },
                    {
                      "disabled": true,
                      "key": "compare",
                      "value": "",
                      "description": "Set to `previous_period` to also include the same statistics for the immediately preceding window of equal length, plus the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"delivery\": {\n    \"accepted\": 14820,\n    \"sent\": 14810,\n    \"delivered\": 14720,\n    \"undelivered\": 60,\n    \"failed\": 25,\n    \"rejected\": 10,\n    \"expired\": 5,\n    \"delivery_rate\": 0.9932,\n    \"failure_rate\": 0.0061\n  },\n  \"latency\": {\n    \"processing\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"delivery\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"total\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    }\n  },\n  \"comparison\": {\n    \"period\": {\n      \"from\": \"2026-05-01\",\n      \"to\": \"2026-05-25\",\n      \"data_as_of\": \"2026-05-25T14:03:10Z\"\n    },\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"sent\": 14810,\n      \"delivered\": 14720,\n      \"undelivered\": 60,\n      \"failed\": 25,\n      \"rejected\": 10,\n      \"expired\": 5,\n      \"delivery_rate\": 0.9932,\n      \"failure_rate\": 0.0061\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"delta\": {\n      \"accepted_pct_change\": 0.508,\n      \"sent_pct_change\": 0.121,\n      \"delivered_pct_change\": 0.122,\n      \"undelivered_pct_change\": -0.031,\n      \"failed_pct_change\": -0.018,\n      \"rejected_pct_change\": 0,\n      \"expired_pct_change\": 0.04,\n      \"delivery_rate_pp\": 0.004,\n      \"failure_rate_pp\": -0.0008\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b512f94a-c3d3-8113-8932-383288911136",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get aggregate outbound SMS statistics",
                "description": {
                  "content": "Returns one aggregate row for the requested period. It includes SMS lifecycle counts, delivery and failure rates, and processing, delivery, and total latency percentiles (`p50`, `p95`, and `p99`). Rows use send-time attribution, so recent periods can under-report `delivered` while delivery reports arrive.\n\nRate fields are `null` when their denominator is zero. For example, `delivery_rate` is `null` when no message was accepted.\n\n`from` and `to` must both be days or RFC 3339 instants. Day windows cover up to 365 days. Instant bounds round down to the hour and may span up to 720 hours. Mixing the forms returns `422`. Set `timezone` for local boundaries, one dimension filter at most, or `compare=previous_period` for the preceding equal-length window.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Inclusive start of the window: a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The `timezone` parameter makes a calendar day local and rounds an instant down to the local hour. Omit `timezone` to use UTC. When `timezone` is set, a numeric UTC offset such as `+05:45` is rejected; use a calendar day or a `Z` (UTC) instant. This value must use the same form as `to`. When omitted, it defaults to 30 days before `to` for day windows or 168 hours (7 days) before `to` for hour windows.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "Inclusive end of the window: a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The `timezone` parameter makes a calendar day local and rounds an instant down to the local hour. Omit `timezone` to use UTC. When `timezone` is set, a numeric UTC offset is rejected; use a calendar day or a `Z` (UTC) instant. This value must use the same form as `from`. When omitted, it defaults to today for day windows or the current hour for hour windows in that timezone. Day windows may not exceed 365 days; hour windows may not exceed 720 hours (30 days).\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "BirdSMS",
                      "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "US",
                      "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "carrier",
                      "value": "Verizon",
                      "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                    },
                    {
                      "disabled": true,
                      "key": "compare",
                      "value": "",
                      "description": "Set to `previous_period` to also include the same statistics for the immediately preceding window of equal length, plus the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"delivery\": {\n    \"accepted\": 14820,\n    \"sent\": 14810,\n    \"delivered\": 14720,\n    \"undelivered\": 60,\n    \"failed\": 25,\n    \"rejected\": 10,\n    \"expired\": 5,\n    \"delivery_rate\": 0.9932,\n    \"failure_rate\": 0.0061\n  },\n  \"latency\": {\n    \"processing\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"delivery\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"total\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    }\n  },\n  \"comparison\": {\n    \"period\": {\n      \"from\": \"2026-05-01\",\n      \"to\": \"2026-05-25\",\n      \"data_as_of\": \"2026-05-25T14:03:10Z\"\n    },\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"sent\": 14810,\n      \"delivered\": 14720,\n      \"undelivered\": 60,\n      \"failed\": 25,\n      \"rejected\": 10,\n      \"expired\": 5,\n      \"delivery_rate\": 0.9932,\n      \"failure_rate\": 0.0061\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"delta\": {\n      \"accepted_pct_change\": 0.508,\n      \"sent_pct_change\": 0.121,\n      \"delivered_pct_change\": 0.122,\n      \"undelivered_pct_change\": -0.031,\n      \"failed_pct_change\": -0.018,\n      \"rejected_pct_change\": 0,\n      \"expired_pct_change\": 0.04,\n      \"delivery_rate_pp\": 0.004,\n      \"failure_rate_pp\": -0.0008\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dc373ff5-a7ce-8f39-8f53-d69e90c66b0d",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get aggregate outbound SMS statistics",
                "description": {
                  "content": "Returns one aggregate row for the requested period. It includes SMS lifecycle counts, delivery and failure rates, and processing, delivery, and total latency percentiles (`p50`, `p95`, and `p99`). Rows use send-time attribution, so recent periods can under-report `delivered` while delivery reports arrive.\n\nRate fields are `null` when their denominator is zero. For example, `delivery_rate` is `null` when no message was accepted.\n\n`from` and `to` must both be days or RFC 3339 instants. Day windows cover up to 365 days. Instant bounds round down to the hour and may span up to 720 hours. Mixing the forms returns `422`. Set `timezone` for local boundaries, one dimension filter at most, or `compare=previous_period` for the preceding equal-length window.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Inclusive start of the window: a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The `timezone` parameter makes a calendar day local and rounds an instant down to the local hour. Omit `timezone` to use UTC. When `timezone` is set, a numeric UTC offset such as `+05:45` is rejected; use a calendar day or a `Z` (UTC) instant. This value must use the same form as `to`. When omitted, it defaults to 30 days before `to` for day windows or 168 hours (7 days) before `to` for hour windows.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "Inclusive end of the window: a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The `timezone` parameter makes a calendar day local and rounds an instant down to the local hour. Omit `timezone` to use UTC. When `timezone` is set, a numeric UTC offset is rejected; use a calendar day or a `Z` (UTC) instant. This value must use the same form as `from`. When omitted, it defaults to today for day windows or the current hour for hour windows in that timezone. Day windows may not exceed 365 days; hour windows may not exceed 720 hours (30 days).\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "BirdSMS",
                      "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "US",
                      "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "carrier",
                      "value": "Verizon",
                      "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                    },
                    {
                      "disabled": true,
                      "key": "compare",
                      "value": "",
                      "description": "Set to `previous_period` to also include the same statistics for the immediately preceding window of equal length, plus the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"delivery\": {\n    \"accepted\": 14820,\n    \"sent\": 14810,\n    \"delivered\": 14720,\n    \"undelivered\": 60,\n    \"failed\": 25,\n    \"rejected\": 10,\n    \"expired\": 5,\n    \"delivery_rate\": 0.9932,\n    \"failure_rate\": 0.0061\n  },\n  \"latency\": {\n    \"processing\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"delivery\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"total\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    }\n  },\n  \"comparison\": {\n    \"period\": {\n      \"from\": \"2026-05-01\",\n      \"to\": \"2026-05-25\",\n      \"data_as_of\": \"2026-05-25T14:03:10Z\"\n    },\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"sent\": 14810,\n      \"delivered\": 14720,\n      \"undelivered\": 60,\n      \"failed\": 25,\n      \"rejected\": 10,\n      \"expired\": 5,\n      \"delivery_rate\": 0.9932,\n      \"failure_rate\": 0.0061\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"delta\": {\n      \"accepted_pct_change\": 0.508,\n      \"sent_pct_change\": 0.121,\n      \"delivered_pct_change\": 0.122,\n      \"undelivered_pct_change\": -0.031,\n      \"failed_pct_change\": -0.018,\n      \"rejected_pct_change\": 0,\n      \"expired_pct_change\": 0.04,\n      \"delivery_rate_pp\": 0.004,\n      \"failure_rate_pp\": -0.0008\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "507a5aca-f50d-8552-840d-89ac9fc0ffad",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get aggregate outbound SMS statistics",
                "description": {
                  "content": "Returns one aggregate row for the requested period. It includes SMS lifecycle counts, delivery and failure rates, and processing, delivery, and total latency percentiles (`p50`, `p95`, and `p99`). Rows use send-time attribution, so recent periods can under-report `delivered` while delivery reports arrive.\n\nRate fields are `null` when their denominator is zero. For example, `delivery_rate` is `null` when no message was accepted.\n\n`from` and `to` must both be days or RFC 3339 instants. Day windows cover up to 365 days. Instant bounds round down to the hour and may span up to 720 hours. Mixing the forms returns `422`. Set `timezone` for local boundaries, one dimension filter at most, or `compare=previous_period` for the preceding equal-length window.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Inclusive start of the window: a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The `timezone` parameter makes a calendar day local and rounds an instant down to the local hour. Omit `timezone` to use UTC. When `timezone` is set, a numeric UTC offset such as `+05:45` is rejected; use a calendar day or a `Z` (UTC) instant. This value must use the same form as `to`. When omitted, it defaults to 30 days before `to` for day windows or 168 hours (7 days) before `to` for hour windows.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "Inclusive end of the window: a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The `timezone` parameter makes a calendar day local and rounds an instant down to the local hour. Omit `timezone` to use UTC. When `timezone` is set, a numeric UTC offset is rejected; use a calendar day or a `Z` (UTC) instant. This value must use the same form as `from`. When omitted, it defaults to today for day windows or the current hour for hour windows in that timezone. Day windows may not exceed 365 days; hour windows may not exceed 720 hours (30 days).\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "BirdSMS",
                      "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "US",
                      "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "carrier",
                      "value": "Verizon",
                      "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                    },
                    {
                      "disabled": true,
                      "key": "compare",
                      "value": "",
                      "description": "Set to `previous_period` to also include the same statistics for the immediately preceding window of equal length, plus the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"delivery\": {\n    \"accepted\": 14820,\n    \"sent\": 14810,\n    \"delivered\": 14720,\n    \"undelivered\": 60,\n    \"failed\": 25,\n    \"rejected\": 10,\n    \"expired\": 5,\n    \"delivery_rate\": 0.9932,\n    \"failure_rate\": 0.0061\n  },\n  \"latency\": {\n    \"processing\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"delivery\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"total\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    }\n  },\n  \"comparison\": {\n    \"period\": {\n      \"from\": \"2026-05-01\",\n      \"to\": \"2026-05-25\",\n      \"data_as_of\": \"2026-05-25T14:03:10Z\"\n    },\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"sent\": 14810,\n      \"delivered\": 14720,\n      \"undelivered\": 60,\n      \"failed\": 25,\n      \"rejected\": 10,\n      \"expired\": 5,\n      \"delivery_rate\": 0.9932,\n      \"failure_rate\": 0.0061\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"delta\": {\n      \"accepted_pct_change\": 0.508,\n      \"sent_pct_change\": 0.121,\n      \"delivered_pct_change\": 0.122,\n      \"undelivered_pct_change\": -0.031,\n      \"failed_pct_change\": -0.018,\n      \"rejected_pct_change\": 0,\n      \"expired_pct_change\": 0.04,\n      \"delivery_rate_pp\": 0.004,\n      \"failure_rate_pp\": -0.0008\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "693c9bf6-3b54-8fc5-8b76-a0a5987fd447",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get aggregate outbound SMS statistics",
                "description": {
                  "content": "Returns one aggregate row for the requested period. It includes SMS lifecycle counts, delivery and failure rates, and processing, delivery, and total latency percentiles (`p50`, `p95`, and `p99`). Rows use send-time attribution, so recent periods can under-report `delivered` while delivery reports arrive.\n\nRate fields are `null` when their denominator is zero. For example, `delivery_rate` is `null` when no message was accepted.\n\n`from` and `to` must both be days or RFC 3339 instants. Day windows cover up to 365 days. Instant bounds round down to the hour and may span up to 720 hours. Mixing the forms returns `422`. Set `timezone` for local boundaries, one dimension filter at most, or `compare=previous_period` for the preceding equal-length window.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Inclusive start of the window: a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The `timezone` parameter makes a calendar day local and rounds an instant down to the local hour. Omit `timezone` to use UTC. When `timezone` is set, a numeric UTC offset such as `+05:45` is rejected; use a calendar day or a `Z` (UTC) instant. This value must use the same form as `to`. When omitted, it defaults to 30 days before `to` for day windows or 168 hours (7 days) before `to` for hour windows.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "Inclusive end of the window: a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The `timezone` parameter makes a calendar day local and rounds an instant down to the local hour. Omit `timezone` to use UTC. When `timezone` is set, a numeric UTC offset is rejected; use a calendar day or a `Z` (UTC) instant. This value must use the same form as `from`. When omitted, it defaults to today for day windows or the current hour for hour windows in that timezone. Day windows may not exceed 365 days; hour windows may not exceed 720 hours (30 days).\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "BirdSMS",
                      "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "US",
                      "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "carrier",
                      "value": "Verizon",
                      "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                    },
                    {
                      "disabled": true,
                      "key": "compare",
                      "value": "",
                      "description": "Set to `previous_period` to also include the same statistics for the immediately preceding window of equal length, plus the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"delivery\": {\n    \"accepted\": 14820,\n    \"sent\": 14810,\n    \"delivered\": 14720,\n    \"undelivered\": 60,\n    \"failed\": 25,\n    \"rejected\": 10,\n    \"expired\": 5,\n    \"delivery_rate\": 0.9932,\n    \"failure_rate\": 0.0061\n  },\n  \"latency\": {\n    \"processing\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"delivery\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    },\n    \"total\": {\n      \"p50_ms\": 420,\n      \"p95_ms\": 1820,\n      \"p99_ms\": 4920\n    }\n  },\n  \"comparison\": {\n    \"period\": {\n      \"from\": \"2026-05-01\",\n      \"to\": \"2026-05-25\",\n      \"data_as_of\": \"2026-05-25T14:03:10Z\"\n    },\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"sent\": 14810,\n      \"delivered\": 14720,\n      \"undelivered\": 60,\n      \"failed\": 25,\n      \"rejected\": 10,\n      \"expired\": 5,\n      \"delivery_rate\": 0.9932,\n      \"failure_rate\": 0.0061\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"delta\": {\n      \"accepted_pct_change\": 0.508,\n      \"sent_pct_change\": 0.121,\n      \"delivered_pct_change\": 0.122,\n      \"undelivered_pct_change\": -0.031,\n      \"failed_pct_change\": -0.018,\n      \"rejected_pct_change\": 0,\n      \"expired_pct_change\": 0.04,\n      \"delivery_rate_pp\": 0.004,\n      \"failure_rate_pp\": -0.0008\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "0746ab52-88a8-807f-8ea7-4bfc33bfa2c1",
          "name": "Get daily outbound SMS statistics",
          "request": {
            "name": "Get daily outbound SMS statistics",
            "description": {
              "content": "Returns one row of SMS lifecycle counts per calendar day. Rows use send-time attribution, so a delivery confirmation is counted on the day when its message was accepted. Recent rows can under-report `delivered` while delivery reports arrive. Days without activity contain zero counts.\n\nRates and latency are whole-window aggregates available from the summary endpoint. Use the message detail endpoints for individual message status.\n\nA request may span up to 365 days; a longer window returns `422`. Set `timezone` for local calendar days instead of UTC.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "stats",
                "daily"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": false,
                  "key": "originator",
                  "value": "BirdSMS",
                  "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                },
                {
                  "disabled": false,
                  "key": "country",
                  "value": "US",
                  "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                },
                {
                  "disabled": false,
                  "key": "category",
                  "value": "transactional",
                  "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                },
                {
                  "disabled": false,
                  "key": "carrier",
                  "value": "Verizon",
                  "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "c3a0d451-4484-8a26-8bcb-517300bdc77c",
              "name": "Daily aggregate stats for the requested period.",
              "originalRequest": {
                "name": "Get daily outbound SMS statistics",
                "description": {
                  "content": "Returns one row of SMS lifecycle counts per calendar day. Rows use send-time attribution, so a delivery confirmation is counted on the day when its message was accepted. Recent rows can under-report `delivered` while delivery reports arrive. Days without activity contain zero counts.\n\nRates and latency are whole-window aggregates available from the summary endpoint. Use the message detail endpoints for individual message status.\n\nA request may span up to 365 days; a longer window returns `422`. Set `timezone` for local calendar days instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "daily"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "BirdSMS",
                      "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "US",
                      "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "carrier",
                      "value": "Verizon",
                      "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "43730fc7-4980-8110-8169-b8fbf7ff51b3",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get daily outbound SMS statistics",
                "description": {
                  "content": "Returns one row of SMS lifecycle counts per calendar day. Rows use send-time attribution, so a delivery confirmation is counted on the day when its message was accepted. Recent rows can under-report `delivered` while delivery reports arrive. Days without activity contain zero counts.\n\nRates and latency are whole-window aggregates available from the summary endpoint. Use the message detail endpoints for individual message status.\n\nA request may span up to 365 days; a longer window returns `422`. Set `timezone` for local calendar days instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "daily"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "BirdSMS",
                      "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "US",
                      "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "carrier",
                      "value": "Verizon",
                      "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9144c0f7-3917-8b6c-84b6-536a40bee2fc",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get daily outbound SMS statistics",
                "description": {
                  "content": "Returns one row of SMS lifecycle counts per calendar day. Rows use send-time attribution, so a delivery confirmation is counted on the day when its message was accepted. Recent rows can under-report `delivered` while delivery reports arrive. Days without activity contain zero counts.\n\nRates and latency are whole-window aggregates available from the summary endpoint. Use the message detail endpoints for individual message status.\n\nA request may span up to 365 days; a longer window returns `422`. Set `timezone` for local calendar days instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "daily"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "BirdSMS",
                      "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "US",
                      "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "carrier",
                      "value": "Verizon",
                      "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "069942db-8955-8ab8-8096-7d8eac67c3ad",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get daily outbound SMS statistics",
                "description": {
                  "content": "Returns one row of SMS lifecycle counts per calendar day. Rows use send-time attribution, so a delivery confirmation is counted on the day when its message was accepted. Recent rows can under-report `delivered` while delivery reports arrive. Days without activity contain zero counts.\n\nRates and latency are whole-window aggregates available from the summary endpoint. Use the message detail endpoints for individual message status.\n\nA request may span up to 365 days; a longer window returns `422`. Set `timezone` for local calendar days instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "daily"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "BirdSMS",
                      "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "US",
                      "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "carrier",
                      "value": "Verizon",
                      "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b99b7b98-9210-8921-8d42-f1faa9e0a2c9",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get daily outbound SMS statistics",
                "description": {
                  "content": "Returns one row of SMS lifecycle counts per calendar day. Rows use send-time attribution, so a delivery confirmation is counted on the day when its message was accepted. Recent rows can under-report `delivered` while delivery reports arrive. Days without activity contain zero counts.\n\nRates and latency are whole-window aggregates available from the summary endpoint. Use the message detail endpoints for individual message status.\n\nA request may span up to 365 days; a longer window returns `422`. Set `timezone` for local calendar days instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "daily"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "BirdSMS",
                      "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "US",
                      "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "carrier",
                      "value": "Verizon",
                      "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b074fb9f-2f06-80a5-852e-2eb5ae38e560",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get daily outbound SMS statistics",
                "description": {
                  "content": "Returns one row of SMS lifecycle counts per calendar day. Rows use send-time attribution, so a delivery confirmation is counted on the day when its message was accepted. Recent rows can under-report `delivered` while delivery reports arrive. Days without activity contain zero counts.\n\nRates and latency are whole-window aggregates available from the summary endpoint. Use the message detail endpoints for individual message status.\n\nA request may span up to 365 days; a longer window returns `422`. Set `timezone` for local calendar days instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "daily"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "BirdSMS",
                      "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "US",
                      "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "carrier",
                      "value": "Verizon",
                      "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "03c930f5-f5a3-8154-8280-60a1c114080b",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get daily outbound SMS statistics",
                "description": {
                  "content": "Returns one row of SMS lifecycle counts per calendar day. Rows use send-time attribution, so a delivery confirmation is counted on the day when its message was accepted. Recent rows can under-report `delivered` while delivery reports arrive. Days without activity contain zero counts.\n\nRates and latency are whole-window aggregates available from the summary endpoint. Use the message detail endpoints for individual message status.\n\nA request may span up to 365 days; a longer window returns `422`. Set `timezone` for local calendar days instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "daily"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "BirdSMS",
                      "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "US",
                      "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "carrier",
                      "value": "Verizon",
                      "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6a13b8f7-120c-88ca-84d2-f0dd512bd37c",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get daily outbound SMS statistics",
                "description": {
                  "content": "Returns one row of SMS lifecycle counts per calendar day. Rows use send-time attribution, so a delivery confirmation is counted on the day when its message was accepted. Recent rows can under-report `delivered` while delivery reports arrive. Days without activity contain zero counts.\n\nRates and latency are whole-window aggregates available from the summary endpoint. Use the message detail endpoints for individual message status.\n\nA request may span up to 365 days; a longer window returns `422`. Set `timezone` for local calendar days instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "daily"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "BirdSMS",
                      "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "US",
                      "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "carrier",
                      "value": "Verizon",
                      "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "d99eaa37-ef62-83b9-8bf3-6d1d0dca4052",
          "name": "Get hourly outbound SMS statistics",
          "request": {
            "name": "Get hourly outbound SMS statistics",
            "description": {
              "content": "Returns one row of SMS lifecycle counts per hour. Rows use send-time attribution, so a delivery confirmation is counted in the hour when its message was accepted. Recent rows can under-report `delivered` while delivery reports arrive.\n\nRates and latency are whole-window aggregates available from the summary endpoint. Set `timezone` for local hours instead of UTC, including zones with sub-hour offsets.\n\nA request may span up to 30 days (720 rows). `from` and `to` are ISO 8601 instants; each bound rounds down to the hour and remains inclusive. An excessive or reversed window returns `422`. Use the daily endpoint for longer ranges.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "stats",
                "hourly"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-25T00:00:00Z",
                  "description": "Start of the window (ISO 8601 instant), rounded down to the start of its hour and included. The boundary uses the local hour when `timezone` is set and the UTC hour otherwise. When `timezone` is set, a numeric UTC offset such as `+05:45` is rejected; use a `Z` (UTC) instant. Defaults to 7 days before `to` when omitted."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25T23:59:59Z",
                  "description": "End of the window (ISO 8601 instant), rounded down to the start of its hour and included. The boundary uses the local hour when `timezone` is set and the UTC hour otherwise, so both bounds are inclusive. When `timezone` is set, a numeric UTC offset is rejected; use a `Z` (UTC) instant. Defaults to the current hour when omitted. The window may not exceed 30 days (720 hours)."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": false,
                  "key": "originator",
                  "value": "BirdSMS",
                  "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                },
                {
                  "disabled": false,
                  "key": "country",
                  "value": "US",
                  "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                },
                {
                  "disabled": false,
                  "key": "category",
                  "value": "transactional",
                  "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                },
                {
                  "disabled": false,
                  "key": "carrier",
                  "value": "Verizon",
                  "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "1c416bdd-0a1f-80a3-819c-c26893b7fdd1",
              "name": "Hourly aggregate stats for the requested period.",
              "originalRequest": {
                "name": "Get hourly outbound SMS statistics",
                "description": {
                  "content": "Returns one row of SMS lifecycle counts per hour. Rows use send-time attribution, so a delivery confirmation is counted in the hour when its message was accepted. Recent rows can under-report `delivered` while delivery reports arrive.\n\nRates and latency are whole-window aggregates available from the summary endpoint. Set `timezone` for local hours instead of UTC, including zones with sub-hour offsets.\n\nA request may span up to 30 days (720 rows). `from` and `to` are ISO 8601 instants; each bound rounds down to the hour and remains inclusive. An excessive or reversed window returns `422`. Use the daily endpoint for longer ranges.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "hourly"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-25T00:00:00Z",
                      "description": "Start of the window (ISO 8601 instant), rounded down to the start of its hour and included. The boundary uses the local hour when `timezone` is set and the UTC hour otherwise. When `timezone` is set, a numeric UTC offset such as `+05:45` is rejected; use a `Z` (UTC) instant. Defaults to 7 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25T23:59:59Z",
                      "description": "End of the window (ISO 8601 instant), rounded down to the start of its hour and included. The boundary uses the local hour when `timezone` is set and the UTC hour otherwise, so both bounds are inclusive. When `timezone` is set, a numeric UTC offset is rejected; use a `Z` (UTC) instant. Defaults to the current hour when omitted. The window may not exceed 30 days (720 hours)."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "BirdSMS",
                      "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "US",
                      "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "carrier",
                      "value": "Verizon",
                      "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e98883f2-7744-8eb4-8de6-c5f17a76eb56",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get hourly outbound SMS statistics",
                "description": {
                  "content": "Returns one row of SMS lifecycle counts per hour. Rows use send-time attribution, so a delivery confirmation is counted in the hour when its message was accepted. Recent rows can under-report `delivered` while delivery reports arrive.\n\nRates and latency are whole-window aggregates available from the summary endpoint. Set `timezone` for local hours instead of UTC, including zones with sub-hour offsets.\n\nA request may span up to 30 days (720 rows). `from` and `to` are ISO 8601 instants; each bound rounds down to the hour and remains inclusive. An excessive or reversed window returns `422`. Use the daily endpoint for longer ranges.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "hourly"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-25T00:00:00Z",
                      "description": "Start of the window (ISO 8601 instant), rounded down to the start of its hour and included. The boundary uses the local hour when `timezone` is set and the UTC hour otherwise. When `timezone` is set, a numeric UTC offset such as `+05:45` is rejected; use a `Z` (UTC) instant. Defaults to 7 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25T23:59:59Z",
                      "description": "End of the window (ISO 8601 instant), rounded down to the start of its hour and included. The boundary uses the local hour when `timezone` is set and the UTC hour otherwise, so both bounds are inclusive. When `timezone` is set, a numeric UTC offset is rejected; use a `Z` (UTC) instant. Defaults to the current hour when omitted. The window may not exceed 30 days (720 hours)."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "BirdSMS",
                      "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "US",
                      "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "carrier",
                      "value": "Verizon",
                      "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d5ec15a6-d5e8-8f0a-877c-652fee96ad6e",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get hourly outbound SMS statistics",
                "description": {
                  "content": "Returns one row of SMS lifecycle counts per hour. Rows use send-time attribution, so a delivery confirmation is counted in the hour when its message was accepted. Recent rows can under-report `delivered` while delivery reports arrive.\n\nRates and latency are whole-window aggregates available from the summary endpoint. Set `timezone` for local hours instead of UTC, including zones with sub-hour offsets.\n\nA request may span up to 30 days (720 rows). `from` and `to` are ISO 8601 instants; each bound rounds down to the hour and remains inclusive. An excessive or reversed window returns `422`. Use the daily endpoint for longer ranges.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "hourly"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-25T00:00:00Z",
                      "description": "Start of the window (ISO 8601 instant), rounded down to the start of its hour and included. The boundary uses the local hour when `timezone` is set and the UTC hour otherwise. When `timezone` is set, a numeric UTC offset such as `+05:45` is rejected; use a `Z` (UTC) instant. Defaults to 7 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25T23:59:59Z",
                      "description": "End of the window (ISO 8601 instant), rounded down to the start of its hour and included. The boundary uses the local hour when `timezone` is set and the UTC hour otherwise, so both bounds are inclusive. When `timezone` is set, a numeric UTC offset is rejected; use a `Z` (UTC) instant. Defaults to the current hour when omitted. The window may not exceed 30 days (720 hours)."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "BirdSMS",
                      "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "US",
                      "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "carrier",
                      "value": "Verizon",
                      "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ed877b33-31bd-8eb0-8ac6-3537da80b6cb",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get hourly outbound SMS statistics",
                "description": {
                  "content": "Returns one row of SMS lifecycle counts per hour. Rows use send-time attribution, so a delivery confirmation is counted in the hour when its message was accepted. Recent rows can under-report `delivered` while delivery reports arrive.\n\nRates and latency are whole-window aggregates available from the summary endpoint. Set `timezone` for local hours instead of UTC, including zones with sub-hour offsets.\n\nA request may span up to 30 days (720 rows). `from` and `to` are ISO 8601 instants; each bound rounds down to the hour and remains inclusive. An excessive or reversed window returns `422`. Use the daily endpoint for longer ranges.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "hourly"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-25T00:00:00Z",
                      "description": "Start of the window (ISO 8601 instant), rounded down to the start of its hour and included. The boundary uses the local hour when `timezone` is set and the UTC hour otherwise. When `timezone` is set, a numeric UTC offset such as `+05:45` is rejected; use a `Z` (UTC) instant. Defaults to 7 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25T23:59:59Z",
                      "description": "End of the window (ISO 8601 instant), rounded down to the start of its hour and included. The boundary uses the local hour when `timezone` is set and the UTC hour otherwise, so both bounds are inclusive. When `timezone` is set, a numeric UTC offset is rejected; use a `Z` (UTC) instant. Defaults to the current hour when omitted. The window may not exceed 30 days (720 hours)."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "BirdSMS",
                      "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "US",
                      "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "carrier",
                      "value": "Verizon",
                      "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c3e3e5f9-42c8-8609-8296-23ce5e628e08",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get hourly outbound SMS statistics",
                "description": {
                  "content": "Returns one row of SMS lifecycle counts per hour. Rows use send-time attribution, so a delivery confirmation is counted in the hour when its message was accepted. Recent rows can under-report `delivered` while delivery reports arrive.\n\nRates and latency are whole-window aggregates available from the summary endpoint. Set `timezone` for local hours instead of UTC, including zones with sub-hour offsets.\n\nA request may span up to 30 days (720 rows). `from` and `to` are ISO 8601 instants; each bound rounds down to the hour and remains inclusive. An excessive or reversed window returns `422`. Use the daily endpoint for longer ranges.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "hourly"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-25T00:00:00Z",
                      "description": "Start of the window (ISO 8601 instant), rounded down to the start of its hour and included. The boundary uses the local hour when `timezone` is set and the UTC hour otherwise. When `timezone` is set, a numeric UTC offset such as `+05:45` is rejected; use a `Z` (UTC) instant. Defaults to 7 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25T23:59:59Z",
                      "description": "End of the window (ISO 8601 instant), rounded down to the start of its hour and included. The boundary uses the local hour when `timezone` is set and the UTC hour otherwise, so both bounds are inclusive. When `timezone` is set, a numeric UTC offset is rejected; use a `Z` (UTC) instant. Defaults to the current hour when omitted. The window may not exceed 30 days (720 hours)."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "BirdSMS",
                      "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "US",
                      "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "carrier",
                      "value": "Verizon",
                      "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f99d6e87-81e7-82ed-8a7c-fd61a57ae3b4",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get hourly outbound SMS statistics",
                "description": {
                  "content": "Returns one row of SMS lifecycle counts per hour. Rows use send-time attribution, so a delivery confirmation is counted in the hour when its message was accepted. Recent rows can under-report `delivered` while delivery reports arrive.\n\nRates and latency are whole-window aggregates available from the summary endpoint. Set `timezone` for local hours instead of UTC, including zones with sub-hour offsets.\n\nA request may span up to 30 days (720 rows). `from` and `to` are ISO 8601 instants; each bound rounds down to the hour and remains inclusive. An excessive or reversed window returns `422`. Use the daily endpoint for longer ranges.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "hourly"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-25T00:00:00Z",
                      "description": "Start of the window (ISO 8601 instant), rounded down to the start of its hour and included. The boundary uses the local hour when `timezone` is set and the UTC hour otherwise. When `timezone` is set, a numeric UTC offset such as `+05:45` is rejected; use a `Z` (UTC) instant. Defaults to 7 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25T23:59:59Z",
                      "description": "End of the window (ISO 8601 instant), rounded down to the start of its hour and included. The boundary uses the local hour when `timezone` is set and the UTC hour otherwise, so both bounds are inclusive. When `timezone` is set, a numeric UTC offset is rejected; use a `Z` (UTC) instant. Defaults to the current hour when omitted. The window may not exceed 30 days (720 hours)."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "BirdSMS",
                      "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "US",
                      "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "carrier",
                      "value": "Verizon",
                      "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "055e2c89-32b2-8ea9-8195-a935e1e22fdc",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get hourly outbound SMS statistics",
                "description": {
                  "content": "Returns one row of SMS lifecycle counts per hour. Rows use send-time attribution, so a delivery confirmation is counted in the hour when its message was accepted. Recent rows can under-report `delivered` while delivery reports arrive.\n\nRates and latency are whole-window aggregates available from the summary endpoint. Set `timezone` for local hours instead of UTC, including zones with sub-hour offsets.\n\nA request may span up to 30 days (720 rows). `from` and `to` are ISO 8601 instants; each bound rounds down to the hour and remains inclusive. An excessive or reversed window returns `422`. Use the daily endpoint for longer ranges.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "hourly"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-25T00:00:00Z",
                      "description": "Start of the window (ISO 8601 instant), rounded down to the start of its hour and included. The boundary uses the local hour when `timezone` is set and the UTC hour otherwise. When `timezone` is set, a numeric UTC offset such as `+05:45` is rejected; use a `Z` (UTC) instant. Defaults to 7 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25T23:59:59Z",
                      "description": "End of the window (ISO 8601 instant), rounded down to the start of its hour and included. The boundary uses the local hour when `timezone` is set and the UTC hour otherwise, so both bounds are inclusive. When `timezone` is set, a numeric UTC offset is rejected; use a `Z` (UTC) instant. Defaults to the current hour when omitted. The window may not exceed 30 days (720 hours)."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "BirdSMS",
                      "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "US",
                      "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "carrier",
                      "value": "Verizon",
                      "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6f08c265-c401-8332-89d3-6750a819c609",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get hourly outbound SMS statistics",
                "description": {
                  "content": "Returns one row of SMS lifecycle counts per hour. Rows use send-time attribution, so a delivery confirmation is counted in the hour when its message was accepted. Recent rows can under-report `delivered` while delivery reports arrive.\n\nRates and latency are whole-window aggregates available from the summary endpoint. Set `timezone` for local hours instead of UTC, including zones with sub-hour offsets.\n\nA request may span up to 30 days (720 rows). `from` and `to` are ISO 8601 instants; each bound rounds down to the hour and remains inclusive. An excessive or reversed window returns `422`. Use the daily endpoint for longer ranges.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "hourly"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-25T00:00:00Z",
                      "description": "Start of the window (ISO 8601 instant), rounded down to the start of its hour and included. The boundary uses the local hour when `timezone` is set and the UTC hour otherwise. When `timezone` is set, a numeric UTC offset such as `+05:45` is rejected; use a `Z` (UTC) instant. Defaults to 7 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25T23:59:59Z",
                      "description": "End of the window (ISO 8601 instant), rounded down to the start of its hour and included. The boundary uses the local hour when `timezone` is set and the UTC hour otherwise, so both bounds are inclusive. When `timezone` is set, a numeric UTC offset is rejected; use a `Z` (UTC) instant. Defaults to the current hour when omitted. The window may not exceed 30 days (720 hours)."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "BirdSMS",
                      "description": "Restrict the statistics to a single originator (the sender address messages were sent from). Mutually exclusive with the other dimension filters (`country`, `category`, `carrier`); only one may be set per request. Matches the message `from`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "US",
                      "description": "Restrict the statistics to a single destination country, as an ISO 3166-1 alpha-2 code. Mutually exclusive with the other dimension filters (`originator`, `category`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "category",
                      "value": "transactional",
                      "description": "Restrict the statistics to a single category. Mutually exclusive with the other dimension filters (`originator`, `country`, `carrier`); only one may be set per request.\n"
                    },
                    {
                      "disabled": false,
                      "key": "carrier",
                      "value": "Verizon",
                      "description": "Restrict the statistics to a single delivery carrier. Mutually exclusive with the other dimension filters (`originator`, `country`, `category`); only one may be set per request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-25\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "0877b092-7d73-8d14-8a79-da3bf246491c",
          "name": "Get outbound SMS statistics by originator",
          "request": {
            "name": "Get outbound SMS statistics by originator",
            "description": {
              "content": "Returns aggregate delivery and latency stats grouped by originator (the sender address messages were sent from) for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the senders you dispatch from.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "stats",
                "originators"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": true,
                  "key": "sort",
                  "value": "",
                  "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum number of originator rows to return, ranked by the `sort` field descending."
                },
                {
                  "disabled": false,
                  "key": "include_trend",
                  "value": "false",
                  "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                },
                {
                  "disabled": true,
                  "key": "trend_grain",
                  "value": "",
                  "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "e8127ce7-1ef6-85b2-8f0a-ee5282559bd6",
              "name": "Per-originator breakdown for the requested period.",
              "originalRequest": {
                "name": "Get outbound SMS statistics by originator",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by originator (the sender address messages were sent from) for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the senders you dispatch from.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "originators"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of originator rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"originator\": \"BirdSMS\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 42\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "407f5d22-ee5c-8512-8dd6-de136b14ae74",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get outbound SMS statistics by originator",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by originator (the sender address messages were sent from) for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the senders you dispatch from.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "originators"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of originator rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"originator\": \"BirdSMS\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 42\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f515b175-d0b7-885e-8103-eeb27818386d",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get outbound SMS statistics by originator",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by originator (the sender address messages were sent from) for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the senders you dispatch from.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "originators"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of originator rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"originator\": \"BirdSMS\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 42\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "45fd0e4a-df4b-88bf-8b4f-80d88f85c033",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get outbound SMS statistics by originator",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by originator (the sender address messages were sent from) for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the senders you dispatch from.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "originators"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of originator rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"originator\": \"BirdSMS\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 42\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "054e593a-fc25-8633-87a2-fe4a50fbaf4a",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get outbound SMS statistics by originator",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by originator (the sender address messages were sent from) for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the senders you dispatch from.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "originators"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of originator rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"originator\": \"BirdSMS\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 42\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9ea43f53-69d6-8534-8a6b-dc3a8200216f",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get outbound SMS statistics by originator",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by originator (the sender address messages were sent from) for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the senders you dispatch from.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "originators"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of originator rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"originator\": \"BirdSMS\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 42\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1b22be42-515d-8928-86d1-37394758582d",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get outbound SMS statistics by originator",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by originator (the sender address messages were sent from) for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the senders you dispatch from.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "originators"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of originator rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"originator\": \"BirdSMS\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 42\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "51be77bd-0249-8074-838a-63ba5203b91b",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get outbound SMS statistics by originator",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by originator (the sender address messages were sent from) for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the senders you dispatch from.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "originators"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of originator rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"originator\": \"BirdSMS\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 42\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "ff3c8220-e8b4-8c6e-89ba-8e59435dc4bf",
          "name": "Get outbound SMS statistics by country",
          "request": {
            "name": "Get outbound SMS statistics by country",
            "description": {
              "content": "Returns aggregate delivery and latency stats grouped by destination country for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the countries you send to.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "stats",
                "countries"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": true,
                  "key": "sort",
                  "value": "",
                  "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum number of country rows to return, ranked by the `sort` field descending."
                },
                {
                  "disabled": false,
                  "key": "include_trend",
                  "value": "false",
                  "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                },
                {
                  "disabled": true,
                  "key": "trend_grain",
                  "value": "",
                  "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "b78d7cba-87c5-8dd8-83c2-4fb286246c54",
              "name": "Per-country breakdown for the requested period.",
              "originalRequest": {
                "name": "Get outbound SMS statistics by country",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by destination country for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the countries you send to.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "countries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of country rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"country\": \"US\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 42\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f35ebeb7-382d-8d7a-8e40-d2ec785bd46e",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get outbound SMS statistics by country",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by destination country for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the countries you send to.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "countries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of country rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"country\": \"US\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 42\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2ee7da4c-519b-8330-8264-81d855caea58",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get outbound SMS statistics by country",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by destination country for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the countries you send to.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "countries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of country rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"country\": \"US\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 42\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3fa83d5b-57a3-8e1f-854c-ee75f9c8fe68",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get outbound SMS statistics by country",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by destination country for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the countries you send to.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "countries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of country rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"country\": \"US\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 42\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a6efbadb-1706-8b77-8be2-586ad8fe33e8",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get outbound SMS statistics by country",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by destination country for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the countries you send to.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "countries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of country rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"country\": \"US\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 42\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5c28a660-6848-807f-83d4-9138175c20fd",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get outbound SMS statistics by country",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by destination country for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the countries you send to.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "countries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of country rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"country\": \"US\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 42\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e680bcb8-7802-8050-8091-f99c35700e77",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get outbound SMS statistics by country",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by destination country for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the countries you send to.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "countries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of country rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"country\": \"US\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 42\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fcefb244-3f4c-895c-82d8-04f0037ef7db",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get outbound SMS statistics by country",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by destination country for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the countries you send to.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "countries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of country rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"country\": \"US\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 42\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "d07f6111-cfe7-8e97-8de9-802d65a53b44",
          "name": "Get outbound SMS statistics by category",
          "request": {
            "name": "Get outbound SMS statistics by category",
            "description": {
              "content": "Returns aggregate delivery and latency stats grouped by message category for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the categories you send under.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "stats",
                "categories"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": true,
                  "key": "sort",
                  "value": "",
                  "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum number of category rows to return, ranked by the `sort` field descending."
                },
                {
                  "disabled": false,
                  "key": "include_trend",
                  "value": "false",
                  "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                },
                {
                  "disabled": true,
                  "key": "trend_grain",
                  "value": "",
                  "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "11e5f83d-1a87-880f-8fd1-3b57b6ae9775",
              "name": "Per-category breakdown for the requested period.",
              "originalRequest": {
                "name": "Get outbound SMS statistics by category",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by message category for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the categories you send under.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "categories"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of category rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"category\": \"transactional\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 8\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "331bbf3f-cf13-89b0-894f-5487bb63df5e",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get outbound SMS statistics by category",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by message category for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the categories you send under.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "categories"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of category rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"category\": \"transactional\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 8\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e7f412e7-ad1b-8b91-8845-cb6ca8a654ca",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get outbound SMS statistics by category",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by message category for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the categories you send under.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "categories"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of category rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"category\": \"transactional\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 8\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "282c717d-cef8-87af-8ca0-f1f34cd223ed",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get outbound SMS statistics by category",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by message category for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the categories you send under.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "categories"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of category rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"category\": \"transactional\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 8\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a98b4857-721d-805c-806c-066e18f069ad",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get outbound SMS statistics by category",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by message category for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the categories you send under.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "categories"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of category rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"category\": \"transactional\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 8\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d5541807-ed0c-8dc1-87e2-3d9dd85f2e41",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get outbound SMS statistics by category",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by message category for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the categories you send under.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "categories"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of category rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"category\": \"transactional\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 8\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "410e8e04-ba12-8313-8874-ba5edea13bce",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get outbound SMS statistics by category",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by message category for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the categories you send under.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "categories"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of category rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"category\": \"transactional\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 8\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d1b80cff-bff8-8ec6-842b-255cf306fc0e",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get outbound SMS statistics by category",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by message category for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare sending performance across the categories you send under.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "categories"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of category rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"category\": \"transactional\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 8\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "a199fcd9-b057-8089-84db-6ad25f388bcb",
          "name": "Get outbound SMS statistics by error code",
          "request": {
            "name": "Get outbound SMS statistics by error code",
            "description": {
              "content": "Returns aggregate delivery and latency statistics grouped by normalized failure reason for the requested period. The grouping key matches the `error_code` filter on the message list, so each row maps directly to the affected messages rather than a raw carrier code. Rows are ranked by the `sort` metric (default `failed`) descending and capped at the requested `limit` (default 50, hard maximum 200).\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive. The maximum window is 365 days; requesting a longer range returns 422.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "stats",
                "error-codes"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": true,
                  "key": "sort",
                  "value": "",
                  "description": "Metric to rank rows by, applied descending. Defaults to `failed`. Only lifecycle counts are sortable; this breakdown has no rates.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum number of error-code rows to return, ranked by the `sort` field descending."
                },
                {
                  "disabled": false,
                  "key": "include_trend",
                  "value": "false",
                  "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                },
                {
                  "disabled": true,
                  "key": "trend_grain",
                  "value": "",
                  "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "716706af-6aea-81cf-83ba-c39296ba496c",
              "name": "Per-error-code breakdown for the requested period.",
              "originalRequest": {
                "name": "Get outbound SMS statistics by error code",
                "description": {
                  "content": "Returns aggregate delivery and latency statistics grouped by normalized failure reason for the requested period. The grouping key matches the `error_code` filter on the message list, so each row maps directly to the affected messages rather than a raw carrier code. Rows are ranked by the `sort` metric (default `failed`) descending and capped at the requested `limit` (default 50, hard maximum 200).\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive. The maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "error-codes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Defaults to `failed`. Only lifecycle counts are sortable; this breakdown has no rates.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of error-code rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"error_code\": \"invalid_destination\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 17\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1e722502-1c1f-8568-8a26-3170d8e40fba",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get outbound SMS statistics by error code",
                "description": {
                  "content": "Returns aggregate delivery and latency statistics grouped by normalized failure reason for the requested period. The grouping key matches the `error_code` filter on the message list, so each row maps directly to the affected messages rather than a raw carrier code. Rows are ranked by the `sort` metric (default `failed`) descending and capped at the requested `limit` (default 50, hard maximum 200).\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive. The maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "error-codes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Defaults to `failed`. Only lifecycle counts are sortable; this breakdown has no rates.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of error-code rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"error_code\": \"invalid_destination\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 17\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "31fd9c28-d6e3-8248-8ac7-51c996eed622",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get outbound SMS statistics by error code",
                "description": {
                  "content": "Returns aggregate delivery and latency statistics grouped by normalized failure reason for the requested period. The grouping key matches the `error_code` filter on the message list, so each row maps directly to the affected messages rather than a raw carrier code. Rows are ranked by the `sort` metric (default `failed`) descending and capped at the requested `limit` (default 50, hard maximum 200).\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive. The maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "error-codes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Defaults to `failed`. Only lifecycle counts are sortable; this breakdown has no rates.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of error-code rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"error_code\": \"invalid_destination\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 17\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b84dc831-2099-86ad-87c7-dd5c39e12942",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get outbound SMS statistics by error code",
                "description": {
                  "content": "Returns aggregate delivery and latency statistics grouped by normalized failure reason for the requested period. The grouping key matches the `error_code` filter on the message list, so each row maps directly to the affected messages rather than a raw carrier code. Rows are ranked by the `sort` metric (default `failed`) descending and capped at the requested `limit` (default 50, hard maximum 200).\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive. The maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "error-codes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Defaults to `failed`. Only lifecycle counts are sortable; this breakdown has no rates.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of error-code rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"error_code\": \"invalid_destination\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 17\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "12f9c3fe-07cd-80f6-8cbe-81a5c214d612",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get outbound SMS statistics by error code",
                "description": {
                  "content": "Returns aggregate delivery and latency statistics grouped by normalized failure reason for the requested period. The grouping key matches the `error_code` filter on the message list, so each row maps directly to the affected messages rather than a raw carrier code. Rows are ranked by the `sort` metric (default `failed`) descending and capped at the requested `limit` (default 50, hard maximum 200).\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive. The maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "error-codes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Defaults to `failed`. Only lifecycle counts are sortable; this breakdown has no rates.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of error-code rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"error_code\": \"invalid_destination\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 17\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ed82e9c2-fa3b-84e3-83fb-2ba8a2c87d23",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get outbound SMS statistics by error code",
                "description": {
                  "content": "Returns aggregate delivery and latency statistics grouped by normalized failure reason for the requested period. The grouping key matches the `error_code` filter on the message list, so each row maps directly to the affected messages rather than a raw carrier code. Rows are ranked by the `sort` metric (default `failed`) descending and capped at the requested `limit` (default 50, hard maximum 200).\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive. The maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "error-codes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Defaults to `failed`. Only lifecycle counts are sortable; this breakdown has no rates.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of error-code rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"error_code\": \"invalid_destination\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 17\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1d44a24e-38c7-8517-81e4-b2268fc5fdb7",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get outbound SMS statistics by error code",
                "description": {
                  "content": "Returns aggregate delivery and latency statistics grouped by normalized failure reason for the requested period. The grouping key matches the `error_code` filter on the message list, so each row maps directly to the affected messages rather than a raw carrier code. Rows are ranked by the `sort` metric (default `failed`) descending and capped at the requested `limit` (default 50, hard maximum 200).\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive. The maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "error-codes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Defaults to `failed`. Only lifecycle counts are sortable; this breakdown has no rates.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of error-code rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"error_code\": \"invalid_destination\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 17\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e9cfad63-03fd-8498-8584-1c4f275fe785",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get outbound SMS statistics by error code",
                "description": {
                  "content": "Returns aggregate delivery and latency statistics grouped by normalized failure reason for the requested period. The grouping key matches the `error_code` filter on the message list, so each row maps directly to the affected messages rather than a raw carrier code. Rows are ranked by the `sort` metric (default `failed`) descending and capped at the requested `limit` (default 50, hard maximum 200).\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive. The maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "error-codes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Defaults to `failed`. Only lifecycle counts are sortable; this breakdown has no rates.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of error-code rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"error_code\": \"invalid_destination\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 17\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "6ae4df6c-2419-8ae2-8634-334464fb26c2",
          "name": "Get outbound SMS statistics by carrier",
          "request": {
            "name": "Get outbound SMS statistics by carrier",
            "description": {
              "content": "Returns aggregate delivery and latency stats grouped by delivery carrier for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare delivery performance across the carriers that handled your messages.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "stats",
                "carriers"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": true,
                  "key": "sort",
                  "value": "",
                  "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum number of carrier rows to return, ranked by the `sort` field descending."
                },
                {
                  "disabled": false,
                  "key": "include_trend",
                  "value": "false",
                  "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                },
                {
                  "disabled": true,
                  "key": "trend_grain",
                  "value": "",
                  "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "be6a5284-7fa7-8ec1-81b9-36b077f44203",
              "name": "Per-carrier breakdown for the requested period.",
              "originalRequest": {
                "name": "Get outbound SMS statistics by carrier",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by delivery carrier for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare delivery performance across the carriers that handled your messages.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "carriers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of carrier rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"carrier\": \"Verizon\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 24\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "67801073-604e-879b-85a5-9149a69d194c",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get outbound SMS statistics by carrier",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by delivery carrier for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare delivery performance across the carriers that handled your messages.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "carriers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of carrier rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"carrier\": \"Verizon\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 24\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "044cdcfd-0a74-8c3d-844e-05f0dc78604d",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get outbound SMS statistics by carrier",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by delivery carrier for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare delivery performance across the carriers that handled your messages.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "carriers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of carrier rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"carrier\": \"Verizon\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 24\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d3a014b1-05c2-88ce-89ab-071121653568",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get outbound SMS statistics by carrier",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by delivery carrier for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare delivery performance across the carriers that handled your messages.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "carriers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of carrier rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"carrier\": \"Verizon\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 24\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "15f07232-b537-898e-8eb8-1220a2ce715a",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get outbound SMS statistics by carrier",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by delivery carrier for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare delivery performance across the carriers that handled your messages.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "carriers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of carrier rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"carrier\": \"Verizon\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 24\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "84d6b914-6731-8fdf-828d-43c0fdcf91b0",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get outbound SMS statistics by carrier",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by delivery carrier for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare delivery performance across the carriers that handled your messages.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "carriers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of carrier rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"carrier\": \"Verizon\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 24\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "37be4251-a83f-8c5f-8a6c-148f92938d0a",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get outbound SMS statistics by carrier",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by delivery carrier for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare delivery performance across the carriers that handled your messages.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "carriers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of carrier rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"carrier\": \"Verizon\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 24\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0af0de9e-2841-858f-8cad-4cf6c1150492",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get outbound SMS statistics by carrier",
                "description": {
                  "content": "Returns aggregate delivery and latency stats grouped by delivery carrier for the requested period. Rows are ranked by the `sort` metric (default `accepted`) descending and capped at the requested `limit` (default 50, hard maximum 200). Use this to compare delivery performance across the carriers that handled your messages.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving, and its counts grow as reports arrive.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "carriers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of carrier rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"carrier\": \"Verizon\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 24\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "757f3f57-d91e-8e98-8ecf-d806b5fee373",
          "name": "Get outbound SMS statistics by tag",
          "request": {
            "name": "Get outbound SMS statistics by tag",
            "description": {
              "content": "Returns delivery and latency statistics grouped by tag (`name:value`). Rows sort by the selected metric in descending order and are capped by `limit`. The default sort is `accepted`; the default limit is 50 and the maximum is 200.\n\nOnly tagged messages appear. A message with several tags is counted once under each, so rows do not sum to the period total.\n\nRows use send-time attribution, so recent periods can under-report `delivered` while delivery reports arrive. A request may span up to 365 days; a longer window returns `422`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "stats",
                "tags"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": true,
                  "key": "sort",
                  "value": "",
                  "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum number of tag rows to return, ranked by the `sort` field descending."
                },
                {
                  "disabled": false,
                  "key": "include_trend",
                  "value": "false",
                  "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                },
                {
                  "disabled": true,
                  "key": "trend_grain",
                  "value": "",
                  "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "96014472-3ee2-8bbe-8691-41fb4b2369f0",
              "name": "Per-tag breakdown for the requested period.",
              "originalRequest": {
                "name": "Get outbound SMS statistics by tag",
                "description": {
                  "content": "Returns delivery and latency statistics grouped by tag (`name:value`). Rows sort by the selected metric in descending order and are capped by `limit`. The default sort is `accepted`; the default limit is 50 and the maximum is 200.\n\nOnly tagged messages appear. A message with several tags is counted once under each, so rows do not sum to the period total.\n\nRows use send-time attribution, so recent periods can under-report `delivered` while delivery reports arrive. A request may span up to 365 days; a longer window returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "tags"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of tag rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"tag\": \"campaign:summer_sale\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 18\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f86db5cf-44b3-858a-8057-5ec5bc042f9f",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get outbound SMS statistics by tag",
                "description": {
                  "content": "Returns delivery and latency statistics grouped by tag (`name:value`). Rows sort by the selected metric in descending order and are capped by `limit`. The default sort is `accepted`; the default limit is 50 and the maximum is 200.\n\nOnly tagged messages appear. A message with several tags is counted once under each, so rows do not sum to the period total.\n\nRows use send-time attribution, so recent periods can under-report `delivered` while delivery reports arrive. A request may span up to 365 days; a longer window returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "tags"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of tag rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"tag\": \"campaign:summer_sale\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 18\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "68a7b8ce-3049-8e62-87c7-1a912129cd76",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get outbound SMS statistics by tag",
                "description": {
                  "content": "Returns delivery and latency statistics grouped by tag (`name:value`). Rows sort by the selected metric in descending order and are capped by `limit`. The default sort is `accepted`; the default limit is 50 and the maximum is 200.\n\nOnly tagged messages appear. A message with several tags is counted once under each, so rows do not sum to the period total.\n\nRows use send-time attribution, so recent periods can under-report `delivered` while delivery reports arrive. A request may span up to 365 days; a longer window returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "tags"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of tag rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"tag\": \"campaign:summer_sale\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 18\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "23266861-f1d8-8e44-8347-f64ad70ca366",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get outbound SMS statistics by tag",
                "description": {
                  "content": "Returns delivery and latency statistics grouped by tag (`name:value`). Rows sort by the selected metric in descending order and are capped by `limit`. The default sort is `accepted`; the default limit is 50 and the maximum is 200.\n\nOnly tagged messages appear. A message with several tags is counted once under each, so rows do not sum to the period total.\n\nRows use send-time attribution, so recent periods can under-report `delivered` while delivery reports arrive. A request may span up to 365 days; a longer window returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "tags"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of tag rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"tag\": \"campaign:summer_sale\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 18\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b84c5486-4c36-81c7-8526-eec47a70965d",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get outbound SMS statistics by tag",
                "description": {
                  "content": "Returns delivery and latency statistics grouped by tag (`name:value`). Rows sort by the selected metric in descending order and are capped by `limit`. The default sort is `accepted`; the default limit is 50 and the maximum is 200.\n\nOnly tagged messages appear. A message with several tags is counted once under each, so rows do not sum to the period total.\n\nRows use send-time attribution, so recent periods can under-report `delivered` while delivery reports arrive. A request may span up to 365 days; a longer window returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "tags"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of tag rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"tag\": \"campaign:summer_sale\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 18\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8f15d77a-9987-860a-8e1d-51ec009aae43",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get outbound SMS statistics by tag",
                "description": {
                  "content": "Returns delivery and latency statistics grouped by tag (`name:value`). Rows sort by the selected metric in descending order and are capped by `limit`. The default sort is `accepted`; the default limit is 50 and the maximum is 200.\n\nOnly tagged messages appear. A message with several tags is counted once under each, so rows do not sum to the period total.\n\nRows use send-time attribution, so recent periods can under-report `delivered` while delivery reports arrive. A request may span up to 365 days; a longer window returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "tags"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of tag rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"tag\": \"campaign:summer_sale\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 18\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4b9144f8-d5c1-8bbc-823c-cf9544329bd9",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get outbound SMS statistics by tag",
                "description": {
                  "content": "Returns delivery and latency statistics grouped by tag (`name:value`). Rows sort by the selected metric in descending order and are capped by `limit`. The default sort is `accepted`; the default limit is 50 and the maximum is 200.\n\nOnly tagged messages appear. A message with several tags is counted once under each, so rows do not sum to the period total.\n\nRows use send-time attribution, so recent periods can under-report `delivered` while delivery reports arrive. A request may span up to 365 days; a longer window returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "tags"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of tag rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"tag\": \"campaign:summer_sale\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 18\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d5cced23-57bc-87a1-8182-995f3fd8813c",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get outbound SMS statistics by tag",
                "description": {
                  "content": "Returns delivery and latency statistics grouped by tag (`name:value`). Rows sort by the selected metric in descending order and are capped by `limit`. The default sort is `accepted`; the default limit is 50 and the maximum is 200.\n\nOnly tagged messages appear. A message with several tags is counted once under each, so rows do not sum to the period total.\n\nRows use send-time attribution, so recent periods can under-report `delivered` while delivery reports arrive. A request may span up to 365 days; a longer window returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "tags"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted; with `include_trend=true` and `trend_grain=hourly` the default tightens to keep the window within the 720-hour trend cap."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": "",
                      "description": "Metric to rank rows by, applied descending. Any lifecycle count or derived rate in the response may be used; rows whose rate is undefined (zero denominator) sort last. Defaults to `accepted`.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of tag rows to return, ranked by the `sort` field descending."
                    },
                    {
                      "disabled": false,
                      "key": "include_trend",
                      "value": "false",
                      "description": "When true, each row also carries a `trend` array: a short per-bucket lifecycle-count series for that row over the window. Returned only when `limit` is 50 or fewer and the window is at most 90 days (trend_grain=daily) or 720 hours (trend_grain=hourly); a larger request returns 422.\n"
                    },
                    {
                      "disabled": true,
                      "key": "trend_grain",
                      "value": "",
                      "description": "Bucket grain for the `trend` series. Has no effect unless `include_trend=true`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"tag\": \"campaign:summer_sale\",\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"sent\": 14810,\n        \"delivered\": 14720,\n        \"undelivered\": 60,\n        \"failed\": 25,\n        \"rejected\": 10,\n        \"expired\": 5,\n        \"delivery_rate\": 0.9932,\n        \"failure_rate\": 0.0061\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"trend\": [\n        {\n          \"bucket\": \"2026-05-25\",\n          \"delivery\": {\n            \"accepted\": 14820,\n            \"sent\": 14810,\n            \"delivered\": 14720,\n            \"undelivered\": 60,\n            \"failed\": 25,\n            \"rejected\": 10,\n            \"expired\": 5\n          }\n        }\n      ]\n    }\n  ],\n  \"total\": 18\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "5f0dadf6-74dc-814b-8ec5-8b81032a38e2",
          "name": "Get outbound SMS statistics by status",
          "request": {
            "name": "Get outbound SMS statistics by status",
            "description": {
              "content": "Returns one row per lifecycle status with activity in the requested period, ordered by count descending. The statuses are `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, and `expired`.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving. With at most seven statuses, this breakdown has no cap, ranking, limit, or trend parameters.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "stats",
                "statuses"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "e4753763-7c6c-85c3-8cf0-250ecd8c9536",
              "name": "Per-status breakdown for the requested period.",
              "originalRequest": {
                "name": "Get outbound SMS statistics by status",
                "description": {
                  "content": "Returns one row per lifecycle status with activity in the requested period, ordered by count descending. The statuses are `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, and `expired`.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving. With at most seven statuses, this breakdown has no cap, ranking, limit, or trend parameters.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "statuses"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"status\": \"delivered\",\n      \"count\": 14720\n    }\n  ],\n  \"total\": 5\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c3c45131-cd83-89f6-853d-d7abc208d6d4",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get outbound SMS statistics by status",
                "description": {
                  "content": "Returns one row per lifecycle status with activity in the requested period, ordered by count descending. The statuses are `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, and `expired`.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving. With at most seven statuses, this breakdown has no cap, ranking, limit, or trend parameters.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "statuses"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"status\": \"delivered\",\n      \"count\": 14720\n    }\n  ],\n  \"total\": 5\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2c08cd78-d4b3-8575-8b55-0bb2b5ec23f0",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get outbound SMS statistics by status",
                "description": {
                  "content": "Returns one row per lifecycle status with activity in the requested period, ordered by count descending. The statuses are `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, and `expired`.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving. With at most seven statuses, this breakdown has no cap, ranking, limit, or trend parameters.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "statuses"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"status\": \"delivered\",\n      \"count\": 14720\n    }\n  ],\n  \"total\": 5\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1a792e89-ba08-8fc8-86e7-bd92fa1f3982",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get outbound SMS statistics by status",
                "description": {
                  "content": "Returns one row per lifecycle status with activity in the requested period, ordered by count descending. The statuses are `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, and `expired`.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving. With at most seven statuses, this breakdown has no cap, ranking, limit, or trend parameters.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "statuses"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"status\": \"delivered\",\n      \"count\": 14720\n    }\n  ],\n  \"total\": 5\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8cf8d193-2267-8142-8df2-45c2c2f75b59",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get outbound SMS statistics by status",
                "description": {
                  "content": "Returns one row per lifecycle status with activity in the requested period, ordered by count descending. The statuses are `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, and `expired`.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving. With at most seven statuses, this breakdown has no cap, ranking, limit, or trend parameters.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "statuses"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"status\": \"delivered\",\n      \"count\": 14720\n    }\n  ],\n  \"total\": 5\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "25eb4727-626f-8ffe-84b7-6cd340a78437",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get outbound SMS statistics by status",
                "description": {
                  "content": "Returns one row per lifecycle status with activity in the requested period, ordered by count descending. The statuses are `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, and `expired`.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving. With at most seven statuses, this breakdown has no cap, ranking, limit, or trend parameters.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "statuses"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"status\": \"delivered\",\n      \"count\": 14720\n    }\n  ],\n  \"total\": 5\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6a254889-4c8e-86fb-85fe-9009430e3d81",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get outbound SMS statistics by status",
                "description": {
                  "content": "Returns one row per lifecycle status with activity in the requested period, ordered by count descending. The statuses are `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, and `expired`.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving. With at most seven statuses, this breakdown has no cap, ranking, limit, or trend parameters.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "statuses"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"status\": \"delivered\",\n      \"count\": 14720\n    }\n  ],\n  \"total\": 5\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f3d9621e-a485-8803-8258-a3504e0c49f3",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get outbound SMS statistics by status",
                "description": {
                  "content": "Returns one row per lifecycle status with activity in the requested period, ordered by count descending. The statuses are `accepted`, `sent`, `delivered`, `undelivered`, `failed`, `rejected`, and `expired`.\n\nRows use send-time attribution. A delivery confirmed during the period for a message accepted earlier counts against the earlier period. A recent period therefore under-reports `delivered` while delivery reports are still arriving. With at most seven statuses, this breakdown has no cap, ranking, limit, or trend parameters.\n\nThe maximum window is 365 days; requesting a longer range returns 422.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "statuses"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive) in YYYY-MM-DD, interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"status\": \"delivered\",\n      \"count\": 14720\n    }\n  ],\n  \"total\": 5\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "acfd6cc8-6553-897f-80a7-811d23b416e0",
          "name": "Get aggregate inbound SMS statistics",
          "request": {
            "name": "Get aggregate inbound SMS statistics",
            "description": {
              "content": "Returns the total number of messages your numbers received over the period, using the time the carrier received each message.\n\nThe response contains only a count because a received message has one state. Use the outbound statistics endpoints for delivery rates and latency data about messages you send.\n\nThe maximum window is 365 days; a longer range returns 422. Set `timezone` to resolve the period against your local calendar instead of UTC.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "stats",
                "inbound",
                "summary"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Inclusive start of the window, either a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The form you use selects the grain the total is resolved at. Interpreted in `timezone`, or in UTC when `timezone` is omitted. Must use the same form as `to`. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; pass a calendar day or a `Z` instant instead. Defaults to 30 days before `to` for day windows, or 168 hours before `to` for hour windows.\n"
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "Inclusive end of the window, in the same form as `from`. Defaults to today, or the current hour for an hour window. A day window may not exceed 365 days and an hour window 720 hours.\n"
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": true,
                  "key": "compare",
                  "value": "",
                  "description": "Set to `previous_period` to include the received-message count for the immediately preceding window of equal length. The response also includes the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "27ebfa65-9913-8ad2-8580-e1514cce9232",
              "name": "Total received messages for the requested period.",
              "originalRequest": {
                "name": "Get aggregate inbound SMS statistics",
                "description": {
                  "content": "Returns the total number of messages your numbers received over the period, using the time the carrier received each message.\n\nThe response contains only a count because a received message has one state. Use the outbound statistics endpoints for delivery rates and latency data about messages you send.\n\nThe maximum window is 365 days; a longer range returns 422. Set `timezone` to resolve the period against your local calendar instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Inclusive start of the window, either a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The form you use selects the grain the total is resolved at. Interpreted in `timezone`, or in UTC when `timezone` is omitted. Must use the same form as `to`. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; pass a calendar day or a `Z` instant instead. Defaults to 30 days before `to` for day windows, or 168 hours before `to` for hour windows.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "Inclusive end of the window, in the same form as `from`. Defaults to today, or the current hour for an hour window. A day window may not exceed 365 days and an hour window 720 hours.\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "compare",
                      "value": "",
                      "description": "Set to `previous_period` to include the received-message count for the immediately preceding window of equal length. The response also includes the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"received\": 4210,\n  \"comparison\": {\n    \"period\": {\n      \"from\": \"2026-05-01\",\n      \"to\": \"2026-05-25\",\n      \"data_as_of\": \"2026-05-25T14:03:10Z\"\n    },\n    \"received\": 3980,\n    \"delta\": {\n      \"received_pct_change\": 0.058\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0600f320-e8fe-889b-8e4a-dd1e0f22d2ec",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get aggregate inbound SMS statistics",
                "description": {
                  "content": "Returns the total number of messages your numbers received over the period, using the time the carrier received each message.\n\nThe response contains only a count because a received message has one state. Use the outbound statistics endpoints for delivery rates and latency data about messages you send.\n\nThe maximum window is 365 days; a longer range returns 422. Set `timezone` to resolve the period against your local calendar instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Inclusive start of the window, either a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The form you use selects the grain the total is resolved at. Interpreted in `timezone`, or in UTC when `timezone` is omitted. Must use the same form as `to`. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; pass a calendar day or a `Z` instant instead. Defaults to 30 days before `to` for day windows, or 168 hours before `to` for hour windows.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "Inclusive end of the window, in the same form as `from`. Defaults to today, or the current hour for an hour window. A day window may not exceed 365 days and an hour window 720 hours.\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "compare",
                      "value": "",
                      "description": "Set to `previous_period` to include the received-message count for the immediately preceding window of equal length. The response also includes the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"received\": 4210,\n  \"comparison\": {\n    \"period\": {\n      \"from\": \"2026-05-01\",\n      \"to\": \"2026-05-25\",\n      \"data_as_of\": \"2026-05-25T14:03:10Z\"\n    },\n    \"received\": 3980,\n    \"delta\": {\n      \"received_pct_change\": 0.058\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8f160567-3939-8ebb-8c26-4f1020aec2c6",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get aggregate inbound SMS statistics",
                "description": {
                  "content": "Returns the total number of messages your numbers received over the period, using the time the carrier received each message.\n\nThe response contains only a count because a received message has one state. Use the outbound statistics endpoints for delivery rates and latency data about messages you send.\n\nThe maximum window is 365 days; a longer range returns 422. Set `timezone` to resolve the period against your local calendar instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Inclusive start of the window, either a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The form you use selects the grain the total is resolved at. Interpreted in `timezone`, or in UTC when `timezone` is omitted. Must use the same form as `to`. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; pass a calendar day or a `Z` instant instead. Defaults to 30 days before `to` for day windows, or 168 hours before `to` for hour windows.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "Inclusive end of the window, in the same form as `from`. Defaults to today, or the current hour for an hour window. A day window may not exceed 365 days and an hour window 720 hours.\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "compare",
                      "value": "",
                      "description": "Set to `previous_period` to include the received-message count for the immediately preceding window of equal length. The response also includes the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"received\": 4210,\n  \"comparison\": {\n    \"period\": {\n      \"from\": \"2026-05-01\",\n      \"to\": \"2026-05-25\",\n      \"data_as_of\": \"2026-05-25T14:03:10Z\"\n    },\n    \"received\": 3980,\n    \"delta\": {\n      \"received_pct_change\": 0.058\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e7bda54e-514e-8b3c-8902-04d5f816a619",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get aggregate inbound SMS statistics",
                "description": {
                  "content": "Returns the total number of messages your numbers received over the period, using the time the carrier received each message.\n\nThe response contains only a count because a received message has one state. Use the outbound statistics endpoints for delivery rates and latency data about messages you send.\n\nThe maximum window is 365 days; a longer range returns 422. Set `timezone` to resolve the period against your local calendar instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Inclusive start of the window, either a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The form you use selects the grain the total is resolved at. Interpreted in `timezone`, or in UTC when `timezone` is omitted. Must use the same form as `to`. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; pass a calendar day or a `Z` instant instead. Defaults to 30 days before `to` for day windows, or 168 hours before `to` for hour windows.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "Inclusive end of the window, in the same form as `from`. Defaults to today, or the current hour for an hour window. A day window may not exceed 365 days and an hour window 720 hours.\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "compare",
                      "value": "",
                      "description": "Set to `previous_period` to include the received-message count for the immediately preceding window of equal length. The response also includes the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"received\": 4210,\n  \"comparison\": {\n    \"period\": {\n      \"from\": \"2026-05-01\",\n      \"to\": \"2026-05-25\",\n      \"data_as_of\": \"2026-05-25T14:03:10Z\"\n    },\n    \"received\": 3980,\n    \"delta\": {\n      \"received_pct_change\": 0.058\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "94b4c8c1-63d6-8f25-803e-1b1fb922016a",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get aggregate inbound SMS statistics",
                "description": {
                  "content": "Returns the total number of messages your numbers received over the period, using the time the carrier received each message.\n\nThe response contains only a count because a received message has one state. Use the outbound statistics endpoints for delivery rates and latency data about messages you send.\n\nThe maximum window is 365 days; a longer range returns 422. Set `timezone` to resolve the period against your local calendar instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Inclusive start of the window, either a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The form you use selects the grain the total is resolved at. Interpreted in `timezone`, or in UTC when `timezone` is omitted. Must use the same form as `to`. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; pass a calendar day or a `Z` instant instead. Defaults to 30 days before `to` for day windows, or 168 hours before `to` for hour windows.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "Inclusive end of the window, in the same form as `from`. Defaults to today, or the current hour for an hour window. A day window may not exceed 365 days and an hour window 720 hours.\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "compare",
                      "value": "",
                      "description": "Set to `previous_period` to include the received-message count for the immediately preceding window of equal length. The response also includes the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"received\": 4210,\n  \"comparison\": {\n    \"period\": {\n      \"from\": \"2026-05-01\",\n      \"to\": \"2026-05-25\",\n      \"data_as_of\": \"2026-05-25T14:03:10Z\"\n    },\n    \"received\": 3980,\n    \"delta\": {\n      \"received_pct_change\": 0.058\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5052bf55-d6ea-8467-8af8-988e6fffb9af",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get aggregate inbound SMS statistics",
                "description": {
                  "content": "Returns the total number of messages your numbers received over the period, using the time the carrier received each message.\n\nThe response contains only a count because a received message has one state. Use the outbound statistics endpoints for delivery rates and latency data about messages you send.\n\nThe maximum window is 365 days; a longer range returns 422. Set `timezone` to resolve the period against your local calendar instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Inclusive start of the window, either a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The form you use selects the grain the total is resolved at. Interpreted in `timezone`, or in UTC when `timezone` is omitted. Must use the same form as `to`. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; pass a calendar day or a `Z` instant instead. Defaults to 30 days before `to` for day windows, or 168 hours before `to` for hour windows.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "Inclusive end of the window, in the same form as `from`. Defaults to today, or the current hour for an hour window. A day window may not exceed 365 days and an hour window 720 hours.\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "compare",
                      "value": "",
                      "description": "Set to `previous_period` to include the received-message count for the immediately preceding window of equal length. The response also includes the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"received\": 4210,\n  \"comparison\": {\n    \"period\": {\n      \"from\": \"2026-05-01\",\n      \"to\": \"2026-05-25\",\n      \"data_as_of\": \"2026-05-25T14:03:10Z\"\n    },\n    \"received\": 3980,\n    \"delta\": {\n      \"received_pct_change\": 0.058\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a6e56532-b5dd-86d1-8e48-83e8211bac5a",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get aggregate inbound SMS statistics",
                "description": {
                  "content": "Returns the total number of messages your numbers received over the period, using the time the carrier received each message.\n\nThe response contains only a count because a received message has one state. Use the outbound statistics endpoints for delivery rates and latency data about messages you send.\n\nThe maximum window is 365 days; a longer range returns 422. Set `timezone` to resolve the period against your local calendar instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Inclusive start of the window, either a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The form you use selects the grain the total is resolved at. Interpreted in `timezone`, or in UTC when `timezone` is omitted. Must use the same form as `to`. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; pass a calendar day or a `Z` instant instead. Defaults to 30 days before `to` for day windows, or 168 hours before `to` for hour windows.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "Inclusive end of the window, in the same form as `from`. Defaults to today, or the current hour for an hour window. A day window may not exceed 365 days and an hour window 720 hours.\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "compare",
                      "value": "",
                      "description": "Set to `previous_period` to include the received-message count for the immediately preceding window of equal length. The response also includes the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"received\": 4210,\n  \"comparison\": {\n    \"period\": {\n      \"from\": \"2026-05-01\",\n      \"to\": \"2026-05-25\",\n      \"data_as_of\": \"2026-05-25T14:03:10Z\"\n    },\n    \"received\": 3980,\n    \"delta\": {\n      \"received_pct_change\": 0.058\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9537927e-0d85-86b0-8b80-4649a3794509",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get aggregate inbound SMS statistics",
                "description": {
                  "content": "Returns the total number of messages your numbers received over the period, using the time the carrier received each message.\n\nThe response contains only a count because a received message has one state. Use the outbound statistics endpoints for delivery rates and latency data about messages you send.\n\nThe maximum window is 365 days; a longer range returns 422. Set `timezone` to resolve the period against your local calendar instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "summary"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Inclusive start of the window, either a calendar day (YYYY-MM-DD) or an RFC 3339 instant rounded down to the hour. The form you use selects the grain the total is resolved at. Interpreted in `timezone`, or in UTC when `timezone` is omitted. Must use the same form as `to`. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; pass a calendar day or a `Z` instant instead. Defaults to 30 days before `to` for day windows, or 168 hours before `to` for hour windows.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "Inclusive end of the window, in the same form as `from`. Defaults to today, or the current hour for an hour window. A day window may not exceed 365 days and an hour window 720 hours.\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": true,
                      "key": "compare",
                      "value": "",
                      "description": "Set to `previous_period` to include the received-message count for the immediately preceding window of equal length. The response also includes the change between the two, so you can show \"+X% vs last period\" without a second request.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"received\": 4210,\n  \"comparison\": {\n    \"period\": {\n      \"from\": \"2026-05-01\",\n      \"to\": \"2026-05-25\",\n      \"data_as_of\": \"2026-05-25T14:03:10Z\"\n    },\n    \"received\": 3980,\n    \"delta\": {\n      \"received_pct_change\": 0.058\n    }\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "2ee57f86-0644-89ae-80d6-9ece5ab7f731",
          "name": "Get daily inbound SMS statistics",
          "request": {
            "name": "Get daily inbound SMS statistics",
            "description": {
              "content": "Returns the number of messages your numbers received, one row per calendar day. Rows use the time the carrier received each message, and days with no messages contain a zero count.\n\nEach row contains only a count because a received message has one state. Use the outbound statistics endpoints for lifecycle and delivery-latency data about messages you send.\n\nThe maximum window is 365 days; a longer range returns 422. Set `timezone` to bucket rows by your local calendar day instead of UTC.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "stats",
                "inbound",
                "daily"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "d801c0bf-3d4e-8709-8dec-931849d2a079",
              "name": "Received-message counts per day for the requested period.",
              "originalRequest": {
                "name": "Get daily inbound SMS statistics",
                "description": {
                  "content": "Returns the number of messages your numbers received, one row per calendar day. Rows use the time the carrier received each message, and days with no messages contain a zero count.\n\nEach row contains only a count because a received message has one state. Use the outbound statistics endpoints for lifecycle and delivery-latency data about messages you send.\n\nThe maximum window is 365 days; a longer range returns 422. Set `timezone` to bucket rows by your local calendar day instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "daily"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-01\",\n      \"received\": 128\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ce300911-088a-8f89-8457-e86327aae0e6",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get daily inbound SMS statistics",
                "description": {
                  "content": "Returns the number of messages your numbers received, one row per calendar day. Rows use the time the carrier received each message, and days with no messages contain a zero count.\n\nEach row contains only a count because a received message has one state. Use the outbound statistics endpoints for lifecycle and delivery-latency data about messages you send.\n\nThe maximum window is 365 days; a longer range returns 422. Set `timezone` to bucket rows by your local calendar day instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "daily"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-01\",\n      \"received\": 128\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "91b24613-37a1-81ea-80d9-a379e9c73753",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get daily inbound SMS statistics",
                "description": {
                  "content": "Returns the number of messages your numbers received, one row per calendar day. Rows use the time the carrier received each message, and days with no messages contain a zero count.\n\nEach row contains only a count because a received message has one state. Use the outbound statistics endpoints for lifecycle and delivery-latency data about messages you send.\n\nThe maximum window is 365 days; a longer range returns 422. Set `timezone` to bucket rows by your local calendar day instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "daily"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-01\",\n      \"received\": 128\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3b5480f0-8131-8cef-8937-8bc0625aab38",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get daily inbound SMS statistics",
                "description": {
                  "content": "Returns the number of messages your numbers received, one row per calendar day. Rows use the time the carrier received each message, and days with no messages contain a zero count.\n\nEach row contains only a count because a received message has one state. Use the outbound statistics endpoints for lifecycle and delivery-latency data about messages you send.\n\nThe maximum window is 365 days; a longer range returns 422. Set `timezone` to bucket rows by your local calendar day instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "daily"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-01\",\n      \"received\": 128\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dcce33e5-e3c9-8389-8f61-163eb2cea00c",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get daily inbound SMS statistics",
                "description": {
                  "content": "Returns the number of messages your numbers received, one row per calendar day. Rows use the time the carrier received each message, and days with no messages contain a zero count.\n\nEach row contains only a count because a received message has one state. Use the outbound statistics endpoints for lifecycle and delivery-latency data about messages you send.\n\nThe maximum window is 365 days; a longer range returns 422. Set `timezone` to bucket rows by your local calendar day instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "daily"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-01\",\n      \"received\": 128\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1ed609bc-8a82-8f2b-8f7b-2d7a95fe7c85",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get daily inbound SMS statistics",
                "description": {
                  "content": "Returns the number of messages your numbers received, one row per calendar day. Rows use the time the carrier received each message, and days with no messages contain a zero count.\n\nEach row contains only a count because a received message has one state. Use the outbound statistics endpoints for lifecycle and delivery-latency data about messages you send.\n\nThe maximum window is 365 days; a longer range returns 422. Set `timezone` to bucket rows by your local calendar day instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "daily"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-01\",\n      \"received\": 128\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cf915b38-b4d0-8096-8000-745b981e99ec",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get daily inbound SMS statistics",
                "description": {
                  "content": "Returns the number of messages your numbers received, one row per calendar day. Rows use the time the carrier received each message, and days with no messages contain a zero count.\n\nEach row contains only a count because a received message has one state. Use the outbound statistics endpoints for lifecycle and delivery-latency data about messages you send.\n\nThe maximum window is 365 days; a longer range returns 422. Set `timezone` to bucket rows by your local calendar day instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "daily"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-01\",\n      \"received\": 128\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "da885b82-bf9b-8fd3-8471-8947fbd2c86a",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get daily inbound SMS statistics",
                "description": {
                  "content": "Returns the number of messages your numbers received, one row per calendar day. Rows use the time the carrier received each message, and days with no messages contain a zero count.\n\nEach row contains only a count because a received message has one state. Use the outbound statistics endpoints for lifecycle and delivery-latency data about messages you send.\n\nThe maximum window is 365 days; a longer range returns 422. Set `timezone` to bucket rows by your local calendar day instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "daily"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-01\",\n      \"received\": 128\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "6c72b613-4e52-826b-84ef-831332daa9e4",
          "name": "Get hourly inbound SMS statistics",
          "request": {
            "name": "Get hourly inbound SMS statistics",
            "description": {
              "content": "Returns the number of messages your numbers received, one row per hour. Rows use the time the carrier received each message, and hours with no messages contain a zero count.\n\nEach row contains only a count because a received message has one state. Use the outbound statistics endpoints for lifecycle and delivery-latency data about messages you send.\n\nThe maximum window is 720 hours; a longer range returns 422. Set `timezone` to bucket rows by your local hour instead of UTC.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "stats",
                "inbound",
                "hourly"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01T00:00:00Z",
                  "description": "Start of the window (inclusive), an RFC 3339 instant truncated to the hour. Defaults to 7 days (168 hours) before `to` when omitted."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25T23:00:00Z",
                  "description": "End of the window (inclusive), an RFC 3339 instant truncated to the hour. Defaults to the current hour when omitted. Window may not exceed 720 hours. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; pass a calendar day or a `Z` instant instead."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "15c35e65-a781-803a-8f3b-af162ca25621",
              "name": "Received-message counts per hour for the requested period.",
              "originalRequest": {
                "name": "Get hourly inbound SMS statistics",
                "description": {
                  "content": "Returns the number of messages your numbers received, one row per hour. Rows use the time the carrier received each message, and hours with no messages contain a zero count.\n\nEach row contains only a count because a received message has one state. Use the outbound statistics endpoints for lifecycle and delivery-latency data about messages you send.\n\nThe maximum window is 720 hours; a longer range returns 422. Set `timezone` to bucket rows by your local hour instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "hourly"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Start of the window (inclusive), an RFC 3339 instant truncated to the hour. Defaults to 7 days (168 hours) before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25T23:00:00Z",
                      "description": "End of the window (inclusive), an RFC 3339 instant truncated to the hour. Defaults to the current hour when omitted. Window may not exceed 720 hours. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; pass a calendar day or a `Z` instant instead."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-01\",\n      \"received\": 128\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "185c7dec-017d-898d-8b93-2c29d8809536",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get hourly inbound SMS statistics",
                "description": {
                  "content": "Returns the number of messages your numbers received, one row per hour. Rows use the time the carrier received each message, and hours with no messages contain a zero count.\n\nEach row contains only a count because a received message has one state. Use the outbound statistics endpoints for lifecycle and delivery-latency data about messages you send.\n\nThe maximum window is 720 hours; a longer range returns 422. Set `timezone` to bucket rows by your local hour instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "hourly"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Start of the window (inclusive), an RFC 3339 instant truncated to the hour. Defaults to 7 days (168 hours) before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25T23:00:00Z",
                      "description": "End of the window (inclusive), an RFC 3339 instant truncated to the hour. Defaults to the current hour when omitted. Window may not exceed 720 hours. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; pass a calendar day or a `Z` instant instead."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-01\",\n      \"received\": 128\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "45d3656b-461f-887f-8279-eaab5b8c5924",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get hourly inbound SMS statistics",
                "description": {
                  "content": "Returns the number of messages your numbers received, one row per hour. Rows use the time the carrier received each message, and hours with no messages contain a zero count.\n\nEach row contains only a count because a received message has one state. Use the outbound statistics endpoints for lifecycle and delivery-latency data about messages you send.\n\nThe maximum window is 720 hours; a longer range returns 422. Set `timezone` to bucket rows by your local hour instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "hourly"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Start of the window (inclusive), an RFC 3339 instant truncated to the hour. Defaults to 7 days (168 hours) before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25T23:00:00Z",
                      "description": "End of the window (inclusive), an RFC 3339 instant truncated to the hour. Defaults to the current hour when omitted. Window may not exceed 720 hours. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; pass a calendar day or a `Z` instant instead."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-01\",\n      \"received\": 128\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7691035d-b103-86e8-8a84-f6e5ffcaf49a",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get hourly inbound SMS statistics",
                "description": {
                  "content": "Returns the number of messages your numbers received, one row per hour. Rows use the time the carrier received each message, and hours with no messages contain a zero count.\n\nEach row contains only a count because a received message has one state. Use the outbound statistics endpoints for lifecycle and delivery-latency data about messages you send.\n\nThe maximum window is 720 hours; a longer range returns 422. Set `timezone` to bucket rows by your local hour instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "hourly"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Start of the window (inclusive), an RFC 3339 instant truncated to the hour. Defaults to 7 days (168 hours) before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25T23:00:00Z",
                      "description": "End of the window (inclusive), an RFC 3339 instant truncated to the hour. Defaults to the current hour when omitted. Window may not exceed 720 hours. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; pass a calendar day or a `Z` instant instead."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-01\",\n      \"received\": 128\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8955a5cd-d142-8776-8e5d-633ea7c6219a",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get hourly inbound SMS statistics",
                "description": {
                  "content": "Returns the number of messages your numbers received, one row per hour. Rows use the time the carrier received each message, and hours with no messages contain a zero count.\n\nEach row contains only a count because a received message has one state. Use the outbound statistics endpoints for lifecycle and delivery-latency data about messages you send.\n\nThe maximum window is 720 hours; a longer range returns 422. Set `timezone` to bucket rows by your local hour instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "hourly"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Start of the window (inclusive), an RFC 3339 instant truncated to the hour. Defaults to 7 days (168 hours) before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25T23:00:00Z",
                      "description": "End of the window (inclusive), an RFC 3339 instant truncated to the hour. Defaults to the current hour when omitted. Window may not exceed 720 hours. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; pass a calendar day or a `Z` instant instead."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-01\",\n      \"received\": 128\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e58b4a3c-170b-8140-8dae-bc856fa1e022",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get hourly inbound SMS statistics",
                "description": {
                  "content": "Returns the number of messages your numbers received, one row per hour. Rows use the time the carrier received each message, and hours with no messages contain a zero count.\n\nEach row contains only a count because a received message has one state. Use the outbound statistics endpoints for lifecycle and delivery-latency data about messages you send.\n\nThe maximum window is 720 hours; a longer range returns 422. Set `timezone` to bucket rows by your local hour instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "hourly"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Start of the window (inclusive), an RFC 3339 instant truncated to the hour. Defaults to 7 days (168 hours) before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25T23:00:00Z",
                      "description": "End of the window (inclusive), an RFC 3339 instant truncated to the hour. Defaults to the current hour when omitted. Window may not exceed 720 hours. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; pass a calendar day or a `Z` instant instead."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-01\",\n      \"received\": 128\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "54092bde-933e-8387-883a-5d540757cc7e",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get hourly inbound SMS statistics",
                "description": {
                  "content": "Returns the number of messages your numbers received, one row per hour. Rows use the time the carrier received each message, and hours with no messages contain a zero count.\n\nEach row contains only a count because a received message has one state. Use the outbound statistics endpoints for lifecycle and delivery-latency data about messages you send.\n\nThe maximum window is 720 hours; a longer range returns 422. Set `timezone` to bucket rows by your local hour instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "hourly"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Start of the window (inclusive), an RFC 3339 instant truncated to the hour. Defaults to 7 days (168 hours) before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25T23:00:00Z",
                      "description": "End of the window (inclusive), an RFC 3339 instant truncated to the hour. Defaults to the current hour when omitted. Window may not exceed 720 hours. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; pass a calendar day or a `Z` instant instead."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-01\",\n      \"received\": 128\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6b332211-d64a-87c0-84db-57b0a1a12a58",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get hourly inbound SMS statistics",
                "description": {
                  "content": "Returns the number of messages your numbers received, one row per hour. Rows use the time the carrier received each message, and hours with no messages contain a zero count.\n\nEach row contains only a count because a received message has one state. Use the outbound statistics endpoints for lifecycle and delivery-latency data about messages you send.\n\nThe maximum window is 720 hours; a longer range returns 422. Set `timezone` to bucket rows by your local hour instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "hourly"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Start of the window (inclusive), an RFC 3339 instant truncated to the hour. Defaults to 7 days (168 hours) before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25T23:00:00Z",
                      "description": "End of the window (inclusive), an RFC 3339 instant truncated to the hour. Defaults to the current hour when omitted. Window may not exceed 720 hours. A numeric UTC offset (for example `+05:45`) is rejected when `timezone` is set; pass a calendar day or a `Z` instant instead."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-05-01\",\n      \"received\": 128\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "2e7ffde1-cbed-8fee-89f9-9ee792cbeb34",
          "name": "Get inbound SMS statistics by country",
          "request": {
            "name": "Get inbound SMS statistics by country",
            "description": {
              "content": "Returns the number of messages your numbers received, grouped by the receiving number's country. Rows are ranked by volume, highest first, and use the time the carrier received each message.\n\nEach row contains only a count because a received message has one state. The maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "stats",
                "inbound",
                "countries"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "cc665244-8d17-80cd-8b5c-412de2876c3b",
              "name": "Received-message volume by country for the requested period.",
              "originalRequest": {
                "name": "Get inbound SMS statistics by country",
                "description": {
                  "content": "Returns the number of messages your numbers received, grouped by the receiving number's country. Rows are ranked by volume, highest first, and use the time the carrier received each message.\n\nEach row contains only a count because a received message has one state. The maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "countries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"country\": \"US\",\n      \"received\": 1840\n    }\n  ],\n  \"total\": 12\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fa87418f-b0cb-80ce-86d5-527473233b91",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get inbound SMS statistics by country",
                "description": {
                  "content": "Returns the number of messages your numbers received, grouped by the receiving number's country. Rows are ranked by volume, highest first, and use the time the carrier received each message.\n\nEach row contains only a count because a received message has one state. The maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "countries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"country\": \"US\",\n      \"received\": 1840\n    }\n  ],\n  \"total\": 12\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9ca6a826-15ef-885f-8cf5-193fff4270c4",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get inbound SMS statistics by country",
                "description": {
                  "content": "Returns the number of messages your numbers received, grouped by the receiving number's country. Rows are ranked by volume, highest first, and use the time the carrier received each message.\n\nEach row contains only a count because a received message has one state. The maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "countries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"country\": \"US\",\n      \"received\": 1840\n    }\n  ],\n  \"total\": 12\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "919dd1df-6fac-84dd-870e-436f1a289d84",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get inbound SMS statistics by country",
                "description": {
                  "content": "Returns the number of messages your numbers received, grouped by the receiving number's country. Rows are ranked by volume, highest first, and use the time the carrier received each message.\n\nEach row contains only a count because a received message has one state. The maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "countries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"country\": \"US\",\n      \"received\": 1840\n    }\n  ],\n  \"total\": 12\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1b63f124-e47b-82a6-85f7-e3b047672179",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get inbound SMS statistics by country",
                "description": {
                  "content": "Returns the number of messages your numbers received, grouped by the receiving number's country. Rows are ranked by volume, highest first, and use the time the carrier received each message.\n\nEach row contains only a count because a received message has one state. The maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "countries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"country\": \"US\",\n      \"received\": 1840\n    }\n  ],\n  \"total\": 12\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "59c9d166-daef-8cdc-89da-df12e3c80fbd",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get inbound SMS statistics by country",
                "description": {
                  "content": "Returns the number of messages your numbers received, grouped by the receiving number's country. Rows are ranked by volume, highest first, and use the time the carrier received each message.\n\nEach row contains only a count because a received message has one state. The maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "countries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"country\": \"US\",\n      \"received\": 1840\n    }\n  ],\n  \"total\": 12\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6e9a2f0b-20e5-85c4-8fa9-2ff966962cf2",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get inbound SMS statistics by country",
                "description": {
                  "content": "Returns the number of messages your numbers received, grouped by the receiving number's country. Rows are ranked by volume, highest first, and use the time the carrier received each message.\n\nEach row contains only a count because a received message has one state. The maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "countries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"country\": \"US\",\n      \"received\": 1840\n    }\n  ],\n  \"total\": 12\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c9228e57-f980-8615-8f93-abaec79aee11",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get inbound SMS statistics by country",
                "description": {
                  "content": "Returns the number of messages your numbers received, grouped by the receiving number's country. Rows are ranked by volume, highest first, and use the time the carrier received each message.\n\nEach row contains only a count because a received message has one state. The maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "countries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"country\": \"US\",\n      \"received\": 1840\n    }\n  ],\n  \"total\": 12\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "7c534cf6-aca8-80b6-8676-17368a1e39d0",
          "name": "Get inbound SMS statistics by operator",
          "request": {
            "name": "Get inbound SMS statistics by operator",
            "description": {
              "content": "Returns the number of messages your numbers received, grouped by the sender's mobile operator. Rows are ranked by volume, highest first, and use the time the carrier received each message. Operators are identified by MCC-MNC when the carrier reports it.\n\nEach row contains only a count because a received message has one state. Messages without a reported sending operator are excluded, so the rows can sum to less than the summary total.\n\nThe maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "stats",
                "inbound",
                "operators"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "d8d52833-5e1b-8472-83c6-a370e1d9b80f",
              "name": "Received-message volume by operator for the requested period.",
              "originalRequest": {
                "name": "Get inbound SMS statistics by operator",
                "description": {
                  "content": "Returns the number of messages your numbers received, grouped by the sender's mobile operator. Rows are ranked by volume, highest first, and use the time the carrier received each message. Operators are identified by MCC-MNC when the carrier reports it.\n\nEach row contains only a count because a received message has one state. Messages without a reported sending operator are excluded, so the rows can sum to less than the summary total.\n\nThe maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "operators"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"mcc_mnc\": \"311480\",\n      \"received\": 640\n    }\n  ],\n  \"total\": 38\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a48b6db2-3649-81a7-8052-9c1a9e4e7d12",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get inbound SMS statistics by operator",
                "description": {
                  "content": "Returns the number of messages your numbers received, grouped by the sender's mobile operator. Rows are ranked by volume, highest first, and use the time the carrier received each message. Operators are identified by MCC-MNC when the carrier reports it.\n\nEach row contains only a count because a received message has one state. Messages without a reported sending operator are excluded, so the rows can sum to less than the summary total.\n\nThe maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "operators"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"mcc_mnc\": \"311480\",\n      \"received\": 640\n    }\n  ],\n  \"total\": 38\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3f3e5c67-b894-84c5-8427-c739847d53be",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get inbound SMS statistics by operator",
                "description": {
                  "content": "Returns the number of messages your numbers received, grouped by the sender's mobile operator. Rows are ranked by volume, highest first, and use the time the carrier received each message. Operators are identified by MCC-MNC when the carrier reports it.\n\nEach row contains only a count because a received message has one state. Messages without a reported sending operator are excluded, so the rows can sum to less than the summary total.\n\nThe maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "operators"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"mcc_mnc\": \"311480\",\n      \"received\": 640\n    }\n  ],\n  \"total\": 38\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "086b8e13-3bff-8093-8314-148a4cdc7808",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get inbound SMS statistics by operator",
                "description": {
                  "content": "Returns the number of messages your numbers received, grouped by the sender's mobile operator. Rows are ranked by volume, highest first, and use the time the carrier received each message. Operators are identified by MCC-MNC when the carrier reports it.\n\nEach row contains only a count because a received message has one state. Messages without a reported sending operator are excluded, so the rows can sum to less than the summary total.\n\nThe maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "operators"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"mcc_mnc\": \"311480\",\n      \"received\": 640\n    }\n  ],\n  \"total\": 38\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f03c252e-bbee-89ed-8499-3e69bf5b44e7",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get inbound SMS statistics by operator",
                "description": {
                  "content": "Returns the number of messages your numbers received, grouped by the sender's mobile operator. Rows are ranked by volume, highest first, and use the time the carrier received each message. Operators are identified by MCC-MNC when the carrier reports it.\n\nEach row contains only a count because a received message has one state. Messages without a reported sending operator are excluded, so the rows can sum to less than the summary total.\n\nThe maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "operators"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"mcc_mnc\": \"311480\",\n      \"received\": 640\n    }\n  ],\n  \"total\": 38\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7fc210d7-6c50-8118-8563-ea0676f48074",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get inbound SMS statistics by operator",
                "description": {
                  "content": "Returns the number of messages your numbers received, grouped by the sender's mobile operator. Rows are ranked by volume, highest first, and use the time the carrier received each message. Operators are identified by MCC-MNC when the carrier reports it.\n\nEach row contains only a count because a received message has one state. Messages without a reported sending operator are excluded, so the rows can sum to less than the summary total.\n\nThe maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "operators"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"mcc_mnc\": \"311480\",\n      \"received\": 640\n    }\n  ],\n  \"total\": 38\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a8ffecd9-fc5d-84ef-8cc2-96b47b6bccef",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get inbound SMS statistics by operator",
                "description": {
                  "content": "Returns the number of messages your numbers received, grouped by the sender's mobile operator. Rows are ranked by volume, highest first, and use the time the carrier received each message. Operators are identified by MCC-MNC when the carrier reports it.\n\nEach row contains only a count because a received message has one state. Messages without a reported sending operator are excluded, so the rows can sum to less than the summary total.\n\nThe maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "operators"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"mcc_mnc\": \"311480\",\n      \"received\": 640\n    }\n  ],\n  \"total\": 38\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1511af1c-6010-8b42-891f-6a05caed0e5a",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get inbound SMS statistics by operator",
                "description": {
                  "content": "Returns the number of messages your numbers received, grouped by the sender's mobile operator. Rows are ranked by volume, highest first, and use the time the carrier received each message. Operators are identified by MCC-MNC when the carrier reports it.\n\nEach row contains only a count because a received message has one state. Messages without a reported sending operator are excluded, so the rows can sum to less than the summary total.\n\nThe maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "operators"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"mcc_mnc\": \"311480\",\n      \"received\": 640\n    }\n  ],\n  \"total\": 38\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "d4e9e0d6-8d4a-8398-8236-b222a7e02e91",
          "name": "Get inbound SMS statistics by number",
          "request": {
            "name": "Get inbound SMS statistics by number",
            "description": {
              "content": "Returns how many messages each of your numbers received. Rows are ranked by volume, highest first, and use the time the carrier received each message.\n\nEach row contains only a count because a received message has one state. The maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "stats",
                "inbound",
                "numbers"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-05-01",
                  "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-05-25",
                  "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "38a6f0a8-f34d-802c-8bca-a02c17428a68",
              "name": "Received-message volume by number for the requested period.",
              "originalRequest": {
                "name": "Get inbound SMS statistics by number",
                "description": {
                  "content": "Returns how many messages each of your numbers received. Rows are ranked by volume, highest first, and use the time the carrier received each message.\n\nEach row contains only a count because a received message has one state. The maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "numbers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"number\": \"+14155557701\",\n      \"received\": 412\n    }\n  ],\n  \"total\": 6\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "48adbe16-bc04-8dbe-8e7f-4e115381d768",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get inbound SMS statistics by number",
                "description": {
                  "content": "Returns how many messages each of your numbers received. Rows are ranked by volume, highest first, and use the time the carrier received each message.\n\nEach row contains only a count because a received message has one state. The maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "numbers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"number\": \"+14155557701\",\n      \"received\": 412\n    }\n  ],\n  \"total\": 6\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ae014003-2128-861d-8b8b-5d248e7758c7",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get inbound SMS statistics by number",
                "description": {
                  "content": "Returns how many messages each of your numbers received. Rows are ranked by volume, highest first, and use the time the carrier received each message.\n\nEach row contains only a count because a received message has one state. The maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "numbers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"number\": \"+14155557701\",\n      \"received\": 412\n    }\n  ],\n  \"total\": 6\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "36389097-b8d1-8e54-8e32-c337c505ab3d",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get inbound SMS statistics by number",
                "description": {
                  "content": "Returns how many messages each of your numbers received. Rows are ranked by volume, highest first, and use the time the carrier received each message.\n\nEach row contains only a count because a received message has one state. The maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "numbers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"number\": \"+14155557701\",\n      \"received\": 412\n    }\n  ],\n  \"total\": 6\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "19e8ea43-96a1-8687-8203-de5f9d68e84d",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get inbound SMS statistics by number",
                "description": {
                  "content": "Returns how many messages each of your numbers received. Rows are ranked by volume, highest first, and use the time the carrier received each message.\n\nEach row contains only a count because a received message has one state. The maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "numbers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"number\": \"+14155557701\",\n      \"received\": 412\n    }\n  ],\n  \"total\": 6\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fed1d508-2d68-84ce-8e35-81093ef14f4d",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get inbound SMS statistics by number",
                "description": {
                  "content": "Returns how many messages each of your numbers received. Rows are ranked by volume, highest first, and use the time the carrier received each message.\n\nEach row contains only a count because a received message has one state. The maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "numbers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"number\": \"+14155557701\",\n      \"received\": 412\n    }\n  ],\n  \"total\": 6\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "117aa27d-3698-84d2-8477-6d2b80b55b92",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get inbound SMS statistics by number",
                "description": {
                  "content": "Returns how many messages each of your numbers received. Rows are ranked by volume, highest first, and use the time the carrier received each message.\n\nEach row contains only a count because a received message has one state. The maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "numbers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"number\": \"+14155557701\",\n      \"received\": 412\n    }\n  ],\n  \"total\": 6\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cef896b0-2869-8cf2-8d3d-581c7c0d8b2b",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get inbound SMS statistics by number",
                "description": {
                  "content": "Returns how many messages each of your numbers received. Rows are ranked by volume, highest first, and use the time the carrier received each message.\n\nEach row contains only a count because a received message has one state. The maximum window is 365 days; a longer range returns `422`. Set `timezone` to resolve the period against your local calendar.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "stats",
                    "inbound",
                    "numbers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-05-01",
                      "description": "Start date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to 30 days before `to` when omitted."
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-05-25",
                      "description": "End date (inclusive), YYYY-MM-DD. Interpreted as a calendar day in `timezone` (a UTC day when `timezone` is omitted). Defaults to today in that timezone when omitted. Window may not exceed 365 days."
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum rows to return, ranked by volume. Defaults to 50; the maximum is 200, and asking for more returns 422 rather than silently returning fewer."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-25\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"data\": [\n    {\n      \"number\": \"+14155557701\",\n      \"received\": 412\n    }\n  ],\n  \"total\": 6\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "1c274daa-4808-8e92-8697-93bc2b8ad28a",
      "name": "verify-verifications",
      "description": {
        "content": "Send a one-time passcode to a recipient and check the code they enter. Create a verification to send a passcode over email or SMS, then submit the recipient's code to verify it.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "6279575e-eba9-8432-8ce5-ca0bbf6e6f3d",
          "name": "Create a verification",
          "request": {
            "name": "Create a verification",
            "description": {
              "content": "Creates a verification and sends the recipient a one-time passcode. Provide an email address, a phone number, or both in `to`. The service sends over one channel at a time and moves to the next planned channel if delivery fails.\n\nCalling this again for the same recipient reuses the verification in progress. During the resend cooldown, it returns the current state without sending, so nothing is charged and no send budget is spent. After the cooldown, it sends a fresh passcode, and that send draws on the recipient's hourly send cap exactly as a new verification does, so repeated resends can exhaust the cap and return `429` for the rest of that rolling hour. [Abuse guardrails](https://bird.com/docs/guides/verify/sending-verifications#abuse-guardrails) gives the figures.\n\nThe `200` response contains the current state, never the passcode. Submit the recipient's passcode with [Check a verification](https://bird.com/docs/api/reference/create-verification-check) before `expires_at`. An invalid recipient returns `422`; exceeding the send rate limit returns `429`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "verify",
                "verifications"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  },\n  \"metadata\": {\n    \"correlation_id\": \"signup-7f3a\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "83f7032e-1285-8b2b-84ac-14bf8a00dcce",
              "name": "The verification's current state, whether newly opened or reused.",
              "originalRequest": {
                "name": "Create a verification",
                "description": {
                  "content": "Creates a verification and sends the recipient a one-time passcode. Provide an email address, a phone number, or both in `to`. The service sends over one channel at a time and moves to the next planned channel if delivery fails.\n\nCalling this again for the same recipient reuses the verification in progress. During the resend cooldown, it returns the current state without sending, so nothing is charged and no send budget is spent. After the cooldown, it sends a fresh passcode, and that send draws on the recipient's hourly send cap exactly as a new verification does, so repeated resends can exhaust the cap and return `429` for the rest of that rolling hour. [Abuse guardrails](https://bird.com/docs/guides/verify/sending-verifications#abuse-guardrails) gives the figures.\n\nThe `200` response contains the current state, never the passcode. Submit the recipient's passcode with [Check a verification](https://bird.com/docs/api/reference/create-verification-check) before `expires_at`. An invalid recipient returns `422`; exceeding the send rate limit returns `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  },\n  \"metadata\": {\n    \"correlation_id\": \"signup-7f3a\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"pending\",\n  \"reason\": \"attempts_exhausted\",\n  \"to\": {\n    \"email\": \"user@example.com\",\n    \"phone_number\": \"+15551234567\"\n  },\n  \"channels\": [\n    {\n      \"channel\": \"email\"\n    }\n  ],\n  \"last_channel\": \"email\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "22a14bc6-8a0b-875b-8fdb-52b50ff1300e",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create a verification",
                "description": {
                  "content": "Creates a verification and sends the recipient a one-time passcode. Provide an email address, a phone number, or both in `to`. The service sends over one channel at a time and moves to the next planned channel if delivery fails.\n\nCalling this again for the same recipient reuses the verification in progress. During the resend cooldown, it returns the current state without sending, so nothing is charged and no send budget is spent. After the cooldown, it sends a fresh passcode, and that send draws on the recipient's hourly send cap exactly as a new verification does, so repeated resends can exhaust the cap and return `429` for the rest of that rolling hour. [Abuse guardrails](https://bird.com/docs/guides/verify/sending-verifications#abuse-guardrails) gives the figures.\n\nThe `200` response contains the current state, never the passcode. Submit the recipient's passcode with [Check a verification](https://bird.com/docs/api/reference/create-verification-check) before `expires_at`. An invalid recipient returns `422`; exceeding the send rate limit returns `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  },\n  \"metadata\": {\n    \"correlation_id\": \"signup-7f3a\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"pending\",\n  \"reason\": \"attempts_exhausted\",\n  \"to\": {\n    \"email\": \"user@example.com\",\n    \"phone_number\": \"+15551234567\"\n  },\n  \"channels\": [\n    {\n      \"channel\": \"email\"\n    }\n  ],\n  \"last_channel\": \"email\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "780b5b37-0a3c-8133-84b0-1e137110c2f9",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create a verification",
                "description": {
                  "content": "Creates a verification and sends the recipient a one-time passcode. Provide an email address, a phone number, or both in `to`. The service sends over one channel at a time and moves to the next planned channel if delivery fails.\n\nCalling this again for the same recipient reuses the verification in progress. During the resend cooldown, it returns the current state without sending, so nothing is charged and no send budget is spent. After the cooldown, it sends a fresh passcode, and that send draws on the recipient's hourly send cap exactly as a new verification does, so repeated resends can exhaust the cap and return `429` for the rest of that rolling hour. [Abuse guardrails](https://bird.com/docs/guides/verify/sending-verifications#abuse-guardrails) gives the figures.\n\nThe `200` response contains the current state, never the passcode. Submit the recipient's passcode with [Check a verification](https://bird.com/docs/api/reference/create-verification-check) before `expires_at`. An invalid recipient returns `422`; exceeding the send rate limit returns `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  },\n  \"metadata\": {\n    \"correlation_id\": \"signup-7f3a\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"pending\",\n  \"reason\": \"attempts_exhausted\",\n  \"to\": {\n    \"email\": \"user@example.com\",\n    \"phone_number\": \"+15551234567\"\n  },\n  \"channels\": [\n    {\n      \"channel\": \"email\"\n    }\n  ],\n  \"last_channel\": \"email\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "19c7d594-5938-8fc1-8321-e3f3bd6d782a",
              "name": "Insufficient balance",
              "originalRequest": {
                "name": "Create a verification",
                "description": {
                  "content": "Creates a verification and sends the recipient a one-time passcode. Provide an email address, a phone number, or both in `to`. The service sends over one channel at a time and moves to the next planned channel if delivery fails.\n\nCalling this again for the same recipient reuses the verification in progress. During the resend cooldown, it returns the current state without sending, so nothing is charged and no send budget is spent. After the cooldown, it sends a fresh passcode, and that send draws on the recipient's hourly send cap exactly as a new verification does, so repeated resends can exhaust the cap and return `429` for the rest of that rolling hour. [Abuse guardrails](https://bird.com/docs/guides/verify/sending-verifications#abuse-guardrails) gives the figures.\n\nThe `200` response contains the current state, never the passcode. Submit the recipient's passcode with [Check a verification](https://bird.com/docs/api/reference/create-verification-check) before `expires_at`. An invalid recipient returns `422`; exceeding the send rate limit returns `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  },\n  \"metadata\": {\n    \"correlation_id\": \"signup-7f3a\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Payment Required",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"pending\",\n  \"reason\": \"attempts_exhausted\",\n  \"to\": {\n    \"email\": \"user@example.com\",\n    \"phone_number\": \"+15551234567\"\n  },\n  \"channels\": [\n    {\n      \"channel\": \"email\"\n    }\n  ],\n  \"last_channel\": \"email\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "81c67416-b825-8468-86f8-c5c4a0f1ff83",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create a verification",
                "description": {
                  "content": "Creates a verification and sends the recipient a one-time passcode. Provide an email address, a phone number, or both in `to`. The service sends over one channel at a time and moves to the next planned channel if delivery fails.\n\nCalling this again for the same recipient reuses the verification in progress. During the resend cooldown, it returns the current state without sending, so nothing is charged and no send budget is spent. After the cooldown, it sends a fresh passcode, and that send draws on the recipient's hourly send cap exactly as a new verification does, so repeated resends can exhaust the cap and return `429` for the rest of that rolling hour. [Abuse guardrails](https://bird.com/docs/guides/verify/sending-verifications#abuse-guardrails) gives the figures.\n\nThe `200` response contains the current state, never the passcode. Submit the recipient's passcode with [Check a verification](https://bird.com/docs/api/reference/create-verification-check) before `expires_at`. An invalid recipient returns `422`; exceeding the send rate limit returns `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  },\n  \"metadata\": {\n    \"correlation_id\": \"signup-7f3a\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"pending\",\n  \"reason\": \"attempts_exhausted\",\n  \"to\": {\n    \"email\": \"user@example.com\",\n    \"phone_number\": \"+15551234567\"\n  },\n  \"channels\": [\n    {\n      \"channel\": \"email\"\n    }\n  ],\n  \"last_channel\": \"email\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "af77dccc-c22b-896c-897e-bcae9a18cdc0",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create a verification",
                "description": {
                  "content": "Creates a verification and sends the recipient a one-time passcode. Provide an email address, a phone number, or both in `to`. The service sends over one channel at a time and moves to the next planned channel if delivery fails.\n\nCalling this again for the same recipient reuses the verification in progress. During the resend cooldown, it returns the current state without sending, so nothing is charged and no send budget is spent. After the cooldown, it sends a fresh passcode, and that send draws on the recipient's hourly send cap exactly as a new verification does, so repeated resends can exhaust the cap and return `429` for the rest of that rolling hour. [Abuse guardrails](https://bird.com/docs/guides/verify/sending-verifications#abuse-guardrails) gives the figures.\n\nThe `200` response contains the current state, never the passcode. Submit the recipient's passcode with [Check a verification](https://bird.com/docs/api/reference/create-verification-check) before `expires_at`. An invalid recipient returns `422`; exceeding the send rate limit returns `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  },\n  \"metadata\": {\n    \"correlation_id\": \"signup-7f3a\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"pending\",\n  \"reason\": \"attempts_exhausted\",\n  \"to\": {\n    \"email\": \"user@example.com\",\n    \"phone_number\": \"+15551234567\"\n  },\n  \"channels\": [\n    {\n      \"channel\": \"email\"\n    }\n  ],\n  \"last_channel\": \"email\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "bf459cbc-27f5-8c01-8ed0-fe3684c076fd",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create a verification",
                "description": {
                  "content": "Creates a verification and sends the recipient a one-time passcode. Provide an email address, a phone number, or both in `to`. The service sends over one channel at a time and moves to the next planned channel if delivery fails.\n\nCalling this again for the same recipient reuses the verification in progress. During the resend cooldown, it returns the current state without sending, so nothing is charged and no send budget is spent. After the cooldown, it sends a fresh passcode, and that send draws on the recipient's hourly send cap exactly as a new verification does, so repeated resends can exhaust the cap and return `429` for the rest of that rolling hour. [Abuse guardrails](https://bird.com/docs/guides/verify/sending-verifications#abuse-guardrails) gives the figures.\n\nThe `200` response contains the current state, never the passcode. Submit the recipient's passcode with [Check a verification](https://bird.com/docs/api/reference/create-verification-check) before `expires_at`. An invalid recipient returns `422`; exceeding the send rate limit returns `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  },\n  \"metadata\": {\n    \"correlation_id\": \"signup-7f3a\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"pending\",\n  \"reason\": \"attempts_exhausted\",\n  \"to\": {\n    \"email\": \"user@example.com\",\n    \"phone_number\": \"+15551234567\"\n  },\n  \"channels\": [\n    {\n      \"channel\": \"email\"\n    }\n  ],\n  \"last_channel\": \"email\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8b21017b-985b-829e-80c1-7ca542c1aaf8",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create a verification",
                "description": {
                  "content": "Creates a verification and sends the recipient a one-time passcode. Provide an email address, a phone number, or both in `to`. The service sends over one channel at a time and moves to the next planned channel if delivery fails.\n\nCalling this again for the same recipient reuses the verification in progress. During the resend cooldown, it returns the current state without sending, so nothing is charged and no send budget is spent. After the cooldown, it sends a fresh passcode, and that send draws on the recipient's hourly send cap exactly as a new verification does, so repeated resends can exhaust the cap and return `429` for the rest of that rolling hour. [Abuse guardrails](https://bird.com/docs/guides/verify/sending-verifications#abuse-guardrails) gives the figures.\n\nThe `200` response contains the current state, never the passcode. Submit the recipient's passcode with [Check a verification](https://bird.com/docs/api/reference/create-verification-check) before `expires_at`. An invalid recipient returns `422`; exceeding the send rate limit returns `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  },\n  \"metadata\": {\n    \"correlation_id\": \"signup-7f3a\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"pending\",\n  \"reason\": \"attempts_exhausted\",\n  \"to\": {\n    \"email\": \"user@example.com\",\n    \"phone_number\": \"+15551234567\"\n  },\n  \"channels\": [\n    {\n      \"channel\": \"email\"\n    }\n  ],\n  \"last_channel\": \"email\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "117e4b0e-b5e5-83c4-8f78-92f90ce3701c",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Create a verification",
                "description": {
                  "content": "Creates a verification and sends the recipient a one-time passcode. Provide an email address, a phone number, or both in `to`. The service sends over one channel at a time and moves to the next planned channel if delivery fails.\n\nCalling this again for the same recipient reuses the verification in progress. During the resend cooldown, it returns the current state without sending, so nothing is charged and no send budget is spent. After the cooldown, it sends a fresh passcode, and that send draws on the recipient's hourly send cap exactly as a new verification does, so repeated resends can exhaust the cap and return `429` for the rest of that rolling hour. [Abuse guardrails](https://bird.com/docs/guides/verify/sending-verifications#abuse-guardrails) gives the figures.\n\nThe `200` response contains the current state, never the passcode. Submit the recipient's passcode with [Check a verification](https://bird.com/docs/api/reference/create-verification-check) before `expires_at`. An invalid recipient returns `422`; exceeding the send rate limit returns `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  },\n  \"metadata\": {\n    \"correlation_id\": \"signup-7f3a\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"pending\",\n  \"reason\": \"attempts_exhausted\",\n  \"to\": {\n    \"email\": \"user@example.com\",\n    \"phone_number\": \"+15551234567\"\n  },\n  \"channels\": [\n    {\n      \"channel\": \"email\"\n    }\n  ],\n  \"last_channel\": \"email\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "30267b99-fdb3-8c23-8b93-5e0f91d31c75",
          "name": "Create a verification passcode check",
          "request": {
            "name": "Create a verification passcode check",
            "description": {
              "content": "Checks a passcode for a recipient and returns the outcome together with the verification's current state. Identify the verification by the same `to` used to create it; you do not need to store a verification ID.\n\nA wrong or expired passcode returns `200 OK` with `success: false` and a `reason` such as `incorrect_code` or `expired`. `success: true` means the verification is complete. Each verification reports its final outcome once and cannot be checked again.\n\nAn error status is returned only when the check cannot be evaluated. A `404\nE13000` means no active verification matched the recipient: either none\nexists for it, or the most recent one is already resolved as verified,\nexpired, or out of attempts. One code covers all of those, so a `404` is not\nevidence the recipient failed to verify. Treat your own record of an earlier\n`success: true` as the outcome, and create a new verification only if the\nrecipient still needs to verify. A `422` indicates an invalid recipient. A\n`429` means passcodes for a recipient are being checked too quickly.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "verify",
                "verifications",
                "check"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  },\n  \"code\": \"123456\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "e7d09207-9cd9-8dfd-81b9-8fc67f174e01",
              "name": "The check outcome and the verification's current state.",
              "originalRequest": {
                "name": "Create a verification passcode check",
                "description": {
                  "content": "Checks a passcode for a recipient and returns the outcome together with the verification's current state. Identify the verification by the same `to` used to create it; you do not need to store a verification ID.\n\nA wrong or expired passcode returns `200 OK` with `success: false` and a `reason` such as `incorrect_code` or `expired`. `success: true` means the verification is complete. Each verification reports its final outcome once and cannot be checked again.\n\nAn error status is returned only when the check cannot be evaluated. A `404\nE13000` means no active verification matched the recipient: either none\nexists for it, or the most recent one is already resolved as verified,\nexpired, or out of attempts. One code covers all of those, so a `404` is not\nevidence the recipient failed to verify. Treat your own record of an earlier\n`success: true` as the outcome, and create a new verification only if the\nrecipient still needs to verify. A `422` indicates an invalid recipient. A\n`429` means passcodes for a recipient are being checked too quickly.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications",
                    "check"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  },\n  \"code\": \"123456\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"reason\": \"incorrect_code\",\n  \"verification\": {\n    \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"status\": \"pending\",\n    \"reason\": \"attempts_exhausted\",\n    \"to\": {\n      \"email\": \"user@example.com\",\n      \"phone_number\": \"+15551234567\"\n    },\n    \"channels\": [\n      {\n        \"channel\": \"email\"\n      }\n    ],\n    \"last_channel\": \"email\",\n    \"created_at\": \"2026-05-20T09:14:52Z\",\n    \"updated_at\": \"2026-05-25T16:42:01Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ecee9116-0e7d-84a2-87a5-487978850e93",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create a verification passcode check",
                "description": {
                  "content": "Checks a passcode for a recipient and returns the outcome together with the verification's current state. Identify the verification by the same `to` used to create it; you do not need to store a verification ID.\n\nA wrong or expired passcode returns `200 OK` with `success: false` and a `reason` such as `incorrect_code` or `expired`. `success: true` means the verification is complete. Each verification reports its final outcome once and cannot be checked again.\n\nAn error status is returned only when the check cannot be evaluated. A `404\nE13000` means no active verification matched the recipient: either none\nexists for it, or the most recent one is already resolved as verified,\nexpired, or out of attempts. One code covers all of those, so a `404` is not\nevidence the recipient failed to verify. Treat your own record of an earlier\n`success: true` as the outcome, and create a new verification only if the\nrecipient still needs to verify. A `422` indicates an invalid recipient. A\n`429` means passcodes for a recipient are being checked too quickly.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications",
                    "check"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  },\n  \"code\": \"123456\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"reason\": \"incorrect_code\",\n  \"verification\": {\n    \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"status\": \"pending\",\n    \"reason\": \"attempts_exhausted\",\n    \"to\": {\n      \"email\": \"user@example.com\",\n      \"phone_number\": \"+15551234567\"\n    },\n    \"channels\": [\n      {\n        \"channel\": \"email\"\n      }\n    ],\n    \"last_channel\": \"email\",\n    \"created_at\": \"2026-05-20T09:14:52Z\",\n    \"updated_at\": \"2026-05-25T16:42:01Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d21570dd-9a40-86eb-8242-138f824acb8e",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create a verification passcode check",
                "description": {
                  "content": "Checks a passcode for a recipient and returns the outcome together with the verification's current state. Identify the verification by the same `to` used to create it; you do not need to store a verification ID.\n\nA wrong or expired passcode returns `200 OK` with `success: false` and a `reason` such as `incorrect_code` or `expired`. `success: true` means the verification is complete. Each verification reports its final outcome once and cannot be checked again.\n\nAn error status is returned only when the check cannot be evaluated. A `404\nE13000` means no active verification matched the recipient: either none\nexists for it, or the most recent one is already resolved as verified,\nexpired, or out of attempts. One code covers all of those, so a `404` is not\nevidence the recipient failed to verify. Treat your own record of an earlier\n`success: true` as the outcome, and create a new verification only if the\nrecipient still needs to verify. A `422` indicates an invalid recipient. A\n`429` means passcodes for a recipient are being checked too quickly.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications",
                    "check"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  },\n  \"code\": \"123456\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"reason\": \"incorrect_code\",\n  \"verification\": {\n    \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"status\": \"pending\",\n    \"reason\": \"attempts_exhausted\",\n    \"to\": {\n      \"email\": \"user@example.com\",\n      \"phone_number\": \"+15551234567\"\n    },\n    \"channels\": [\n      {\n        \"channel\": \"email\"\n      }\n    ],\n    \"last_channel\": \"email\",\n    \"created_at\": \"2026-05-20T09:14:52Z\",\n    \"updated_at\": \"2026-05-25T16:42:01Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "007daf95-d9c5-8169-802f-1c02317b8ebf",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create a verification passcode check",
                "description": {
                  "content": "Checks a passcode for a recipient and returns the outcome together with the verification's current state. Identify the verification by the same `to` used to create it; you do not need to store a verification ID.\n\nA wrong or expired passcode returns `200 OK` with `success: false` and a `reason` such as `incorrect_code` or `expired`. `success: true` means the verification is complete. Each verification reports its final outcome once and cannot be checked again.\n\nAn error status is returned only when the check cannot be evaluated. A `404\nE13000` means no active verification matched the recipient: either none\nexists for it, or the most recent one is already resolved as verified,\nexpired, or out of attempts. One code covers all of those, so a `404` is not\nevidence the recipient failed to verify. Treat your own record of an earlier\n`success: true` as the outcome, and create a new verification only if the\nrecipient still needs to verify. A `422` indicates an invalid recipient. A\n`429` means passcodes for a recipient are being checked too quickly.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications",
                    "check"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  },\n  \"code\": \"123456\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"reason\": \"incorrect_code\",\n  \"verification\": {\n    \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"status\": \"pending\",\n    \"reason\": \"attempts_exhausted\",\n    \"to\": {\n      \"email\": \"user@example.com\",\n      \"phone_number\": \"+15551234567\"\n    },\n    \"channels\": [\n      {\n        \"channel\": \"email\"\n      }\n    ],\n    \"last_channel\": \"email\",\n    \"created_at\": \"2026-05-20T09:14:52Z\",\n    \"updated_at\": \"2026-05-25T16:42:01Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8f60d07f-e5ba-8d5d-81a5-e0a2b6870ad3",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Create a verification passcode check",
                "description": {
                  "content": "Checks a passcode for a recipient and returns the outcome together with the verification's current state. Identify the verification by the same `to` used to create it; you do not need to store a verification ID.\n\nA wrong or expired passcode returns `200 OK` with `success: false` and a `reason` such as `incorrect_code` or `expired`. `success: true` means the verification is complete. Each verification reports its final outcome once and cannot be checked again.\n\nAn error status is returned only when the check cannot be evaluated. A `404\nE13000` means no active verification matched the recipient: either none\nexists for it, or the most recent one is already resolved as verified,\nexpired, or out of attempts. One code covers all of those, so a `404` is not\nevidence the recipient failed to verify. Treat your own record of an earlier\n`success: true` as the outcome, and create a new verification only if the\nrecipient still needs to verify. A `422` indicates an invalid recipient. A\n`429` means passcodes for a recipient are being checked too quickly.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications",
                    "check"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  },\n  \"code\": \"123456\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"reason\": \"incorrect_code\",\n  \"verification\": {\n    \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"status\": \"pending\",\n    \"reason\": \"attempts_exhausted\",\n    \"to\": {\n      \"email\": \"user@example.com\",\n      \"phone_number\": \"+15551234567\"\n    },\n    \"channels\": [\n      {\n        \"channel\": \"email\"\n      }\n    ],\n    \"last_channel\": \"email\",\n    \"created_at\": \"2026-05-20T09:14:52Z\",\n    \"updated_at\": \"2026-05-25T16:42:01Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "15a72a33-2d88-832e-87ce-5f0f18e1487b",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create a verification passcode check",
                "description": {
                  "content": "Checks a passcode for a recipient and returns the outcome together with the verification's current state. Identify the verification by the same `to` used to create it; you do not need to store a verification ID.\n\nA wrong or expired passcode returns `200 OK` with `success: false` and a `reason` such as `incorrect_code` or `expired`. `success: true` means the verification is complete. Each verification reports its final outcome once and cannot be checked again.\n\nAn error status is returned only when the check cannot be evaluated. A `404\nE13000` means no active verification matched the recipient: either none\nexists for it, or the most recent one is already resolved as verified,\nexpired, or out of attempts. One code covers all of those, so a `404` is not\nevidence the recipient failed to verify. Treat your own record of an earlier\n`success: true` as the outcome, and create a new verification only if the\nrecipient still needs to verify. A `422` indicates an invalid recipient. A\n`429` means passcodes for a recipient are being checked too quickly.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications",
                    "check"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  },\n  \"code\": \"123456\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"reason\": \"incorrect_code\",\n  \"verification\": {\n    \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"status\": \"pending\",\n    \"reason\": \"attempts_exhausted\",\n    \"to\": {\n      \"email\": \"user@example.com\",\n      \"phone_number\": \"+15551234567\"\n    },\n    \"channels\": [\n      {\n        \"channel\": \"email\"\n      }\n    ],\n    \"last_channel\": \"email\",\n    \"created_at\": \"2026-05-20T09:14:52Z\",\n    \"updated_at\": \"2026-05-25T16:42:01Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9ea62642-e4a0-8c98-8f77-6dcbbe2566b0",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create a verification passcode check",
                "description": {
                  "content": "Checks a passcode for a recipient and returns the outcome together with the verification's current state. Identify the verification by the same `to` used to create it; you do not need to store a verification ID.\n\nA wrong or expired passcode returns `200 OK` with `success: false` and a `reason` such as `incorrect_code` or `expired`. `success: true` means the verification is complete. Each verification reports its final outcome once and cannot be checked again.\n\nAn error status is returned only when the check cannot be evaluated. A `404\nE13000` means no active verification matched the recipient: either none\nexists for it, or the most recent one is already resolved as verified,\nexpired, or out of attempts. One code covers all of those, so a `404` is not\nevidence the recipient failed to verify. Treat your own record of an earlier\n`success: true` as the outcome, and create a new verification only if the\nrecipient still needs to verify. A `422` indicates an invalid recipient. A\n`429` means passcodes for a recipient are being checked too quickly.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications",
                    "check"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  },\n  \"code\": \"123456\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"reason\": \"incorrect_code\",\n  \"verification\": {\n    \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"status\": \"pending\",\n    \"reason\": \"attempts_exhausted\",\n    \"to\": {\n      \"email\": \"user@example.com\",\n      \"phone_number\": \"+15551234567\"\n    },\n    \"channels\": [\n      {\n        \"channel\": \"email\"\n      }\n    ],\n    \"last_channel\": \"email\",\n    \"created_at\": \"2026-05-20T09:14:52Z\",\n    \"updated_at\": \"2026-05-25T16:42:01Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "828da965-85ee-816c-8219-b85bfe3ae790",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create a verification passcode check",
                "description": {
                  "content": "Checks a passcode for a recipient and returns the outcome together with the verification's current state. Identify the verification by the same `to` used to create it; you do not need to store a verification ID.\n\nA wrong or expired passcode returns `200 OK` with `success: false` and a `reason` such as `incorrect_code` or `expired`. `success: true` means the verification is complete. Each verification reports its final outcome once and cannot be checked again.\n\nAn error status is returned only when the check cannot be evaluated. A `404\nE13000` means no active verification matched the recipient: either none\nexists for it, or the most recent one is already resolved as verified,\nexpired, or out of attempts. One code covers all of those, so a `404` is not\nevidence the recipient failed to verify. Treat your own record of an earlier\n`success: true` as the outcome, and create a new verification only if the\nrecipient still needs to verify. A `422` indicates an invalid recipient. A\n`429` means passcodes for a recipient are being checked too quickly.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications",
                    "check"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  },\n  \"code\": \"123456\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"reason\": \"incorrect_code\",\n  \"verification\": {\n    \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"status\": \"pending\",\n    \"reason\": \"attempts_exhausted\",\n    \"to\": {\n      \"email\": \"user@example.com\",\n      \"phone_number\": \"+15551234567\"\n    },\n    \"channels\": [\n      {\n        \"channel\": \"email\"\n      }\n    ],\n    \"last_channel\": \"email\",\n    \"created_at\": \"2026-05-20T09:14:52Z\",\n    \"updated_at\": \"2026-05-25T16:42:01Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "48c94c3f-a124-8597-84e1-e9f4d70e8059",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Create a verification passcode check",
                "description": {
                  "content": "Checks a passcode for a recipient and returns the outcome together with the verification's current state. Identify the verification by the same `to` used to create it; you do not need to store a verification ID.\n\nA wrong or expired passcode returns `200 OK` with `success: false` and a `reason` such as `incorrect_code` or `expired`. `success: true` means the verification is complete. Each verification reports its final outcome once and cannot be checked again.\n\nAn error status is returned only when the check cannot be evaluated. A `404\nE13000` means no active verification matched the recipient: either none\nexists for it, or the most recent one is already resolved as verified,\nexpired, or out of attempts. One code covers all of those, so a `404` is not\nevidence the recipient failed to verify. Treat your own record of an earlier\n`success: true` as the outcome, and create a new verification only if the\nrecipient still needs to verify. A `422` indicates an invalid recipient. A\n`429` means passcodes for a recipient are being checked too quickly.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications",
                    "check"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  },\n  \"code\": \"123456\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"reason\": \"incorrect_code\",\n  \"verification\": {\n    \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"status\": \"pending\",\n    \"reason\": \"attempts_exhausted\",\n    \"to\": {\n      \"email\": \"user@example.com\",\n      \"phone_number\": \"+15551234567\"\n    },\n    \"channels\": [\n      {\n        \"channel\": \"email\"\n      }\n    ],\n    \"last_channel\": \"email\",\n    \"created_at\": \"2026-05-20T09:14:52Z\",\n    \"updated_at\": \"2026-05-25T16:42:01Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "77160caa-8a3e-8484-8993-63f0d4b95876",
          "name": "Create the next verification channel attempt",
          "request": {
            "name": "Create the next verification channel attempt",
            "description": {
              "content": "Advances an in-progress verification to the next channel in its plan and sends a fresh passcode there. Identify the verification by the same `to` recipient used to create it; no verification ID is required.\n\nThe send bypasses the resend cooldown and does not draw on the recipient's hourly send cap; what bounds it is the channel plan, since each call advances by at most one channel. Passcodes sent earlier remain valid. The response sets `last_channel` to the most recent completed send. Concurrent requests each advance the plan by at most one channel and return committed state.\n\nA recipient with no in-progress verification returns `404 E13000`, whether none was ever created or the most recent one is already resolved. A recipient who has already verified is in that set, so a `404` here is not evidence they still need verifying, and creating another verification would send a passcode they no longer need. A plan with no further channel returns `422 NoNextChannel`; create the verification again to resend on the current channel. If every remaining channel fails, the operation returns `422 NoAvailableChannel`. Requests that exceed the send rate limit return `429`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "verify",
                "verifications",
                "next-channel"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "2652c3c7-252f-8a1c-840d-81203de817f3",
              "name": "Verification state after the advance. `last_channel` identifies the most recent completed send.",
              "originalRequest": {
                "name": "Create the next verification channel attempt",
                "description": {
                  "content": "Advances an in-progress verification to the next channel in its plan and sends a fresh passcode there. Identify the verification by the same `to` recipient used to create it; no verification ID is required.\n\nThe send bypasses the resend cooldown and does not draw on the recipient's hourly send cap; what bounds it is the channel plan, since each call advances by at most one channel. Passcodes sent earlier remain valid. The response sets `last_channel` to the most recent completed send. Concurrent requests each advance the plan by at most one channel and return committed state.\n\nA recipient with no in-progress verification returns `404 E13000`, whether none was ever created or the most recent one is already resolved. A recipient who has already verified is in that set, so a `404` here is not evidence they still need verifying, and creating another verification would send a passcode they no longer need. A plan with no further channel returns `422 NoNextChannel`; create the verification again to resend on the current channel. If every remaining channel fails, the operation returns `422 NoAvailableChannel`. Requests that exceed the send rate limit return `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications",
                    "next-channel"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"pending\",\n  \"reason\": \"attempts_exhausted\",\n  \"to\": {\n    \"email\": \"user@example.com\",\n    \"phone_number\": \"+15551234567\"\n  },\n  \"channels\": [\n    {\n      \"channel\": \"email\"\n    }\n  ],\n  \"last_channel\": \"email\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "17ea9b3c-f6b1-888d-8758-9eff2eb96106",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create the next verification channel attempt",
                "description": {
                  "content": "Advances an in-progress verification to the next channel in its plan and sends a fresh passcode there. Identify the verification by the same `to` recipient used to create it; no verification ID is required.\n\nThe send bypasses the resend cooldown and does not draw on the recipient's hourly send cap; what bounds it is the channel plan, since each call advances by at most one channel. Passcodes sent earlier remain valid. The response sets `last_channel` to the most recent completed send. Concurrent requests each advance the plan by at most one channel and return committed state.\n\nA recipient with no in-progress verification returns `404 E13000`, whether none was ever created or the most recent one is already resolved. A recipient who has already verified is in that set, so a `404` here is not evidence they still need verifying, and creating another verification would send a passcode they no longer need. A plan with no further channel returns `422 NoNextChannel`; create the verification again to resend on the current channel. If every remaining channel fails, the operation returns `422 NoAvailableChannel`. Requests that exceed the send rate limit return `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications",
                    "next-channel"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"pending\",\n  \"reason\": \"attempts_exhausted\",\n  \"to\": {\n    \"email\": \"user@example.com\",\n    \"phone_number\": \"+15551234567\"\n  },\n  \"channels\": [\n    {\n      \"channel\": \"email\"\n    }\n  ],\n  \"last_channel\": \"email\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "177dc04e-ca3c-876f-8596-8ef8b62517b9",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create the next verification channel attempt",
                "description": {
                  "content": "Advances an in-progress verification to the next channel in its plan and sends a fresh passcode there. Identify the verification by the same `to` recipient used to create it; no verification ID is required.\n\nThe send bypasses the resend cooldown and does not draw on the recipient's hourly send cap; what bounds it is the channel plan, since each call advances by at most one channel. Passcodes sent earlier remain valid. The response sets `last_channel` to the most recent completed send. Concurrent requests each advance the plan by at most one channel and return committed state.\n\nA recipient with no in-progress verification returns `404 E13000`, whether none was ever created or the most recent one is already resolved. A recipient who has already verified is in that set, so a `404` here is not evidence they still need verifying, and creating another verification would send a passcode they no longer need. A plan with no further channel returns `422 NoNextChannel`; create the verification again to resend on the current channel. If every remaining channel fails, the operation returns `422 NoAvailableChannel`. Requests that exceed the send rate limit return `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications",
                    "next-channel"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"pending\",\n  \"reason\": \"attempts_exhausted\",\n  \"to\": {\n    \"email\": \"user@example.com\",\n    \"phone_number\": \"+15551234567\"\n  },\n  \"channels\": [\n    {\n      \"channel\": \"email\"\n    }\n  ],\n  \"last_channel\": \"email\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8ea4024c-2448-8bbc-8fc9-43103fffcf08",
              "name": "Insufficient balance",
              "originalRequest": {
                "name": "Create the next verification channel attempt",
                "description": {
                  "content": "Advances an in-progress verification to the next channel in its plan and sends a fresh passcode there. Identify the verification by the same `to` recipient used to create it; no verification ID is required.\n\nThe send bypasses the resend cooldown and does not draw on the recipient's hourly send cap; what bounds it is the channel plan, since each call advances by at most one channel. Passcodes sent earlier remain valid. The response sets `last_channel` to the most recent completed send. Concurrent requests each advance the plan by at most one channel and return committed state.\n\nA recipient with no in-progress verification returns `404 E13000`, whether none was ever created or the most recent one is already resolved. A recipient who has already verified is in that set, so a `404` here is not evidence they still need verifying, and creating another verification would send a passcode they no longer need. A plan with no further channel returns `422 NoNextChannel`; create the verification again to resend on the current channel. If every remaining channel fails, the operation returns `422 NoAvailableChannel`. Requests that exceed the send rate limit return `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications",
                    "next-channel"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Payment Required",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"pending\",\n  \"reason\": \"attempts_exhausted\",\n  \"to\": {\n    \"email\": \"user@example.com\",\n    \"phone_number\": \"+15551234567\"\n  },\n  \"channels\": [\n    {\n      \"channel\": \"email\"\n    }\n  ],\n  \"last_channel\": \"email\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ccf07b88-91c3-81f6-88d8-51275d49e030",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create the next verification channel attempt",
                "description": {
                  "content": "Advances an in-progress verification to the next channel in its plan and sends a fresh passcode there. Identify the verification by the same `to` recipient used to create it; no verification ID is required.\n\nThe send bypasses the resend cooldown and does not draw on the recipient's hourly send cap; what bounds it is the channel plan, since each call advances by at most one channel. Passcodes sent earlier remain valid. The response sets `last_channel` to the most recent completed send. Concurrent requests each advance the plan by at most one channel and return committed state.\n\nA recipient with no in-progress verification returns `404 E13000`, whether none was ever created or the most recent one is already resolved. A recipient who has already verified is in that set, so a `404` here is not evidence they still need verifying, and creating another verification would send a passcode they no longer need. A plan with no further channel returns `422 NoNextChannel`; create the verification again to resend on the current channel. If every remaining channel fails, the operation returns `422 NoAvailableChannel`. Requests that exceed the send rate limit return `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications",
                    "next-channel"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"pending\",\n  \"reason\": \"attempts_exhausted\",\n  \"to\": {\n    \"email\": \"user@example.com\",\n    \"phone_number\": \"+15551234567\"\n  },\n  \"channels\": [\n    {\n      \"channel\": \"email\"\n    }\n  ],\n  \"last_channel\": \"email\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "eddfe7b8-bfb5-86e0-8266-2bf3f091c1e3",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Create the next verification channel attempt",
                "description": {
                  "content": "Advances an in-progress verification to the next channel in its plan and sends a fresh passcode there. Identify the verification by the same `to` recipient used to create it; no verification ID is required.\n\nThe send bypasses the resend cooldown and does not draw on the recipient's hourly send cap; what bounds it is the channel plan, since each call advances by at most one channel. Passcodes sent earlier remain valid. The response sets `last_channel` to the most recent completed send. Concurrent requests each advance the plan by at most one channel and return committed state.\n\nA recipient with no in-progress verification returns `404 E13000`, whether none was ever created or the most recent one is already resolved. A recipient who has already verified is in that set, so a `404` here is not evidence they still need verifying, and creating another verification would send a passcode they no longer need. A plan with no further channel returns `422 NoNextChannel`; create the verification again to resend on the current channel. If every remaining channel fails, the operation returns `422 NoAvailableChannel`. Requests that exceed the send rate limit return `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications",
                    "next-channel"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"pending\",\n  \"reason\": \"attempts_exhausted\",\n  \"to\": {\n    \"email\": \"user@example.com\",\n    \"phone_number\": \"+15551234567\"\n  },\n  \"channels\": [\n    {\n      \"channel\": \"email\"\n    }\n  ],\n  \"last_channel\": \"email\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "265604ea-b4d0-86ef-8019-e97f20a802e3",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create the next verification channel attempt",
                "description": {
                  "content": "Advances an in-progress verification to the next channel in its plan and sends a fresh passcode there. Identify the verification by the same `to` recipient used to create it; no verification ID is required.\n\nThe send bypasses the resend cooldown and does not draw on the recipient's hourly send cap; what bounds it is the channel plan, since each call advances by at most one channel. Passcodes sent earlier remain valid. The response sets `last_channel` to the most recent completed send. Concurrent requests each advance the plan by at most one channel and return committed state.\n\nA recipient with no in-progress verification returns `404 E13000`, whether none was ever created or the most recent one is already resolved. A recipient who has already verified is in that set, so a `404` here is not evidence they still need verifying, and creating another verification would send a passcode they no longer need. A plan with no further channel returns `422 NoNextChannel`; create the verification again to resend on the current channel. If every remaining channel fails, the operation returns `422 NoAvailableChannel`. Requests that exceed the send rate limit return `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications",
                    "next-channel"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"pending\",\n  \"reason\": \"attempts_exhausted\",\n  \"to\": {\n    \"email\": \"user@example.com\",\n    \"phone_number\": \"+15551234567\"\n  },\n  \"channels\": [\n    {\n      \"channel\": \"email\"\n    }\n  ],\n  \"last_channel\": \"email\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "725fec0a-0e39-8b27-8dc8-35711947c623",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create the next verification channel attempt",
                "description": {
                  "content": "Advances an in-progress verification to the next channel in its plan and sends a fresh passcode there. Identify the verification by the same `to` recipient used to create it; no verification ID is required.\n\nThe send bypasses the resend cooldown and does not draw on the recipient's hourly send cap; what bounds it is the channel plan, since each call advances by at most one channel. Passcodes sent earlier remain valid. The response sets `last_channel` to the most recent completed send. Concurrent requests each advance the plan by at most one channel and return committed state.\n\nA recipient with no in-progress verification returns `404 E13000`, whether none was ever created or the most recent one is already resolved. A recipient who has already verified is in that set, so a `404` here is not evidence they still need verifying, and creating another verification would send a passcode they no longer need. A plan with no further channel returns `422 NoNextChannel`; create the verification again to resend on the current channel. If every remaining channel fails, the operation returns `422 NoAvailableChannel`. Requests that exceed the send rate limit return `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications",
                    "next-channel"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"pending\",\n  \"reason\": \"attempts_exhausted\",\n  \"to\": {\n    \"email\": \"user@example.com\",\n    \"phone_number\": \"+15551234567\"\n  },\n  \"channels\": [\n    {\n      \"channel\": \"email\"\n    }\n  ],\n  \"last_channel\": \"email\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0a433552-248a-83ba-8836-b0fb1722b6c9",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create the next verification channel attempt",
                "description": {
                  "content": "Advances an in-progress verification to the next channel in its plan and sends a fresh passcode there. Identify the verification by the same `to` recipient used to create it; no verification ID is required.\n\nThe send bypasses the resend cooldown and does not draw on the recipient's hourly send cap; what bounds it is the channel plan, since each call advances by at most one channel. Passcodes sent earlier remain valid. The response sets `last_channel` to the most recent completed send. Concurrent requests each advance the plan by at most one channel and return committed state.\n\nA recipient with no in-progress verification returns `404 E13000`, whether none was ever created or the most recent one is already resolved. A recipient who has already verified is in that set, so a `404` here is not evidence they still need verifying, and creating another verification would send a passcode they no longer need. A plan with no further channel returns `422 NoNextChannel`; create the verification again to resend on the current channel. If every remaining channel fails, the operation returns `422 NoAvailableChannel`. Requests that exceed the send rate limit return `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications",
                    "next-channel"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"pending\",\n  \"reason\": \"attempts_exhausted\",\n  \"to\": {\n    \"email\": \"user@example.com\",\n    \"phone_number\": \"+15551234567\"\n  },\n  \"channels\": [\n    {\n      \"channel\": \"email\"\n    }\n  ],\n  \"last_channel\": \"email\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f108e3e5-5658-8ec1-8bc8-5745f0f27f29",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Create the next verification channel attempt",
                "description": {
                  "content": "Advances an in-progress verification to the next channel in its plan and sends a fresh passcode there. Identify the verification by the same `to` recipient used to create it; no verification ID is required.\n\nThe send bypasses the resend cooldown and does not draw on the recipient's hourly send cap; what bounds it is the channel plan, since each call advances by at most one channel. Passcodes sent earlier remain valid. The response sets `last_channel` to the most recent completed send. Concurrent requests each advance the plan by at most one channel and return committed state.\n\nA recipient with no in-progress verification returns `404 E13000`, whether none was ever created or the most recent one is already resolved. A recipient who has already verified is in that set, so a `404` here is not evidence they still need verifying, and creating another verification would send a passcode they no longer need. A plan with no further channel returns `422 NoNextChannel`; create the verification again to resend on the current channel. If every remaining channel fails, the operation returns `422 NoAvailableChannel`. Requests that exceed the send rate limit return `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "verify",
                    "verifications",
                    "next-channel"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": {\n    \"phone_number\": \"+15551234567\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vrf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"pending\",\n  \"reason\": \"attempts_exhausted\",\n  \"to\": {\n    \"email\": \"user@example.com\",\n    \"phone_number\": \"+15551234567\"\n  },\n  \"channels\": [\n    {\n      \"channel\": \"email\"\n    }\n  ],\n  \"last_channel\": \"email\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "3a8d3470-41eb-8f87-8cec-aa11702739ff",
      "name": "whatsapp-messages",
      "description": {
        "content": "Send WhatsApp messages, whether a template, free-form content, or interactive content the recipient can tap, and read the messages your workspace sent and received, including their current delivery status and lifecycle events.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "63f423fd-5126-8b29-8e47-cd5f90176593",
          "name": "List WhatsApp messages",
          "request": {
            "name": "List WhatsApp messages",
            "description": {
              "content": "Returns the workspace's WhatsApp messages as a cursor-paginated list,\nnewest first, outbound and inbound alike. Each message carries the one\ncontent object it was built from: `template`, or free-form `text`,\n`image`, `video`, `audio`, `sticker`, `document`, `location`,\n`interactive` or `contact_cards`. An inbound message carries\n`interactive_reply` when the contact tapped a reply button or a list row,\non an interactive message or on a template's quick reply. An inbound\nmessage whose content WhatsApp models and we do not carries `unsupported`\ninstead, naming the type rather than reading back empty.\nFilter by direction, status, recipient (`to`), sender (`from`),\nbusiness-scoped user ID (`bsuid`), template category, tag, or creation\ntime. `to` and `from` name the same ends of the message the response\ndoes, and each accepts an E.164 phone number or a business-scoped user\nID. Pair either with `direction` to search a single side of the message.\nPass the response's `next_cursor` back as\n`starting_after` to fetch the next page. To follow a single message's\ndelivery, use\n[Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message)\ninstead.\n\nMessages are retained for **30 days**. A `created_after` earlier than that\nis accepted and raised to the retention bound rather than rejected, so a\nwider window returns what is still retained instead of failing. There is no\nway to read messages older than the window.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "whatsapp",
                "messages"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                },
                {
                  "disabled": false,
                  "key": "created_after",
                  "value": "2026-05-01T00:00:00Z",
                  "description": "Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                },
                {
                  "disabled": false,
                  "key": "created_before",
                  "value": "2026-06-01T00:00:00Z",
                  "description": "Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                },
                {
                  "disabled": true,
                  "key": "status",
                  "value": "",
                  "description": "Filter by status. Repeat the parameter to match any of several statuses."
                },
                {
                  "disabled": true,
                  "key": "status",
                  "value": "",
                  "description": "Filter by status. Repeat the parameter to match any of several statuses."
                },
                {
                  "disabled": true,
                  "key": "direction",
                  "value": "",
                  "description": "Filter by whether the business sent the message (`outbound`) or received it from the contact (`inbound`).\n"
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "+15551234567",
                  "description": "Filter by recipient, exact match. The recipient is the contact on an outbound message and your business number on an inbound one, matching the `to` each message returns. Accepts an E.164 phone number, or a business-scoped user ID to name the contact. Only a contact is ever identified by a business-scoped user ID, so `to=<business-scoped user ID>` matches outbound messages only.\n"
                },
                {
                  "disabled": false,
                  "key": "from",
                  "value": "+13124495648",
                  "description": "Filter by sender, exact match. The sender is your business number on an outbound message and the contact on an inbound one, matching the `from` each message returns. Accepts an E.164 phone number, or a business-scoped user ID to name the contact. Only a contact is ever identified by a business-scoped user ID, so `from=<business-scoped user ID>` matches inbound messages only.\n"
                },
                {
                  "disabled": false,
                  "key": "phone_number",
                  "value": "+15551234567",
                  "description": "Deprecated: use `to` or `from` instead, which also match a business-scoped user ID. Filters by contact phone number (E.164 exact match), in either direction.\n"
                },
                {
                  "disabled": false,
                  "key": "bsuid",
                  "value": "NL.xxxx",
                  "description": "Filter by business-scoped user ID (Meta identifier), matching the contact in either direction. `to` and `from` also accept one, but each matches a single end of the message.\n"
                },
                {
                  "disabled": true,
                  "key": "category",
                  "value": "",
                  "description": "Filter by category."
                },
                {
                  "disabled": true,
                  "key": "tag",
                  "value": "",
                  "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                },
                {
                  "disabled": true,
                  "key": "tag",
                  "value": "",
                  "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "f8e57b95-5acc-87d6-88a2-ae2c21495403",
              "name": "Paginated list of WhatsApp messages.",
              "originalRequest": {
                "name": "List WhatsApp messages",
                "description": {
                  "content": "Returns the workspace's WhatsApp messages as a cursor-paginated list,\nnewest first, outbound and inbound alike. Each message carries the one\ncontent object it was built from: `template`, or free-form `text`,\n`image`, `video`, `audio`, `sticker`, `document`, `location`,\n`interactive` or `contact_cards`. An inbound message carries\n`interactive_reply` when the contact tapped a reply button or a list row,\non an interactive message or on a template's quick reply. An inbound\nmessage whose content WhatsApp models and we do not carries `unsupported`\ninstead, naming the type rather than reading back empty.\nFilter by direction, status, recipient (`to`), sender (`from`),\nbusiness-scoped user ID (`bsuid`), template category, tag, or creation\ntime. `to` and `from` name the same ends of the message the response\ndoes, and each accepts an E.164 phone number or a business-scoped user\nID. Pair either with `direction` to search a single side of the message.\nPass the response's `next_cursor` back as\n`starting_after` to fetch the next page. To follow a single message's\ndelivery, use\n[Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message)\ninstead.\n\nMessages are retained for **30 days**. A `created_after` earlier than that\nis accepted and raised to the retention bound rather than rejected, so a\nwider window returns what is still retained instead of failing. There is no\nway to read messages older than the window.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "created_after",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": false,
                      "key": "created_before",
                      "value": "2026-06-01T00:00:00Z",
                      "description": "Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter by status. Repeat the parameter to match any of several statuses."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter by status. Repeat the parameter to match any of several statuses."
                    },
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter by whether the business sent the message (`outbound`) or received it from the contact (`inbound`).\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "+15551234567",
                      "description": "Filter by recipient, exact match. The recipient is the contact on an outbound message and your business number on an inbound one, matching the `to` each message returns. Accepts an E.164 phone number, or a business-scoped user ID to name the contact. Only a contact is ever identified by a business-scoped user ID, so `to=<business-scoped user ID>` matches outbound messages only.\n"
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "+13124495648",
                      "description": "Filter by sender, exact match. The sender is your business number on an outbound message and the contact on an inbound one, matching the `from` each message returns. Accepts an E.164 phone number, or a business-scoped user ID to name the contact. Only a contact is ever identified by a business-scoped user ID, so `from=<business-scoped user ID>` matches inbound messages only.\n"
                    },
                    {
                      "disabled": false,
                      "key": "phone_number",
                      "value": "+15551234567",
                      "description": "Deprecated: use `to` or `from` instead, which also match a business-scoped user ID. Filters by contact phone number (E.164 exact match), in either direction.\n"
                    },
                    {
                      "disabled": false,
                      "key": "bsuid",
                      "value": "NL.xxxx",
                      "description": "Filter by business-scoped user ID (Meta identifier), matching the contact in either direction. `to` and `from` also accept one, but each matches a single end of the message.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Filter by category."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"from\": {\n        \"phone_number\": \"+15550001111\",\n        \"bsuid\": \"NL.xxxx\"\n      },\n      \"to\": {\n        \"phone_number\": \"+15550001111\",\n        \"bsuid\": \"NL.xxxx\"\n      },\n      \"template\": {\n        \"slug\": \"bird_otp\",\n        \"category\": \"authentication\",\n        \"language\": \"pt-BR\",\n        \"components\": [\n          {\n            \"type\": \"header\"\n          }\n        ]\n      },\n      \"text\": {\n        \"body\": \"Does it come in another color?\"\n      },\n      \"image\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"caption\": \"Your receipt for order A1B2C3\"\n      },\n      \"video\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"caption\": \"How to set it up\"\n      },\n      \"audio\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"voice\": true\n      },\n      \"sticker\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"animated\": false\n      },\n      \"document\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"caption\": \"Signed contract\",\n        \"filename\": \"contract-a1b2c3.pdf\"\n      },\n      \"location\": {\n        \"latitude\": 52.3702,\n        \"longitude\": 4.8952,\n        \"name\": \"Bird HQ\",\n        \"address\": \"Keizersgracht 117, Amsterdam\",\n        \"url\": \"https://www.google.com/maps/place/Statue+of+Liberty/@40.6246301,-74.5291919,124716m/\"\n      },\n      \"contact_cards\": [\n        {\n          \"origin\": \"contact_request\",\n          \"phone_numbers\": [\n            {\n              \"phone_number\": \"+16505551234\",\n              \"type\": \"CELL\"\n            }\n          ]\n        }\n      ],\n      \"interactive\": {\n        \"type\": \"button\",\n        \"header\": {\n          \"type\": \"image\",\n          \"text\": \"New workshop dates announced\",\n          \"url\": \"https://cdn.example.com/banners/workshop.png\"\n        },\n        \"body_text\": \"Your workshop is scheduled for 9am tomorrow.\",\n        \"footer_text\": \"Lucky Shrub, your gateway to succulents\",\n        \"buttons\": [\n          {\n            \"type\": \"quick_reply\"\n          }\n        ],\n        \"list\": {\n          \"button_text\": \"Shipping options\"\n        },\n        \"cta_url\": {\n          \"text\": \"See dates\",\n          \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n        },\n        \"cards\": [\n          {\n            \"body_text\": \"*Blue Echeveria*\"\n          }\n        ]\n      },\n      \"in_reply_to_message_id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"interactive_reply\": {\n        \"type\": \"list\",\n        \"list\": {\n          \"slug\": \"priority_express\",\n          \"text\": \"Priority Mail Express\",\n          \"description\": \"Next day to 2 days\"\n        }\n      },\n      \"unsupported\": {\n        \"type\": \"reaction\"\n      },\n      \"status\": \"scheduled\",\n      \"last_error\": {\n        \"code\": \"insufficient_balance\",\n        \"description\": \"Message could not be delivered.\",\n        \"meta_error_code\": \"131026\"\n      },\n      \"cost\": {\n        \"amount\": \"0.00990\",\n        \"currency_code\": \"USD\",\n        \"transaction_amount\": \"0.00790\",\n        \"passthrough_amount\": \"0.00200\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "55aa704d-4d58-81fd-8198-fbf2b2ddfb8c",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List WhatsApp messages",
                "description": {
                  "content": "Returns the workspace's WhatsApp messages as a cursor-paginated list,\nnewest first, outbound and inbound alike. Each message carries the one\ncontent object it was built from: `template`, or free-form `text`,\n`image`, `video`, `audio`, `sticker`, `document`, `location`,\n`interactive` or `contact_cards`. An inbound message carries\n`interactive_reply` when the contact tapped a reply button or a list row,\non an interactive message or on a template's quick reply. An inbound\nmessage whose content WhatsApp models and we do not carries `unsupported`\ninstead, naming the type rather than reading back empty.\nFilter by direction, status, recipient (`to`), sender (`from`),\nbusiness-scoped user ID (`bsuid`), template category, tag, or creation\ntime. `to` and `from` name the same ends of the message the response\ndoes, and each accepts an E.164 phone number or a business-scoped user\nID. Pair either with `direction` to search a single side of the message.\nPass the response's `next_cursor` back as\n`starting_after` to fetch the next page. To follow a single message's\ndelivery, use\n[Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message)\ninstead.\n\nMessages are retained for **30 days**. A `created_after` earlier than that\nis accepted and raised to the retention bound rather than rejected, so a\nwider window returns what is still retained instead of failing. There is no\nway to read messages older than the window.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "created_after",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": false,
                      "key": "created_before",
                      "value": "2026-06-01T00:00:00Z",
                      "description": "Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter by status. Repeat the parameter to match any of several statuses."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter by status. Repeat the parameter to match any of several statuses."
                    },
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter by whether the business sent the message (`outbound`) or received it from the contact (`inbound`).\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "+15551234567",
                      "description": "Filter by recipient, exact match. The recipient is the contact on an outbound message and your business number on an inbound one, matching the `to` each message returns. Accepts an E.164 phone number, or a business-scoped user ID to name the contact. Only a contact is ever identified by a business-scoped user ID, so `to=<business-scoped user ID>` matches outbound messages only.\n"
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "+13124495648",
                      "description": "Filter by sender, exact match. The sender is your business number on an outbound message and the contact on an inbound one, matching the `from` each message returns. Accepts an E.164 phone number, or a business-scoped user ID to name the contact. Only a contact is ever identified by a business-scoped user ID, so `from=<business-scoped user ID>` matches inbound messages only.\n"
                    },
                    {
                      "disabled": false,
                      "key": "phone_number",
                      "value": "+15551234567",
                      "description": "Deprecated: use `to` or `from` instead, which also match a business-scoped user ID. Filters by contact phone number (E.164 exact match), in either direction.\n"
                    },
                    {
                      "disabled": false,
                      "key": "bsuid",
                      "value": "NL.xxxx",
                      "description": "Filter by business-scoped user ID (Meta identifier), matching the contact in either direction. `to` and `from` also accept one, but each matches a single end of the message.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Filter by category."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"from\": {\n        \"phone_number\": \"+15550001111\",\n        \"bsuid\": \"NL.xxxx\"\n      },\n      \"to\": {\n        \"phone_number\": \"+15550001111\",\n        \"bsuid\": \"NL.xxxx\"\n      },\n      \"template\": {\n        \"slug\": \"bird_otp\",\n        \"category\": \"authentication\",\n        \"language\": \"pt-BR\",\n        \"components\": [\n          {\n            \"type\": \"header\"\n          }\n        ]\n      },\n      \"text\": {\n        \"body\": \"Does it come in another color?\"\n      },\n      \"image\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"caption\": \"Your receipt for order A1B2C3\"\n      },\n      \"video\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"caption\": \"How to set it up\"\n      },\n      \"audio\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"voice\": true\n      },\n      \"sticker\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"animated\": false\n      },\n      \"document\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"caption\": \"Signed contract\",\n        \"filename\": \"contract-a1b2c3.pdf\"\n      },\n      \"location\": {\n        \"latitude\": 52.3702,\n        \"longitude\": 4.8952,\n        \"name\": \"Bird HQ\",\n        \"address\": \"Keizersgracht 117, Amsterdam\",\n        \"url\": \"https://www.google.com/maps/place/Statue+of+Liberty/@40.6246301,-74.5291919,124716m/\"\n      },\n      \"contact_cards\": [\n        {\n          \"origin\": \"contact_request\",\n          \"phone_numbers\": [\n            {\n              \"phone_number\": \"+16505551234\",\n              \"type\": \"CELL\"\n            }\n          ]\n        }\n      ],\n      \"interactive\": {\n        \"type\": \"button\",\n        \"header\": {\n          \"type\": \"image\",\n          \"text\": \"New workshop dates announced\",\n          \"url\": \"https://cdn.example.com/banners/workshop.png\"\n        },\n        \"body_text\": \"Your workshop is scheduled for 9am tomorrow.\",\n        \"footer_text\": \"Lucky Shrub, your gateway to succulents\",\n        \"buttons\": [\n          {\n            \"type\": \"quick_reply\"\n          }\n        ],\n        \"list\": {\n          \"button_text\": \"Shipping options\"\n        },\n        \"cta_url\": {\n          \"text\": \"See dates\",\n          \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n        },\n        \"cards\": [\n          {\n            \"body_text\": \"*Blue Echeveria*\"\n          }\n        ]\n      },\n      \"in_reply_to_message_id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"interactive_reply\": {\n        \"type\": \"list\",\n        \"list\": {\n          \"slug\": \"priority_express\",\n          \"text\": \"Priority Mail Express\",\n          \"description\": \"Next day to 2 days\"\n        }\n      },\n      \"unsupported\": {\n        \"type\": \"reaction\"\n      },\n      \"status\": \"scheduled\",\n      \"last_error\": {\n        \"code\": \"insufficient_balance\",\n        \"description\": \"Message could not be delivered.\",\n        \"meta_error_code\": \"131026\"\n      },\n      \"cost\": {\n        \"amount\": \"0.00990\",\n        \"currency_code\": \"USD\",\n        \"transaction_amount\": \"0.00790\",\n        \"passthrough_amount\": \"0.00200\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3476346c-7328-8d38-80c8-01db7fcddeab",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List WhatsApp messages",
                "description": {
                  "content": "Returns the workspace's WhatsApp messages as a cursor-paginated list,\nnewest first, outbound and inbound alike. Each message carries the one\ncontent object it was built from: `template`, or free-form `text`,\n`image`, `video`, `audio`, `sticker`, `document`, `location`,\n`interactive` or `contact_cards`. An inbound message carries\n`interactive_reply` when the contact tapped a reply button or a list row,\non an interactive message or on a template's quick reply. An inbound\nmessage whose content WhatsApp models and we do not carries `unsupported`\ninstead, naming the type rather than reading back empty.\nFilter by direction, status, recipient (`to`), sender (`from`),\nbusiness-scoped user ID (`bsuid`), template category, tag, or creation\ntime. `to` and `from` name the same ends of the message the response\ndoes, and each accepts an E.164 phone number or a business-scoped user\nID. Pair either with `direction` to search a single side of the message.\nPass the response's `next_cursor` back as\n`starting_after` to fetch the next page. To follow a single message's\ndelivery, use\n[Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message)\ninstead.\n\nMessages are retained for **30 days**. A `created_after` earlier than that\nis accepted and raised to the retention bound rather than rejected, so a\nwider window returns what is still retained instead of failing. There is no\nway to read messages older than the window.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "created_after",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": false,
                      "key": "created_before",
                      "value": "2026-06-01T00:00:00Z",
                      "description": "Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter by status. Repeat the parameter to match any of several statuses."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter by status. Repeat the parameter to match any of several statuses."
                    },
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter by whether the business sent the message (`outbound`) or received it from the contact (`inbound`).\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "+15551234567",
                      "description": "Filter by recipient, exact match. The recipient is the contact on an outbound message and your business number on an inbound one, matching the `to` each message returns. Accepts an E.164 phone number, or a business-scoped user ID to name the contact. Only a contact is ever identified by a business-scoped user ID, so `to=<business-scoped user ID>` matches outbound messages only.\n"
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "+13124495648",
                      "description": "Filter by sender, exact match. The sender is your business number on an outbound message and the contact on an inbound one, matching the `from` each message returns. Accepts an E.164 phone number, or a business-scoped user ID to name the contact. Only a contact is ever identified by a business-scoped user ID, so `from=<business-scoped user ID>` matches inbound messages only.\n"
                    },
                    {
                      "disabled": false,
                      "key": "phone_number",
                      "value": "+15551234567",
                      "description": "Deprecated: use `to` or `from` instead, which also match a business-scoped user ID. Filters by contact phone number (E.164 exact match), in either direction.\n"
                    },
                    {
                      "disabled": false,
                      "key": "bsuid",
                      "value": "NL.xxxx",
                      "description": "Filter by business-scoped user ID (Meta identifier), matching the contact in either direction. `to` and `from` also accept one, but each matches a single end of the message.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Filter by category."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"from\": {\n        \"phone_number\": \"+15550001111\",\n        \"bsuid\": \"NL.xxxx\"\n      },\n      \"to\": {\n        \"phone_number\": \"+15550001111\",\n        \"bsuid\": \"NL.xxxx\"\n      },\n      \"template\": {\n        \"slug\": \"bird_otp\",\n        \"category\": \"authentication\",\n        \"language\": \"pt-BR\",\n        \"components\": [\n          {\n            \"type\": \"header\"\n          }\n        ]\n      },\n      \"text\": {\n        \"body\": \"Does it come in another color?\"\n      },\n      \"image\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"caption\": \"Your receipt for order A1B2C3\"\n      },\n      \"video\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"caption\": \"How to set it up\"\n      },\n      \"audio\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"voice\": true\n      },\n      \"sticker\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"animated\": false\n      },\n      \"document\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"caption\": \"Signed contract\",\n        \"filename\": \"contract-a1b2c3.pdf\"\n      },\n      \"location\": {\n        \"latitude\": 52.3702,\n        \"longitude\": 4.8952,\n        \"name\": \"Bird HQ\",\n        \"address\": \"Keizersgracht 117, Amsterdam\",\n        \"url\": \"https://www.google.com/maps/place/Statue+of+Liberty/@40.6246301,-74.5291919,124716m/\"\n      },\n      \"contact_cards\": [\n        {\n          \"origin\": \"contact_request\",\n          \"phone_numbers\": [\n            {\n              \"phone_number\": \"+16505551234\",\n              \"type\": \"CELL\"\n            }\n          ]\n        }\n      ],\n      \"interactive\": {\n        \"type\": \"button\",\n        \"header\": {\n          \"type\": \"image\",\n          \"text\": \"New workshop dates announced\",\n          \"url\": \"https://cdn.example.com/banners/workshop.png\"\n        },\n        \"body_text\": \"Your workshop is scheduled for 9am tomorrow.\",\n        \"footer_text\": \"Lucky Shrub, your gateway to succulents\",\n        \"buttons\": [\n          {\n            \"type\": \"quick_reply\"\n          }\n        ],\n        \"list\": {\n          \"button_text\": \"Shipping options\"\n        },\n        \"cta_url\": {\n          \"text\": \"See dates\",\n          \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n        },\n        \"cards\": [\n          {\n            \"body_text\": \"*Blue Echeveria*\"\n          }\n        ]\n      },\n      \"in_reply_to_message_id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"interactive_reply\": {\n        \"type\": \"list\",\n        \"list\": {\n          \"slug\": \"priority_express\",\n          \"text\": \"Priority Mail Express\",\n          \"description\": \"Next day to 2 days\"\n        }\n      },\n      \"unsupported\": {\n        \"type\": \"reaction\"\n      },\n      \"status\": \"scheduled\",\n      \"last_error\": {\n        \"code\": \"insufficient_balance\",\n        \"description\": \"Message could not be delivered.\",\n        \"meta_error_code\": \"131026\"\n      },\n      \"cost\": {\n        \"amount\": \"0.00990\",\n        \"currency_code\": \"USD\",\n        \"transaction_amount\": \"0.00790\",\n        \"passthrough_amount\": \"0.00200\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3ee369e2-5421-86d8-88da-41d6ad47e01e",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List WhatsApp messages",
                "description": {
                  "content": "Returns the workspace's WhatsApp messages as a cursor-paginated list,\nnewest first, outbound and inbound alike. Each message carries the one\ncontent object it was built from: `template`, or free-form `text`,\n`image`, `video`, `audio`, `sticker`, `document`, `location`,\n`interactive` or `contact_cards`. An inbound message carries\n`interactive_reply` when the contact tapped a reply button or a list row,\non an interactive message or on a template's quick reply. An inbound\nmessage whose content WhatsApp models and we do not carries `unsupported`\ninstead, naming the type rather than reading back empty.\nFilter by direction, status, recipient (`to`), sender (`from`),\nbusiness-scoped user ID (`bsuid`), template category, tag, or creation\ntime. `to` and `from` name the same ends of the message the response\ndoes, and each accepts an E.164 phone number or a business-scoped user\nID. Pair either with `direction` to search a single side of the message.\nPass the response's `next_cursor` back as\n`starting_after` to fetch the next page. To follow a single message's\ndelivery, use\n[Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message)\ninstead.\n\nMessages are retained for **30 days**. A `created_after` earlier than that\nis accepted and raised to the retention bound rather than rejected, so a\nwider window returns what is still retained instead of failing. There is no\nway to read messages older than the window.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "created_after",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": false,
                      "key": "created_before",
                      "value": "2026-06-01T00:00:00Z",
                      "description": "Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter by status. Repeat the parameter to match any of several statuses."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter by status. Repeat the parameter to match any of several statuses."
                    },
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter by whether the business sent the message (`outbound`) or received it from the contact (`inbound`).\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "+15551234567",
                      "description": "Filter by recipient, exact match. The recipient is the contact on an outbound message and your business number on an inbound one, matching the `to` each message returns. Accepts an E.164 phone number, or a business-scoped user ID to name the contact. Only a contact is ever identified by a business-scoped user ID, so `to=<business-scoped user ID>` matches outbound messages only.\n"
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "+13124495648",
                      "description": "Filter by sender, exact match. The sender is your business number on an outbound message and the contact on an inbound one, matching the `from` each message returns. Accepts an E.164 phone number, or a business-scoped user ID to name the contact. Only a contact is ever identified by a business-scoped user ID, so `from=<business-scoped user ID>` matches inbound messages only.\n"
                    },
                    {
                      "disabled": false,
                      "key": "phone_number",
                      "value": "+15551234567",
                      "description": "Deprecated: use `to` or `from` instead, which also match a business-scoped user ID. Filters by contact phone number (E.164 exact match), in either direction.\n"
                    },
                    {
                      "disabled": false,
                      "key": "bsuid",
                      "value": "NL.xxxx",
                      "description": "Filter by business-scoped user ID (Meta identifier), matching the contact in either direction. `to` and `from` also accept one, but each matches a single end of the message.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Filter by category."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"from\": {\n        \"phone_number\": \"+15550001111\",\n        \"bsuid\": \"NL.xxxx\"\n      },\n      \"to\": {\n        \"phone_number\": \"+15550001111\",\n        \"bsuid\": \"NL.xxxx\"\n      },\n      \"template\": {\n        \"slug\": \"bird_otp\",\n        \"category\": \"authentication\",\n        \"language\": \"pt-BR\",\n        \"components\": [\n          {\n            \"type\": \"header\"\n          }\n        ]\n      },\n      \"text\": {\n        \"body\": \"Does it come in another color?\"\n      },\n      \"image\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"caption\": \"Your receipt for order A1B2C3\"\n      },\n      \"video\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"caption\": \"How to set it up\"\n      },\n      \"audio\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"voice\": true\n      },\n      \"sticker\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"animated\": false\n      },\n      \"document\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"caption\": \"Signed contract\",\n        \"filename\": \"contract-a1b2c3.pdf\"\n      },\n      \"location\": {\n        \"latitude\": 52.3702,\n        \"longitude\": 4.8952,\n        \"name\": \"Bird HQ\",\n        \"address\": \"Keizersgracht 117, Amsterdam\",\n        \"url\": \"https://www.google.com/maps/place/Statue+of+Liberty/@40.6246301,-74.5291919,124716m/\"\n      },\n      \"contact_cards\": [\n        {\n          \"origin\": \"contact_request\",\n          \"phone_numbers\": [\n            {\n              \"phone_number\": \"+16505551234\",\n              \"type\": \"CELL\"\n            }\n          ]\n        }\n      ],\n      \"interactive\": {\n        \"type\": \"button\",\n        \"header\": {\n          \"type\": \"image\",\n          \"text\": \"New workshop dates announced\",\n          \"url\": \"https://cdn.example.com/banners/workshop.png\"\n        },\n        \"body_text\": \"Your workshop is scheduled for 9am tomorrow.\",\n        \"footer_text\": \"Lucky Shrub, your gateway to succulents\",\n        \"buttons\": [\n          {\n            \"type\": \"quick_reply\"\n          }\n        ],\n        \"list\": {\n          \"button_text\": \"Shipping options\"\n        },\n        \"cta_url\": {\n          \"text\": \"See dates\",\n          \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n        },\n        \"cards\": [\n          {\n            \"body_text\": \"*Blue Echeveria*\"\n          }\n        ]\n      },\n      \"in_reply_to_message_id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"interactive_reply\": {\n        \"type\": \"list\",\n        \"list\": {\n          \"slug\": \"priority_express\",\n          \"text\": \"Priority Mail Express\",\n          \"description\": \"Next day to 2 days\"\n        }\n      },\n      \"unsupported\": {\n        \"type\": \"reaction\"\n      },\n      \"status\": \"scheduled\",\n      \"last_error\": {\n        \"code\": \"insufficient_balance\",\n        \"description\": \"Message could not be delivered.\",\n        \"meta_error_code\": \"131026\"\n      },\n      \"cost\": {\n        \"amount\": \"0.00990\",\n        \"currency_code\": \"USD\",\n        \"transaction_amount\": \"0.00790\",\n        \"passthrough_amount\": \"0.00200\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8ad69e29-25fe-80e5-8c95-bf6eba41ae44",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List WhatsApp messages",
                "description": {
                  "content": "Returns the workspace's WhatsApp messages as a cursor-paginated list,\nnewest first, outbound and inbound alike. Each message carries the one\ncontent object it was built from: `template`, or free-form `text`,\n`image`, `video`, `audio`, `sticker`, `document`, `location`,\n`interactive` or `contact_cards`. An inbound message carries\n`interactive_reply` when the contact tapped a reply button or a list row,\non an interactive message or on a template's quick reply. An inbound\nmessage whose content WhatsApp models and we do not carries `unsupported`\ninstead, naming the type rather than reading back empty.\nFilter by direction, status, recipient (`to`), sender (`from`),\nbusiness-scoped user ID (`bsuid`), template category, tag, or creation\ntime. `to` and `from` name the same ends of the message the response\ndoes, and each accepts an E.164 phone number or a business-scoped user\nID. Pair either with `direction` to search a single side of the message.\nPass the response's `next_cursor` back as\n`starting_after` to fetch the next page. To follow a single message's\ndelivery, use\n[Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message)\ninstead.\n\nMessages are retained for **30 days**. A `created_after` earlier than that\nis accepted and raised to the retention bound rather than rejected, so a\nwider window returns what is still retained instead of failing. There is no\nway to read messages older than the window.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "created_after",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": false,
                      "key": "created_before",
                      "value": "2026-06-01T00:00:00Z",
                      "description": "Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter by status. Repeat the parameter to match any of several statuses."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter by status. Repeat the parameter to match any of several statuses."
                    },
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter by whether the business sent the message (`outbound`) or received it from the contact (`inbound`).\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "+15551234567",
                      "description": "Filter by recipient, exact match. The recipient is the contact on an outbound message and your business number on an inbound one, matching the `to` each message returns. Accepts an E.164 phone number, or a business-scoped user ID to name the contact. Only a contact is ever identified by a business-scoped user ID, so `to=<business-scoped user ID>` matches outbound messages only.\n"
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "+13124495648",
                      "description": "Filter by sender, exact match. The sender is your business number on an outbound message and the contact on an inbound one, matching the `from` each message returns. Accepts an E.164 phone number, or a business-scoped user ID to name the contact. Only a contact is ever identified by a business-scoped user ID, so `from=<business-scoped user ID>` matches inbound messages only.\n"
                    },
                    {
                      "disabled": false,
                      "key": "phone_number",
                      "value": "+15551234567",
                      "description": "Deprecated: use `to` or `from` instead, which also match a business-scoped user ID. Filters by contact phone number (E.164 exact match), in either direction.\n"
                    },
                    {
                      "disabled": false,
                      "key": "bsuid",
                      "value": "NL.xxxx",
                      "description": "Filter by business-scoped user ID (Meta identifier), matching the contact in either direction. `to` and `from` also accept one, but each matches a single end of the message.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Filter by category."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"from\": {\n        \"phone_number\": \"+15550001111\",\n        \"bsuid\": \"NL.xxxx\"\n      },\n      \"to\": {\n        \"phone_number\": \"+15550001111\",\n        \"bsuid\": \"NL.xxxx\"\n      },\n      \"template\": {\n        \"slug\": \"bird_otp\",\n        \"category\": \"authentication\",\n        \"language\": \"pt-BR\",\n        \"components\": [\n          {\n            \"type\": \"header\"\n          }\n        ]\n      },\n      \"text\": {\n        \"body\": \"Does it come in another color?\"\n      },\n      \"image\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"caption\": \"Your receipt for order A1B2C3\"\n      },\n      \"video\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"caption\": \"How to set it up\"\n      },\n      \"audio\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"voice\": true\n      },\n      \"sticker\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"animated\": false\n      },\n      \"document\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"caption\": \"Signed contract\",\n        \"filename\": \"contract-a1b2c3.pdf\"\n      },\n      \"location\": {\n        \"latitude\": 52.3702,\n        \"longitude\": 4.8952,\n        \"name\": \"Bird HQ\",\n        \"address\": \"Keizersgracht 117, Amsterdam\",\n        \"url\": \"https://www.google.com/maps/place/Statue+of+Liberty/@40.6246301,-74.5291919,124716m/\"\n      },\n      \"contact_cards\": [\n        {\n          \"origin\": \"contact_request\",\n          \"phone_numbers\": [\n            {\n              \"phone_number\": \"+16505551234\",\n              \"type\": \"CELL\"\n            }\n          ]\n        }\n      ],\n      \"interactive\": {\n        \"type\": \"button\",\n        \"header\": {\n          \"type\": \"image\",\n          \"text\": \"New workshop dates announced\",\n          \"url\": \"https://cdn.example.com/banners/workshop.png\"\n        },\n        \"body_text\": \"Your workshop is scheduled for 9am tomorrow.\",\n        \"footer_text\": \"Lucky Shrub, your gateway to succulents\",\n        \"buttons\": [\n          {\n            \"type\": \"quick_reply\"\n          }\n        ],\n        \"list\": {\n          \"button_text\": \"Shipping options\"\n        },\n        \"cta_url\": {\n          \"text\": \"See dates\",\n          \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n        },\n        \"cards\": [\n          {\n            \"body_text\": \"*Blue Echeveria*\"\n          }\n        ]\n      },\n      \"in_reply_to_message_id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"interactive_reply\": {\n        \"type\": \"list\",\n        \"list\": {\n          \"slug\": \"priority_express\",\n          \"text\": \"Priority Mail Express\",\n          \"description\": \"Next day to 2 days\"\n        }\n      },\n      \"unsupported\": {\n        \"type\": \"reaction\"\n      },\n      \"status\": \"scheduled\",\n      \"last_error\": {\n        \"code\": \"insufficient_balance\",\n        \"description\": \"Message could not be delivered.\",\n        \"meta_error_code\": \"131026\"\n      },\n      \"cost\": {\n        \"amount\": \"0.00990\",\n        \"currency_code\": \"USD\",\n        \"transaction_amount\": \"0.00790\",\n        \"passthrough_amount\": \"0.00200\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "21e09ee4-f90e-8d83-8a93-0ca1a2524e9e",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List WhatsApp messages",
                "description": {
                  "content": "Returns the workspace's WhatsApp messages as a cursor-paginated list,\nnewest first, outbound and inbound alike. Each message carries the one\ncontent object it was built from: `template`, or free-form `text`,\n`image`, `video`, `audio`, `sticker`, `document`, `location`,\n`interactive` or `contact_cards`. An inbound message carries\n`interactive_reply` when the contact tapped a reply button or a list row,\non an interactive message or on a template's quick reply. An inbound\nmessage whose content WhatsApp models and we do not carries `unsupported`\ninstead, naming the type rather than reading back empty.\nFilter by direction, status, recipient (`to`), sender (`from`),\nbusiness-scoped user ID (`bsuid`), template category, tag, or creation\ntime. `to` and `from` name the same ends of the message the response\ndoes, and each accepts an E.164 phone number or a business-scoped user\nID. Pair either with `direction` to search a single side of the message.\nPass the response's `next_cursor` back as\n`starting_after` to fetch the next page. To follow a single message's\ndelivery, use\n[Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message)\ninstead.\n\nMessages are retained for **30 days**. A `created_after` earlier than that\nis accepted and raised to the retention bound rather than rejected, so a\nwider window returns what is still retained instead of failing. There is no\nway to read messages older than the window.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "created_after",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": false,
                      "key": "created_before",
                      "value": "2026-06-01T00:00:00Z",
                      "description": "Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter by status. Repeat the parameter to match any of several statuses."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter by status. Repeat the parameter to match any of several statuses."
                    },
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter by whether the business sent the message (`outbound`) or received it from the contact (`inbound`).\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "+15551234567",
                      "description": "Filter by recipient, exact match. The recipient is the contact on an outbound message and your business number on an inbound one, matching the `to` each message returns. Accepts an E.164 phone number, or a business-scoped user ID to name the contact. Only a contact is ever identified by a business-scoped user ID, so `to=<business-scoped user ID>` matches outbound messages only.\n"
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "+13124495648",
                      "description": "Filter by sender, exact match. The sender is your business number on an outbound message and the contact on an inbound one, matching the `from` each message returns. Accepts an E.164 phone number, or a business-scoped user ID to name the contact. Only a contact is ever identified by a business-scoped user ID, so `from=<business-scoped user ID>` matches inbound messages only.\n"
                    },
                    {
                      "disabled": false,
                      "key": "phone_number",
                      "value": "+15551234567",
                      "description": "Deprecated: use `to` or `from` instead, which also match a business-scoped user ID. Filters by contact phone number (E.164 exact match), in either direction.\n"
                    },
                    {
                      "disabled": false,
                      "key": "bsuid",
                      "value": "NL.xxxx",
                      "description": "Filter by business-scoped user ID (Meta identifier), matching the contact in either direction. `to` and `from` also accept one, but each matches a single end of the message.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Filter by category."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"from\": {\n        \"phone_number\": \"+15550001111\",\n        \"bsuid\": \"NL.xxxx\"\n      },\n      \"to\": {\n        \"phone_number\": \"+15550001111\",\n        \"bsuid\": \"NL.xxxx\"\n      },\n      \"template\": {\n        \"slug\": \"bird_otp\",\n        \"category\": \"authentication\",\n        \"language\": \"pt-BR\",\n        \"components\": [\n          {\n            \"type\": \"header\"\n          }\n        ]\n      },\n      \"text\": {\n        \"body\": \"Does it come in another color?\"\n      },\n      \"image\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"caption\": \"Your receipt for order A1B2C3\"\n      },\n      \"video\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"caption\": \"How to set it up\"\n      },\n      \"audio\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"voice\": true\n      },\n      \"sticker\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"animated\": false\n      },\n      \"document\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"caption\": \"Signed contract\",\n        \"filename\": \"contract-a1b2c3.pdf\"\n      },\n      \"location\": {\n        \"latitude\": 52.3702,\n        \"longitude\": 4.8952,\n        \"name\": \"Bird HQ\",\n        \"address\": \"Keizersgracht 117, Amsterdam\",\n        \"url\": \"https://www.google.com/maps/place/Statue+of+Liberty/@40.6246301,-74.5291919,124716m/\"\n      },\n      \"contact_cards\": [\n        {\n          \"origin\": \"contact_request\",\n          \"phone_numbers\": [\n            {\n              \"phone_number\": \"+16505551234\",\n              \"type\": \"CELL\"\n            }\n          ]\n        }\n      ],\n      \"interactive\": {\n        \"type\": \"button\",\n        \"header\": {\n          \"type\": \"image\",\n          \"text\": \"New workshop dates announced\",\n          \"url\": \"https://cdn.example.com/banners/workshop.png\"\n        },\n        \"body_text\": \"Your workshop is scheduled for 9am tomorrow.\",\n        \"footer_text\": \"Lucky Shrub, your gateway to succulents\",\n        \"buttons\": [\n          {\n            \"type\": \"quick_reply\"\n          }\n        ],\n        \"list\": {\n          \"button_text\": \"Shipping options\"\n        },\n        \"cta_url\": {\n          \"text\": \"See dates\",\n          \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n        },\n        \"cards\": [\n          {\n            \"body_text\": \"*Blue Echeveria*\"\n          }\n        ]\n      },\n      \"in_reply_to_message_id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"interactive_reply\": {\n        \"type\": \"list\",\n        \"list\": {\n          \"slug\": \"priority_express\",\n          \"text\": \"Priority Mail Express\",\n          \"description\": \"Next day to 2 days\"\n        }\n      },\n      \"unsupported\": {\n        \"type\": \"reaction\"\n      },\n      \"status\": \"scheduled\",\n      \"last_error\": {\n        \"code\": \"insufficient_balance\",\n        \"description\": \"Message could not be delivered.\",\n        \"meta_error_code\": \"131026\"\n      },\n      \"cost\": {\n        \"amount\": \"0.00990\",\n        \"currency_code\": \"USD\",\n        \"transaction_amount\": \"0.00790\",\n        \"passthrough_amount\": \"0.00200\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "35dcf7d2-b64b-8169-89a7-8f6f4a672951",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "List WhatsApp messages",
                "description": {
                  "content": "Returns the workspace's WhatsApp messages as a cursor-paginated list,\nnewest first, outbound and inbound alike. Each message carries the one\ncontent object it was built from: `template`, or free-form `text`,\n`image`, `video`, `audio`, `sticker`, `document`, `location`,\n`interactive` or `contact_cards`. An inbound message carries\n`interactive_reply` when the contact tapped a reply button or a list row,\non an interactive message or on a template's quick reply. An inbound\nmessage whose content WhatsApp models and we do not carries `unsupported`\ninstead, naming the type rather than reading back empty.\nFilter by direction, status, recipient (`to`), sender (`from`),\nbusiness-scoped user ID (`bsuid`), template category, tag, or creation\ntime. `to` and `from` name the same ends of the message the response\ndoes, and each accepts an E.164 phone number or a business-scoped user\nID. Pair either with `direction` to search a single side of the message.\nPass the response's `next_cursor` back as\n`starting_after` to fetch the next page. To follow a single message's\ndelivery, use\n[Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message)\ninstead.\n\nMessages are retained for **30 days**. A `created_after` earlier than that\nis accepted and raised to the retention bound rather than rejected, so a\nwider window returns what is still retained instead of failing. There is no\nway to read messages older than the window.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "created_after",
                      "value": "2026-05-01T00:00:00Z",
                      "description": "Limits the response to resources created at or after this timestamp. Combine it with `created_before` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": false,
                      "key": "created_before",
                      "value": "2026-06-01T00:00:00Z",
                      "description": "Limits the response to resources created before this timestamp. Combine it with `created_after` to select a time window. Use an RFC 3339 timestamp with a timezone offset."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter by status. Repeat the parameter to match any of several statuses."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter by status. Repeat the parameter to match any of several statuses."
                    },
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter by whether the business sent the message (`outbound`) or received it from the contact (`inbound`).\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "+15551234567",
                      "description": "Filter by recipient, exact match. The recipient is the contact on an outbound message and your business number on an inbound one, matching the `to` each message returns. Accepts an E.164 phone number, or a business-scoped user ID to name the contact. Only a contact is ever identified by a business-scoped user ID, so `to=<business-scoped user ID>` matches outbound messages only.\n"
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "+13124495648",
                      "description": "Filter by sender, exact match. The sender is your business number on an outbound message and the contact on an inbound one, matching the `from` each message returns. Accepts an E.164 phone number, or a business-scoped user ID to name the contact. Only a contact is ever identified by a business-scoped user ID, so `from=<business-scoped user ID>` matches inbound messages only.\n"
                    },
                    {
                      "disabled": false,
                      "key": "phone_number",
                      "value": "+15551234567",
                      "description": "Deprecated: use `to` or `from` instead, which also match a business-scoped user ID. Filters by contact phone number (E.164 exact match), in either direction.\n"
                    },
                    {
                      "disabled": false,
                      "key": "bsuid",
                      "value": "NL.xxxx",
                      "description": "Filter by business-scoped user ID (Meta identifier), matching the contact in either direction. `to` and `from` also accept one, but each matches a single end of the message.\n"
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Filter by category."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"from\": {\n        \"phone_number\": \"+15550001111\",\n        \"bsuid\": \"NL.xxxx\"\n      },\n      \"to\": {\n        \"phone_number\": \"+15550001111\",\n        \"bsuid\": \"NL.xxxx\"\n      },\n      \"template\": {\n        \"slug\": \"bird_otp\",\n        \"category\": \"authentication\",\n        \"language\": \"pt-BR\",\n        \"components\": [\n          {\n            \"type\": \"header\"\n          }\n        ]\n      },\n      \"text\": {\n        \"body\": \"Does it come in another color?\"\n      },\n      \"image\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"caption\": \"Your receipt for order A1B2C3\"\n      },\n      \"video\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"caption\": \"How to set it up\"\n      },\n      \"audio\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"voice\": true\n      },\n      \"sticker\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"animated\": false\n      },\n      \"document\": {\n        \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n        \"mime_type\": \"image/jpeg\",\n        \"caption\": \"Signed contract\",\n        \"filename\": \"contract-a1b2c3.pdf\"\n      },\n      \"location\": {\n        \"latitude\": 52.3702,\n        \"longitude\": 4.8952,\n        \"name\": \"Bird HQ\",\n        \"address\": \"Keizersgracht 117, Amsterdam\",\n        \"url\": \"https://www.google.com/maps/place/Statue+of+Liberty/@40.6246301,-74.5291919,124716m/\"\n      },\n      \"contact_cards\": [\n        {\n          \"origin\": \"contact_request\",\n          \"phone_numbers\": [\n            {\n              \"phone_number\": \"+16505551234\",\n              \"type\": \"CELL\"\n            }\n          ]\n        }\n      ],\n      \"interactive\": {\n        \"type\": \"button\",\n        \"header\": {\n          \"type\": \"image\",\n          \"text\": \"New workshop dates announced\",\n          \"url\": \"https://cdn.example.com/banners/workshop.png\"\n        },\n        \"body_text\": \"Your workshop is scheduled for 9am tomorrow.\",\n        \"footer_text\": \"Lucky Shrub, your gateway to succulents\",\n        \"buttons\": [\n          {\n            \"type\": \"quick_reply\"\n          }\n        ],\n        \"list\": {\n          \"button_text\": \"Shipping options\"\n        },\n        \"cta_url\": {\n          \"text\": \"See dates\",\n          \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n        },\n        \"cards\": [\n          {\n            \"body_text\": \"*Blue Echeveria*\"\n          }\n        ]\n      },\n      \"in_reply_to_message_id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"interactive_reply\": {\n        \"type\": \"list\",\n        \"list\": {\n          \"slug\": \"priority_express\",\n          \"text\": \"Priority Mail Express\",\n          \"description\": \"Next day to 2 days\"\n        }\n      },\n      \"unsupported\": {\n        \"type\": \"reaction\"\n      },\n      \"status\": \"scheduled\",\n      \"last_error\": {\n        \"code\": \"insufficient_balance\",\n        \"description\": \"Message could not be delivered.\",\n        \"meta_error_code\": \"131026\"\n      },\n      \"cost\": {\n        \"amount\": \"0.00990\",\n        \"currency_code\": \"USD\",\n        \"transaction_amount\": \"0.00790\",\n        \"passthrough_amount\": \"0.00200\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "9513c9a8-b02d-8e4a-8e1d-fabd5b5f8b36",
          "name": "Send a WhatsApp message",
          "request": {
            "name": "Send a WhatsApp message",
            "description": {
              "content": "Sends one WhatsApp message to one recipient. The request carries exactly one\nkind of content: a message template, or free-form `text`, `image`, `video`,\n`audio`, `sticker`, `document`, `location`, `contact_cards` or\n`interactive`. A request carrying none is rejected with a `422`, and one\ncarrying more than one is too.\n\nA **template** is the only content WhatsApp delivers outside an open\ncustomer service window, so it is what starts a conversation. Name the\ntemplate, optionally pick its language variant, and fill its placeholders in\n`components`. A Bird-managed template selects its sender number from its\ncategory, so the request carries no `from`; a template your workspace\nauthored requires one. Browse your workspace's templates in the Bird\ndashboard.\n\n**Free-form content** is deliverable only inside an open 24-hour customer\nservice window, which the contact opens by messaging or calling you and\nresets each time they do it again. Bird tracks that window, so a send into a\nclosed one is refused with a `422` `WhatsAppServiceWindowClosed` before\nanything is created or charged;\nsend a template instead, which reopens the window once the contact replies.\nA window that closes between accept and dispatch still fails\nasynchronously, carrying `service_window_expired` on the message's\n`last_error`. Every free-form send requires `from`.\n\n**Interactive content** gives the recipient something to tap. `interactive`\nnames its kind in `type` and carries that kind's own field: reply `buttons`,\na `list` menu, a `cta_url` link button, or `cards` for a carousel;\n`location_request_message` and `request_contact_info` are each a single\nbutton asking the recipient for something, so `body_text` is the whole\nmessage. A tap on a reply button or a list row comes back as an inbound\nmessage carrying `interactive_reply`. The other kinds answer in their own\nshape: a `cta_url` link opens in the recipient's browser and sends nothing\nback, and the two request kinds come back as the thing they asked for, an\ninbound `location` or `contact_cards` message.\nInteractive content is free-form, so the customer service window and the\n`from` requirement above both apply.\n\n**Contact cards** share up to five contacts in one message. Each card's\n`name` needs `formatted_name` plus at least one other part, and a\n`phone_number` in E.164 earns that card a button opening a chat with it.\nContact cards are free-form too, so the same window and `from` rules apply.\n\nSet `in_reply_to_message_id` to quote a message the contact sees above this\none, the way replying in the WhatsApp client does. Any content quotes, and\nthe quoted message must be one from this same conversation.\n\nThe `202` response is the accepted message, echoing the resolved content; it\nis not a delivery confirmation. Follow delivery with\n[Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message), the\nper-message timeline from\n[List events for a WhatsApp message](https://bird.com/docs/api/reference/list-whatsapp-message-events),\nor `whatsapp.*` webhook events.\n\nEach of these returns a `422`:\n\n- A template slug or language the catalogue does not stock.\n- Parameter values that do not match the template's declared placeholders.\n- A `from` this workspace cannot send from.\n- A recipient that is neither a valid phone number nor a business-scoped user ID.\n- Free-form content sent into a closed customer service window\n  (`WhatsAppServiceWindowClosed`).\n\nA send from a workspace with no wallet balance fails with a `402`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "whatsapp",
                "messages"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"to\": \"+31612345678\",\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"language\": \"en\",\n    \"components\": [\n      {\n        \"type\": \"body\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"text\": \"1234\"\n          }\n        ]\n      },\n      {\n        \"type\": \"button\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"text\": \"1234\"\n          }\n        ]\n      }\n    ]\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "0ae95100-2efe-8642-85f8-86657f2429c8",
              "name": "Message accepted for asynchronous delivery.",
              "originalRequest": {
                "name": "Send a WhatsApp message",
                "description": {
                  "content": "Sends one WhatsApp message to one recipient. The request carries exactly one\nkind of content: a message template, or free-form `text`, `image`, `video`,\n`audio`, `sticker`, `document`, `location`, `contact_cards` or\n`interactive`. A request carrying none is rejected with a `422`, and one\ncarrying more than one is too.\n\nA **template** is the only content WhatsApp delivers outside an open\ncustomer service window, so it is what starts a conversation. Name the\ntemplate, optionally pick its language variant, and fill its placeholders in\n`components`. A Bird-managed template selects its sender number from its\ncategory, so the request carries no `from`; a template your workspace\nauthored requires one. Browse your workspace's templates in the Bird\ndashboard.\n\n**Free-form content** is deliverable only inside an open 24-hour customer\nservice window, which the contact opens by messaging or calling you and\nresets each time they do it again. Bird tracks that window, so a send into a\nclosed one is refused with a `422` `WhatsAppServiceWindowClosed` before\nanything is created or charged;\nsend a template instead, which reopens the window once the contact replies.\nA window that closes between accept and dispatch still fails\nasynchronously, carrying `service_window_expired` on the message's\n`last_error`. Every free-form send requires `from`.\n\n**Interactive content** gives the recipient something to tap. `interactive`\nnames its kind in `type` and carries that kind's own field: reply `buttons`,\na `list` menu, a `cta_url` link button, or `cards` for a carousel;\n`location_request_message` and `request_contact_info` are each a single\nbutton asking the recipient for something, so `body_text` is the whole\nmessage. A tap on a reply button or a list row comes back as an inbound\nmessage carrying `interactive_reply`. The other kinds answer in their own\nshape: a `cta_url` link opens in the recipient's browser and sends nothing\nback, and the two request kinds come back as the thing they asked for, an\ninbound `location` or `contact_cards` message.\nInteractive content is free-form, so the customer service window and the\n`from` requirement above both apply.\n\n**Contact cards** share up to five contacts in one message. Each card's\n`name` needs `formatted_name` plus at least one other part, and a\n`phone_number` in E.164 earns that card a button opening a chat with it.\nContact cards are free-form too, so the same window and `from` rules apply.\n\nSet `in_reply_to_message_id` to quote a message the contact sees above this\none, the way replying in the WhatsApp client does. Any content quotes, and\nthe quoted message must be one from this same conversation.\n\nThe `202` response is the accepted message, echoing the resolved content; it\nis not a delivery confirmation. Follow delivery with\n[Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message), the\nper-message timeline from\n[List events for a WhatsApp message](https://bird.com/docs/api/reference/list-whatsapp-message-events),\nor `whatsapp.*` webhook events.\n\nEach of these returns a `422`:\n\n- A template slug or language the catalogue does not stock.\n- Parameter values that do not match the template's declared placeholders.\n- A `from` this workspace cannot send from.\n- A recipient that is neither a valid phone number nor a business-scoped user ID.\n- Free-form content sent into a closed customer service window\n  (`WhatsAppServiceWindowClosed`).\n\nA send from a workspace with no wallet balance fails with a `402`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": \"+31612345678\",\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"language\": \"en\",\n    \"components\": [\n      {\n        \"type\": \"body\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"text\": \"1234\"\n          }\n        ]\n      },\n      {\n        \"type\": \"button\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"text\": \"1234\"\n          }\n        ]\n      }\n    ]\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"from\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"to\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"category\": \"authentication\",\n    \"language\": \"pt-BR\",\n    \"components\": [\n      {\n        \"type\": \"header\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"url\": \"https://cdn.example.com/receipts/a1b2c3.png\",\n            \"location\": {\n              \"latitude\": 52.3702,\n              \"longitude\": 4.8952,\n              \"name\": \"Bird HQ\",\n              \"address\": \"Keizersgracht 117, Amsterdam\"\n            }\n          }\n        ],\n        \"cards\": [\n          {\n            \"components\": [\n              {\n                \"type\": \"header\"\n              }\n            ]\n          }\n        ]\n      }\n    ]\n  },\n  \"text\": {\n    \"body\": \"Does it come in another color?\"\n  },\n  \"image\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Your receipt for order A1B2C3\"\n  },\n  \"video\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"How to set it up\"\n  },\n  \"audio\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"voice\": true\n  },\n  \"sticker\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"animated\": false\n  },\n  \"document\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Signed contract\",\n    \"filename\": \"contract-a1b2c3.pdf\"\n  },\n  \"location\": {\n    \"latitude\": 52.3702,\n    \"longitude\": 4.8952,\n    \"name\": \"Bird HQ\",\n    \"address\": \"Keizersgracht 117, Amsterdam\",\n    \"url\": \"https://www.google.com/maps/place/Statue+of+Liberty/@40.6246301,-74.5291919,124716m/\"\n  },\n  \"contact_cards\": [\n    {\n      \"origin\": \"contact_request\",\n      \"phone_numbers\": [\n        {\n          \"phone_number\": \"+16505551234\",\n          \"type\": \"CELL\"\n        }\n      ]\n    }\n  ],\n  \"interactive\": {\n    \"type\": \"button\",\n    \"header\": {\n      \"type\": \"image\",\n      \"text\": \"New workshop dates announced\",\n      \"url\": \"https://cdn.example.com/banners/workshop.png\"\n    },\n    \"body_text\": \"Your workshop is scheduled for 9am tomorrow.\",\n    \"footer_text\": \"Lucky Shrub, your gateway to succulents\",\n    \"buttons\": [\n      {\n        \"type\": \"quick_reply\",\n        \"quick_reply\": {\n          \"slug\": \"change-booking\",\n          \"text\": \"Change\"\n        },\n        \"cta_url\": {\n          \"text\": \"See dates\",\n          \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n        }\n      }\n    ],\n    \"list\": {\n      \"button_text\": \"Shipping options\",\n      \"sections\": [\n        {\n          \"title\": \"As soon as possible\",\n          \"rows\": [\n            {\n              \"slug\": \"priority_express\",\n              \"text\": \"Priority Mail Express\",\n              \"description\": \"Next day to 2 days\"\n            }\n          ]\n        }\n      ]\n    },\n    \"cta_url\": {\n      \"text\": \"See dates\",\n      \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n    },\n    \"cards\": [\n      {\n        \"header\": {\n          \"type\": \"image\",\n          \"text\": \"New workshop dates announced\",\n          \"url\": \"https://cdn.example.com/banners/workshop.png\"\n        },\n        \"body_text\": \"*Blue Echeveria*\",\n        \"buttons\": [\n          {\n            \"type\": \"quick_reply\",\n            \"quick_reply\": {\n              \"slug\": \"change-booking\",\n              \"text\": \"Change\"\n            },\n            \"cta_url\": {\n              \"text\": \"See dates\",\n              \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n            }\n          }\n        ]\n      }\n    ]\n  },\n  \"in_reply_to_message_id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"interactive_reply\": {\n    \"type\": \"list\",\n    \"list\": {\n      \"slug\": \"priority_express\",\n      \"text\": \"Priority Mail Express\",\n      \"description\": \"Next day to 2 days\"\n    }\n  },\n  \"unsupported\": {\n    \"type\": \"reaction\"\n  },\n  \"status\": \"scheduled\",\n  \"last_error\": {\n    \"code\": \"insufficient_balance\",\n    \"description\": \"Message could not be delivered.\",\n    \"meta_error_code\": \"131026\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c43090e9-dc5c-823b-895e-427476b2a102",
              "name": "Bad request",
              "originalRequest": {
                "name": "Send a WhatsApp message",
                "description": {
                  "content": "Sends one WhatsApp message to one recipient. The request carries exactly one\nkind of content: a message template, or free-form `text`, `image`, `video`,\n`audio`, `sticker`, `document`, `location`, `contact_cards` or\n`interactive`. A request carrying none is rejected with a `422`, and one\ncarrying more than one is too.\n\nA **template** is the only content WhatsApp delivers outside an open\ncustomer service window, so it is what starts a conversation. Name the\ntemplate, optionally pick its language variant, and fill its placeholders in\n`components`. A Bird-managed template selects its sender number from its\ncategory, so the request carries no `from`; a template your workspace\nauthored requires one. Browse your workspace's templates in the Bird\ndashboard.\n\n**Free-form content** is deliverable only inside an open 24-hour customer\nservice window, which the contact opens by messaging or calling you and\nresets each time they do it again. Bird tracks that window, so a send into a\nclosed one is refused with a `422` `WhatsAppServiceWindowClosed` before\nanything is created or charged;\nsend a template instead, which reopens the window once the contact replies.\nA window that closes between accept and dispatch still fails\nasynchronously, carrying `service_window_expired` on the message's\n`last_error`. Every free-form send requires `from`.\n\n**Interactive content** gives the recipient something to tap. `interactive`\nnames its kind in `type` and carries that kind's own field: reply `buttons`,\na `list` menu, a `cta_url` link button, or `cards` for a carousel;\n`location_request_message` and `request_contact_info` are each a single\nbutton asking the recipient for something, so `body_text` is the whole\nmessage. A tap on a reply button or a list row comes back as an inbound\nmessage carrying `interactive_reply`. The other kinds answer in their own\nshape: a `cta_url` link opens in the recipient's browser and sends nothing\nback, and the two request kinds come back as the thing they asked for, an\ninbound `location` or `contact_cards` message.\nInteractive content is free-form, so the customer service window and the\n`from` requirement above both apply.\n\n**Contact cards** share up to five contacts in one message. Each card's\n`name` needs `formatted_name` plus at least one other part, and a\n`phone_number` in E.164 earns that card a button opening a chat with it.\nContact cards are free-form too, so the same window and `from` rules apply.\n\nSet `in_reply_to_message_id` to quote a message the contact sees above this\none, the way replying in the WhatsApp client does. Any content quotes, and\nthe quoted message must be one from this same conversation.\n\nThe `202` response is the accepted message, echoing the resolved content; it\nis not a delivery confirmation. Follow delivery with\n[Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message), the\nper-message timeline from\n[List events for a WhatsApp message](https://bird.com/docs/api/reference/list-whatsapp-message-events),\nor `whatsapp.*` webhook events.\n\nEach of these returns a `422`:\n\n- A template slug or language the catalogue does not stock.\n- Parameter values that do not match the template's declared placeholders.\n- A `from` this workspace cannot send from.\n- A recipient that is neither a valid phone number nor a business-scoped user ID.\n- Free-form content sent into a closed customer service window\n  (`WhatsAppServiceWindowClosed`).\n\nA send from a workspace with no wallet balance fails with a `402`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": \"+31612345678\",\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"language\": \"en\",\n    \"components\": [\n      {\n        \"type\": \"body\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"text\": \"1234\"\n          }\n        ]\n      },\n      {\n        \"type\": \"button\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"text\": \"1234\"\n          }\n        ]\n      }\n    ]\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"from\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"to\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"category\": \"authentication\",\n    \"language\": \"pt-BR\",\n    \"components\": [\n      {\n        \"type\": \"header\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"url\": \"https://cdn.example.com/receipts/a1b2c3.png\",\n            \"location\": {\n              \"latitude\": 52.3702,\n              \"longitude\": 4.8952,\n              \"name\": \"Bird HQ\",\n              \"address\": \"Keizersgracht 117, Amsterdam\"\n            }\n          }\n        ],\n        \"cards\": [\n          {\n            \"components\": [\n              {\n                \"type\": \"header\"\n              }\n            ]\n          }\n        ]\n      }\n    ]\n  },\n  \"text\": {\n    \"body\": \"Does it come in another color?\"\n  },\n  \"image\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Your receipt for order A1B2C3\"\n  },\n  \"video\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"How to set it up\"\n  },\n  \"audio\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"voice\": true\n  },\n  \"sticker\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"animated\": false\n  },\n  \"document\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Signed contract\",\n    \"filename\": \"contract-a1b2c3.pdf\"\n  },\n  \"location\": {\n    \"latitude\": 52.3702,\n    \"longitude\": 4.8952,\n    \"name\": \"Bird HQ\",\n    \"address\": \"Keizersgracht 117, Amsterdam\",\n    \"url\": \"https://www.google.com/maps/place/Statue+of+Liberty/@40.6246301,-74.5291919,124716m/\"\n  },\n  \"contact_cards\": [\n    {\n      \"origin\": \"contact_request\",\n      \"phone_numbers\": [\n        {\n          \"phone_number\": \"+16505551234\",\n          \"type\": \"CELL\"\n        }\n      ]\n    }\n  ],\n  \"interactive\": {\n    \"type\": \"button\",\n    \"header\": {\n      \"type\": \"image\",\n      \"text\": \"New workshop dates announced\",\n      \"url\": \"https://cdn.example.com/banners/workshop.png\"\n    },\n    \"body_text\": \"Your workshop is scheduled for 9am tomorrow.\",\n    \"footer_text\": \"Lucky Shrub, your gateway to succulents\",\n    \"buttons\": [\n      {\n        \"type\": \"quick_reply\",\n        \"quick_reply\": {\n          \"slug\": \"change-booking\",\n          \"text\": \"Change\"\n        },\n        \"cta_url\": {\n          \"text\": \"See dates\",\n          \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n        }\n      }\n    ],\n    \"list\": {\n      \"button_text\": \"Shipping options\",\n      \"sections\": [\n        {\n          \"title\": \"As soon as possible\",\n          \"rows\": [\n            {\n              \"slug\": \"priority_express\",\n              \"text\": \"Priority Mail Express\",\n              \"description\": \"Next day to 2 days\"\n            }\n          ]\n        }\n      ]\n    },\n    \"cta_url\": {\n      \"text\": \"See dates\",\n      \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n    },\n    \"cards\": [\n      {\n        \"header\": {\n          \"type\": \"image\",\n          \"text\": \"New workshop dates announced\",\n          \"url\": \"https://cdn.example.com/banners/workshop.png\"\n        },\n        \"body_text\": \"*Blue Echeveria*\",\n        \"buttons\": [\n          {\n            \"type\": \"quick_reply\",\n            \"quick_reply\": {\n              \"slug\": \"change-booking\",\n              \"text\": \"Change\"\n            },\n            \"cta_url\": {\n              \"text\": \"See dates\",\n              \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n            }\n          }\n        ]\n      }\n    ]\n  },\n  \"in_reply_to_message_id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"interactive_reply\": {\n    \"type\": \"list\",\n    \"list\": {\n      \"slug\": \"priority_express\",\n      \"text\": \"Priority Mail Express\",\n      \"description\": \"Next day to 2 days\"\n    }\n  },\n  \"unsupported\": {\n    \"type\": \"reaction\"\n  },\n  \"status\": \"scheduled\",\n  \"last_error\": {\n    \"code\": \"insufficient_balance\",\n    \"description\": \"Message could not be delivered.\",\n    \"meta_error_code\": \"131026\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6ff02554-6276-8cd3-8c13-18baf0c11950",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Send a WhatsApp message",
                "description": {
                  "content": "Sends one WhatsApp message to one recipient. The request carries exactly one\nkind of content: a message template, or free-form `text`, `image`, `video`,\n`audio`, `sticker`, `document`, `location`, `contact_cards` or\n`interactive`. A request carrying none is rejected with a `422`, and one\ncarrying more than one is too.\n\nA **template** is the only content WhatsApp delivers outside an open\ncustomer service window, so it is what starts a conversation. Name the\ntemplate, optionally pick its language variant, and fill its placeholders in\n`components`. A Bird-managed template selects its sender number from its\ncategory, so the request carries no `from`; a template your workspace\nauthored requires one. Browse your workspace's templates in the Bird\ndashboard.\n\n**Free-form content** is deliverable only inside an open 24-hour customer\nservice window, which the contact opens by messaging or calling you and\nresets each time they do it again. Bird tracks that window, so a send into a\nclosed one is refused with a `422` `WhatsAppServiceWindowClosed` before\nanything is created or charged;\nsend a template instead, which reopens the window once the contact replies.\nA window that closes between accept and dispatch still fails\nasynchronously, carrying `service_window_expired` on the message's\n`last_error`. Every free-form send requires `from`.\n\n**Interactive content** gives the recipient something to tap. `interactive`\nnames its kind in `type` and carries that kind's own field: reply `buttons`,\na `list` menu, a `cta_url` link button, or `cards` for a carousel;\n`location_request_message` and `request_contact_info` are each a single\nbutton asking the recipient for something, so `body_text` is the whole\nmessage. A tap on a reply button or a list row comes back as an inbound\nmessage carrying `interactive_reply`. The other kinds answer in their own\nshape: a `cta_url` link opens in the recipient's browser and sends nothing\nback, and the two request kinds come back as the thing they asked for, an\ninbound `location` or `contact_cards` message.\nInteractive content is free-form, so the customer service window and the\n`from` requirement above both apply.\n\n**Contact cards** share up to five contacts in one message. Each card's\n`name` needs `formatted_name` plus at least one other part, and a\n`phone_number` in E.164 earns that card a button opening a chat with it.\nContact cards are free-form too, so the same window and `from` rules apply.\n\nSet `in_reply_to_message_id` to quote a message the contact sees above this\none, the way replying in the WhatsApp client does. Any content quotes, and\nthe quoted message must be one from this same conversation.\n\nThe `202` response is the accepted message, echoing the resolved content; it\nis not a delivery confirmation. Follow delivery with\n[Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message), the\nper-message timeline from\n[List events for a WhatsApp message](https://bird.com/docs/api/reference/list-whatsapp-message-events),\nor `whatsapp.*` webhook events.\n\nEach of these returns a `422`:\n\n- A template slug or language the catalogue does not stock.\n- Parameter values that do not match the template's declared placeholders.\n- A `from` this workspace cannot send from.\n- A recipient that is neither a valid phone number nor a business-scoped user ID.\n- Free-form content sent into a closed customer service window\n  (`WhatsAppServiceWindowClosed`).\n\nA send from a workspace with no wallet balance fails with a `402`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": \"+31612345678\",\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"language\": \"en\",\n    \"components\": [\n      {\n        \"type\": \"body\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"text\": \"1234\"\n          }\n        ]\n      },\n      {\n        \"type\": \"button\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"text\": \"1234\"\n          }\n        ]\n      }\n    ]\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"from\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"to\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"category\": \"authentication\",\n    \"language\": \"pt-BR\",\n    \"components\": [\n      {\n        \"type\": \"header\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"url\": \"https://cdn.example.com/receipts/a1b2c3.png\",\n            \"location\": {\n              \"latitude\": 52.3702,\n              \"longitude\": 4.8952,\n              \"name\": \"Bird HQ\",\n              \"address\": \"Keizersgracht 117, Amsterdam\"\n            }\n          }\n        ],\n        \"cards\": [\n          {\n            \"components\": [\n              {\n                \"type\": \"header\"\n              }\n            ]\n          }\n        ]\n      }\n    ]\n  },\n  \"text\": {\n    \"body\": \"Does it come in another color?\"\n  },\n  \"image\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Your receipt for order A1B2C3\"\n  },\n  \"video\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"How to set it up\"\n  },\n  \"audio\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"voice\": true\n  },\n  \"sticker\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"animated\": false\n  },\n  \"document\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Signed contract\",\n    \"filename\": \"contract-a1b2c3.pdf\"\n  },\n  \"location\": {\n    \"latitude\": 52.3702,\n    \"longitude\": 4.8952,\n    \"name\": \"Bird HQ\",\n    \"address\": \"Keizersgracht 117, Amsterdam\",\n    \"url\": \"https://www.google.com/maps/place/Statue+of+Liberty/@40.6246301,-74.5291919,124716m/\"\n  },\n  \"contact_cards\": [\n    {\n      \"origin\": \"contact_request\",\n      \"phone_numbers\": [\n        {\n          \"phone_number\": \"+16505551234\",\n          \"type\": \"CELL\"\n        }\n      ]\n    }\n  ],\n  \"interactive\": {\n    \"type\": \"button\",\n    \"header\": {\n      \"type\": \"image\",\n      \"text\": \"New workshop dates announced\",\n      \"url\": \"https://cdn.example.com/banners/workshop.png\"\n    },\n    \"body_text\": \"Your workshop is scheduled for 9am tomorrow.\",\n    \"footer_text\": \"Lucky Shrub, your gateway to succulents\",\n    \"buttons\": [\n      {\n        \"type\": \"quick_reply\",\n        \"quick_reply\": {\n          \"slug\": \"change-booking\",\n          \"text\": \"Change\"\n        },\n        \"cta_url\": {\n          \"text\": \"See dates\",\n          \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n        }\n      }\n    ],\n    \"list\": {\n      \"button_text\": \"Shipping options\",\n      \"sections\": [\n        {\n          \"title\": \"As soon as possible\",\n          \"rows\": [\n            {\n              \"slug\": \"priority_express\",\n              \"text\": \"Priority Mail Express\",\n              \"description\": \"Next day to 2 days\"\n            }\n          ]\n        }\n      ]\n    },\n    \"cta_url\": {\n      \"text\": \"See dates\",\n      \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n    },\n    \"cards\": [\n      {\n        \"header\": {\n          \"type\": \"image\",\n          \"text\": \"New workshop dates announced\",\n          \"url\": \"https://cdn.example.com/banners/workshop.png\"\n        },\n        \"body_text\": \"*Blue Echeveria*\",\n        \"buttons\": [\n          {\n            \"type\": \"quick_reply\",\n            \"quick_reply\": {\n              \"slug\": \"change-booking\",\n              \"text\": \"Change\"\n            },\n            \"cta_url\": {\n              \"text\": \"See dates\",\n              \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n            }\n          }\n        ]\n      }\n    ]\n  },\n  \"in_reply_to_message_id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"interactive_reply\": {\n    \"type\": \"list\",\n    \"list\": {\n      \"slug\": \"priority_express\",\n      \"text\": \"Priority Mail Express\",\n      \"description\": \"Next day to 2 days\"\n    }\n  },\n  \"unsupported\": {\n    \"type\": \"reaction\"\n  },\n  \"status\": \"scheduled\",\n  \"last_error\": {\n    \"code\": \"insufficient_balance\",\n    \"description\": \"Message could not be delivered.\",\n    \"meta_error_code\": \"131026\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "90729bc1-4226-8525-8d46-cc2f3a924397",
              "name": "Insufficient balance",
              "originalRequest": {
                "name": "Send a WhatsApp message",
                "description": {
                  "content": "Sends one WhatsApp message to one recipient. The request carries exactly one\nkind of content: a message template, or free-form `text`, `image`, `video`,\n`audio`, `sticker`, `document`, `location`, `contact_cards` or\n`interactive`. A request carrying none is rejected with a `422`, and one\ncarrying more than one is too.\n\nA **template** is the only content WhatsApp delivers outside an open\ncustomer service window, so it is what starts a conversation. Name the\ntemplate, optionally pick its language variant, and fill its placeholders in\n`components`. A Bird-managed template selects its sender number from its\ncategory, so the request carries no `from`; a template your workspace\nauthored requires one. Browse your workspace's templates in the Bird\ndashboard.\n\n**Free-form content** is deliverable only inside an open 24-hour customer\nservice window, which the contact opens by messaging or calling you and\nresets each time they do it again. Bird tracks that window, so a send into a\nclosed one is refused with a `422` `WhatsAppServiceWindowClosed` before\nanything is created or charged;\nsend a template instead, which reopens the window once the contact replies.\nA window that closes between accept and dispatch still fails\nasynchronously, carrying `service_window_expired` on the message's\n`last_error`. Every free-form send requires `from`.\n\n**Interactive content** gives the recipient something to tap. `interactive`\nnames its kind in `type` and carries that kind's own field: reply `buttons`,\na `list` menu, a `cta_url` link button, or `cards` for a carousel;\n`location_request_message` and `request_contact_info` are each a single\nbutton asking the recipient for something, so `body_text` is the whole\nmessage. A tap on a reply button or a list row comes back as an inbound\nmessage carrying `interactive_reply`. The other kinds answer in their own\nshape: a `cta_url` link opens in the recipient's browser and sends nothing\nback, and the two request kinds come back as the thing they asked for, an\ninbound `location` or `contact_cards` message.\nInteractive content is free-form, so the customer service window and the\n`from` requirement above both apply.\n\n**Contact cards** share up to five contacts in one message. Each card's\n`name` needs `formatted_name` plus at least one other part, and a\n`phone_number` in E.164 earns that card a button opening a chat with it.\nContact cards are free-form too, so the same window and `from` rules apply.\n\nSet `in_reply_to_message_id` to quote a message the contact sees above this\none, the way replying in the WhatsApp client does. Any content quotes, and\nthe quoted message must be one from this same conversation.\n\nThe `202` response is the accepted message, echoing the resolved content; it\nis not a delivery confirmation. Follow delivery with\n[Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message), the\nper-message timeline from\n[List events for a WhatsApp message](https://bird.com/docs/api/reference/list-whatsapp-message-events),\nor `whatsapp.*` webhook events.\n\nEach of these returns a `422`:\n\n- A template slug or language the catalogue does not stock.\n- Parameter values that do not match the template's declared placeholders.\n- A `from` this workspace cannot send from.\n- A recipient that is neither a valid phone number nor a business-scoped user ID.\n- Free-form content sent into a closed customer service window\n  (`WhatsAppServiceWindowClosed`).\n\nA send from a workspace with no wallet balance fails with a `402`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": \"+31612345678\",\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"language\": \"en\",\n    \"components\": [\n      {\n        \"type\": \"body\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"text\": \"1234\"\n          }\n        ]\n      },\n      {\n        \"type\": \"button\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"text\": \"1234\"\n          }\n        ]\n      }\n    ]\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Payment Required",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"from\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"to\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"category\": \"authentication\",\n    \"language\": \"pt-BR\",\n    \"components\": [\n      {\n        \"type\": \"header\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"url\": \"https://cdn.example.com/receipts/a1b2c3.png\",\n            \"location\": {\n              \"latitude\": 52.3702,\n              \"longitude\": 4.8952,\n              \"name\": \"Bird HQ\",\n              \"address\": \"Keizersgracht 117, Amsterdam\"\n            }\n          }\n        ],\n        \"cards\": [\n          {\n            \"components\": [\n              {\n                \"type\": \"header\"\n              }\n            ]\n          }\n        ]\n      }\n    ]\n  },\n  \"text\": {\n    \"body\": \"Does it come in another color?\"\n  },\n  \"image\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Your receipt for order A1B2C3\"\n  },\n  \"video\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"How to set it up\"\n  },\n  \"audio\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"voice\": true\n  },\n  \"sticker\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"animated\": false\n  },\n  \"document\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Signed contract\",\n    \"filename\": \"contract-a1b2c3.pdf\"\n  },\n  \"location\": {\n    \"latitude\": 52.3702,\n    \"longitude\": 4.8952,\n    \"name\": \"Bird HQ\",\n    \"address\": \"Keizersgracht 117, Amsterdam\",\n    \"url\": \"https://www.google.com/maps/place/Statue+of+Liberty/@40.6246301,-74.5291919,124716m/\"\n  },\n  \"contact_cards\": [\n    {\n      \"origin\": \"contact_request\",\n      \"phone_numbers\": [\n        {\n          \"phone_number\": \"+16505551234\",\n          \"type\": \"CELL\"\n        }\n      ]\n    }\n  ],\n  \"interactive\": {\n    \"type\": \"button\",\n    \"header\": {\n      \"type\": \"image\",\n      \"text\": \"New workshop dates announced\",\n      \"url\": \"https://cdn.example.com/banners/workshop.png\"\n    },\n    \"body_text\": \"Your workshop is scheduled for 9am tomorrow.\",\n    \"footer_text\": \"Lucky Shrub, your gateway to succulents\",\n    \"buttons\": [\n      {\n        \"type\": \"quick_reply\",\n        \"quick_reply\": {\n          \"slug\": \"change-booking\",\n          \"text\": \"Change\"\n        },\n        \"cta_url\": {\n          \"text\": \"See dates\",\n          \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n        }\n      }\n    ],\n    \"list\": {\n      \"button_text\": \"Shipping options\",\n      \"sections\": [\n        {\n          \"title\": \"As soon as possible\",\n          \"rows\": [\n            {\n              \"slug\": \"priority_express\",\n              \"text\": \"Priority Mail Express\",\n              \"description\": \"Next day to 2 days\"\n            }\n          ]\n        }\n      ]\n    },\n    \"cta_url\": {\n      \"text\": \"See dates\",\n      \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n    },\n    \"cards\": [\n      {\n        \"header\": {\n          \"type\": \"image\",\n          \"text\": \"New workshop dates announced\",\n          \"url\": \"https://cdn.example.com/banners/workshop.png\"\n        },\n        \"body_text\": \"*Blue Echeveria*\",\n        \"buttons\": [\n          {\n            \"type\": \"quick_reply\",\n            \"quick_reply\": {\n              \"slug\": \"change-booking\",\n              \"text\": \"Change\"\n            },\n            \"cta_url\": {\n              \"text\": \"See dates\",\n              \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n            }\n          }\n        ]\n      }\n    ]\n  },\n  \"in_reply_to_message_id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"interactive_reply\": {\n    \"type\": \"list\",\n    \"list\": {\n      \"slug\": \"priority_express\",\n      \"text\": \"Priority Mail Express\",\n      \"description\": \"Next day to 2 days\"\n    }\n  },\n  \"unsupported\": {\n    \"type\": \"reaction\"\n  },\n  \"status\": \"scheduled\",\n  \"last_error\": {\n    \"code\": \"insufficient_balance\",\n    \"description\": \"Message could not be delivered.\",\n    \"meta_error_code\": \"131026\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "77e7c658-a377-856c-819c-0f923f6de699",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Send a WhatsApp message",
                "description": {
                  "content": "Sends one WhatsApp message to one recipient. The request carries exactly one\nkind of content: a message template, or free-form `text`, `image`, `video`,\n`audio`, `sticker`, `document`, `location`, `contact_cards` or\n`interactive`. A request carrying none is rejected with a `422`, and one\ncarrying more than one is too.\n\nA **template** is the only content WhatsApp delivers outside an open\ncustomer service window, so it is what starts a conversation. Name the\ntemplate, optionally pick its language variant, and fill its placeholders in\n`components`. A Bird-managed template selects its sender number from its\ncategory, so the request carries no `from`; a template your workspace\nauthored requires one. Browse your workspace's templates in the Bird\ndashboard.\n\n**Free-form content** is deliverable only inside an open 24-hour customer\nservice window, which the contact opens by messaging or calling you and\nresets each time they do it again. Bird tracks that window, so a send into a\nclosed one is refused with a `422` `WhatsAppServiceWindowClosed` before\nanything is created or charged;\nsend a template instead, which reopens the window once the contact replies.\nA window that closes between accept and dispatch still fails\nasynchronously, carrying `service_window_expired` on the message's\n`last_error`. Every free-form send requires `from`.\n\n**Interactive content** gives the recipient something to tap. `interactive`\nnames its kind in `type` and carries that kind's own field: reply `buttons`,\na `list` menu, a `cta_url` link button, or `cards` for a carousel;\n`location_request_message` and `request_contact_info` are each a single\nbutton asking the recipient for something, so `body_text` is the whole\nmessage. A tap on a reply button or a list row comes back as an inbound\nmessage carrying `interactive_reply`. The other kinds answer in their own\nshape: a `cta_url` link opens in the recipient's browser and sends nothing\nback, and the two request kinds come back as the thing they asked for, an\ninbound `location` or `contact_cards` message.\nInteractive content is free-form, so the customer service window and the\n`from` requirement above both apply.\n\n**Contact cards** share up to five contacts in one message. Each card's\n`name` needs `formatted_name` plus at least one other part, and a\n`phone_number` in E.164 earns that card a button opening a chat with it.\nContact cards are free-form too, so the same window and `from` rules apply.\n\nSet `in_reply_to_message_id` to quote a message the contact sees above this\none, the way replying in the WhatsApp client does. Any content quotes, and\nthe quoted message must be one from this same conversation.\n\nThe `202` response is the accepted message, echoing the resolved content; it\nis not a delivery confirmation. Follow delivery with\n[Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message), the\nper-message timeline from\n[List events for a WhatsApp message](https://bird.com/docs/api/reference/list-whatsapp-message-events),\nor `whatsapp.*` webhook events.\n\nEach of these returns a `422`:\n\n- A template slug or language the catalogue does not stock.\n- Parameter values that do not match the template's declared placeholders.\n- A `from` this workspace cannot send from.\n- A recipient that is neither a valid phone number nor a business-scoped user ID.\n- Free-form content sent into a closed customer service window\n  (`WhatsAppServiceWindowClosed`).\n\nA send from a workspace with no wallet balance fails with a `402`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": \"+31612345678\",\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"language\": \"en\",\n    \"components\": [\n      {\n        \"type\": \"body\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"text\": \"1234\"\n          }\n        ]\n      },\n      {\n        \"type\": \"button\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"text\": \"1234\"\n          }\n        ]\n      }\n    ]\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"from\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"to\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"category\": \"authentication\",\n    \"language\": \"pt-BR\",\n    \"components\": [\n      {\n        \"type\": \"header\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"url\": \"https://cdn.example.com/receipts/a1b2c3.png\",\n            \"location\": {\n              \"latitude\": 52.3702,\n              \"longitude\": 4.8952,\n              \"name\": \"Bird HQ\",\n              \"address\": \"Keizersgracht 117, Amsterdam\"\n            }\n          }\n        ],\n        \"cards\": [\n          {\n            \"components\": [\n              {\n                \"type\": \"header\"\n              }\n            ]\n          }\n        ]\n      }\n    ]\n  },\n  \"text\": {\n    \"body\": \"Does it come in another color?\"\n  },\n  \"image\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Your receipt for order A1B2C3\"\n  },\n  \"video\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"How to set it up\"\n  },\n  \"audio\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"voice\": true\n  },\n  \"sticker\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"animated\": false\n  },\n  \"document\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Signed contract\",\n    \"filename\": \"contract-a1b2c3.pdf\"\n  },\n  \"location\": {\n    \"latitude\": 52.3702,\n    \"longitude\": 4.8952,\n    \"name\": \"Bird HQ\",\n    \"address\": \"Keizersgracht 117, Amsterdam\",\n    \"url\": \"https://www.google.com/maps/place/Statue+of+Liberty/@40.6246301,-74.5291919,124716m/\"\n  },\n  \"contact_cards\": [\n    {\n      \"origin\": \"contact_request\",\n      \"phone_numbers\": [\n        {\n          \"phone_number\": \"+16505551234\",\n          \"type\": \"CELL\"\n        }\n      ]\n    }\n  ],\n  \"interactive\": {\n    \"type\": \"button\",\n    \"header\": {\n      \"type\": \"image\",\n      \"text\": \"New workshop dates announced\",\n      \"url\": \"https://cdn.example.com/banners/workshop.png\"\n    },\n    \"body_text\": \"Your workshop is scheduled for 9am tomorrow.\",\n    \"footer_text\": \"Lucky Shrub, your gateway to succulents\",\n    \"buttons\": [\n      {\n        \"type\": \"quick_reply\",\n        \"quick_reply\": {\n          \"slug\": \"change-booking\",\n          \"text\": \"Change\"\n        },\n        \"cta_url\": {\n          \"text\": \"See dates\",\n          \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n        }\n      }\n    ],\n    \"list\": {\n      \"button_text\": \"Shipping options\",\n      \"sections\": [\n        {\n          \"title\": \"As soon as possible\",\n          \"rows\": [\n            {\n              \"slug\": \"priority_express\",\n              \"text\": \"Priority Mail Express\",\n              \"description\": \"Next day to 2 days\"\n            }\n          ]\n        }\n      ]\n    },\n    \"cta_url\": {\n      \"text\": \"See dates\",\n      \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n    },\n    \"cards\": [\n      {\n        \"header\": {\n          \"type\": \"image\",\n          \"text\": \"New workshop dates announced\",\n          \"url\": \"https://cdn.example.com/banners/workshop.png\"\n        },\n        \"body_text\": \"*Blue Echeveria*\",\n        \"buttons\": [\n          {\n            \"type\": \"quick_reply\",\n            \"quick_reply\": {\n              \"slug\": \"change-booking\",\n              \"text\": \"Change\"\n            },\n            \"cta_url\": {\n              \"text\": \"See dates\",\n              \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n            }\n          }\n        ]\n      }\n    ]\n  },\n  \"in_reply_to_message_id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"interactive_reply\": {\n    \"type\": \"list\",\n    \"list\": {\n      \"slug\": \"priority_express\",\n      \"text\": \"Priority Mail Express\",\n      \"description\": \"Next day to 2 days\"\n    }\n  },\n  \"unsupported\": {\n    \"type\": \"reaction\"\n  },\n  \"status\": \"scheduled\",\n  \"last_error\": {\n    \"code\": \"insufficient_balance\",\n    \"description\": \"Message could not be delivered.\",\n    \"meta_error_code\": \"131026\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5506ead0-ac17-8a3d-82d5-448b847cf1b2",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Send a WhatsApp message",
                "description": {
                  "content": "Sends one WhatsApp message to one recipient. The request carries exactly one\nkind of content: a message template, or free-form `text`, `image`, `video`,\n`audio`, `sticker`, `document`, `location`, `contact_cards` or\n`interactive`. A request carrying none is rejected with a `422`, and one\ncarrying more than one is too.\n\nA **template** is the only content WhatsApp delivers outside an open\ncustomer service window, so it is what starts a conversation. Name the\ntemplate, optionally pick its language variant, and fill its placeholders in\n`components`. A Bird-managed template selects its sender number from its\ncategory, so the request carries no `from`; a template your workspace\nauthored requires one. Browse your workspace's templates in the Bird\ndashboard.\n\n**Free-form content** is deliverable only inside an open 24-hour customer\nservice window, which the contact opens by messaging or calling you and\nresets each time they do it again. Bird tracks that window, so a send into a\nclosed one is refused with a `422` `WhatsAppServiceWindowClosed` before\nanything is created or charged;\nsend a template instead, which reopens the window once the contact replies.\nA window that closes between accept and dispatch still fails\nasynchronously, carrying `service_window_expired` on the message's\n`last_error`. Every free-form send requires `from`.\n\n**Interactive content** gives the recipient something to tap. `interactive`\nnames its kind in `type` and carries that kind's own field: reply `buttons`,\na `list` menu, a `cta_url` link button, or `cards` for a carousel;\n`location_request_message` and `request_contact_info` are each a single\nbutton asking the recipient for something, so `body_text` is the whole\nmessage. A tap on a reply button or a list row comes back as an inbound\nmessage carrying `interactive_reply`. The other kinds answer in their own\nshape: a `cta_url` link opens in the recipient's browser and sends nothing\nback, and the two request kinds come back as the thing they asked for, an\ninbound `location` or `contact_cards` message.\nInteractive content is free-form, so the customer service window and the\n`from` requirement above both apply.\n\n**Contact cards** share up to five contacts in one message. Each card's\n`name` needs `formatted_name` plus at least one other part, and a\n`phone_number` in E.164 earns that card a button opening a chat with it.\nContact cards are free-form too, so the same window and `from` rules apply.\n\nSet `in_reply_to_message_id` to quote a message the contact sees above this\none, the way replying in the WhatsApp client does. Any content quotes, and\nthe quoted message must be one from this same conversation.\n\nThe `202` response is the accepted message, echoing the resolved content; it\nis not a delivery confirmation. Follow delivery with\n[Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message), the\nper-message timeline from\n[List events for a WhatsApp message](https://bird.com/docs/api/reference/list-whatsapp-message-events),\nor `whatsapp.*` webhook events.\n\nEach of these returns a `422`:\n\n- A template slug or language the catalogue does not stock.\n- Parameter values that do not match the template's declared placeholders.\n- A `from` this workspace cannot send from.\n- A recipient that is neither a valid phone number nor a business-scoped user ID.\n- Free-form content sent into a closed customer service window\n  (`WhatsAppServiceWindowClosed`).\n\nA send from a workspace with no wallet balance fails with a `402`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": \"+31612345678\",\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"language\": \"en\",\n    \"components\": [\n      {\n        \"type\": \"body\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"text\": \"1234\"\n          }\n        ]\n      },\n      {\n        \"type\": \"button\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"text\": \"1234\"\n          }\n        ]\n      }\n    ]\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"from\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"to\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"category\": \"authentication\",\n    \"language\": \"pt-BR\",\n    \"components\": [\n      {\n        \"type\": \"header\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"url\": \"https://cdn.example.com/receipts/a1b2c3.png\",\n            \"location\": {\n              \"latitude\": 52.3702,\n              \"longitude\": 4.8952,\n              \"name\": \"Bird HQ\",\n              \"address\": \"Keizersgracht 117, Amsterdam\"\n            }\n          }\n        ],\n        \"cards\": [\n          {\n            \"components\": [\n              {\n                \"type\": \"header\"\n              }\n            ]\n          }\n        ]\n      }\n    ]\n  },\n  \"text\": {\n    \"body\": \"Does it come in another color?\"\n  },\n  \"image\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Your receipt for order A1B2C3\"\n  },\n  \"video\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"How to set it up\"\n  },\n  \"audio\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"voice\": true\n  },\n  \"sticker\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"animated\": false\n  },\n  \"document\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Signed contract\",\n    \"filename\": \"contract-a1b2c3.pdf\"\n  },\n  \"location\": {\n    \"latitude\": 52.3702,\n    \"longitude\": 4.8952,\n    \"name\": \"Bird HQ\",\n    \"address\": \"Keizersgracht 117, Amsterdam\",\n    \"url\": \"https://www.google.com/maps/place/Statue+of+Liberty/@40.6246301,-74.5291919,124716m/\"\n  },\n  \"contact_cards\": [\n    {\n      \"origin\": \"contact_request\",\n      \"phone_numbers\": [\n        {\n          \"phone_number\": \"+16505551234\",\n          \"type\": \"CELL\"\n        }\n      ]\n    }\n  ],\n  \"interactive\": {\n    \"type\": \"button\",\n    \"header\": {\n      \"type\": \"image\",\n      \"text\": \"New workshop dates announced\",\n      \"url\": \"https://cdn.example.com/banners/workshop.png\"\n    },\n    \"body_text\": \"Your workshop is scheduled for 9am tomorrow.\",\n    \"footer_text\": \"Lucky Shrub, your gateway to succulents\",\n    \"buttons\": [\n      {\n        \"type\": \"quick_reply\",\n        \"quick_reply\": {\n          \"slug\": \"change-booking\",\n          \"text\": \"Change\"\n        },\n        \"cta_url\": {\n          \"text\": \"See dates\",\n          \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n        }\n      }\n    ],\n    \"list\": {\n      \"button_text\": \"Shipping options\",\n      \"sections\": [\n        {\n          \"title\": \"As soon as possible\",\n          \"rows\": [\n            {\n              \"slug\": \"priority_express\",\n              \"text\": \"Priority Mail Express\",\n              \"description\": \"Next day to 2 days\"\n            }\n          ]\n        }\n      ]\n    },\n    \"cta_url\": {\n      \"text\": \"See dates\",\n      \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n    },\n    \"cards\": [\n      {\n        \"header\": {\n          \"type\": \"image\",\n          \"text\": \"New workshop dates announced\",\n          \"url\": \"https://cdn.example.com/banners/workshop.png\"\n        },\n        \"body_text\": \"*Blue Echeveria*\",\n        \"buttons\": [\n          {\n            \"type\": \"quick_reply\",\n            \"quick_reply\": {\n              \"slug\": \"change-booking\",\n              \"text\": \"Change\"\n            },\n            \"cta_url\": {\n              \"text\": \"See dates\",\n              \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n            }\n          }\n        ]\n      }\n    ]\n  },\n  \"in_reply_to_message_id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"interactive_reply\": {\n    \"type\": \"list\",\n    \"list\": {\n      \"slug\": \"priority_express\",\n      \"text\": \"Priority Mail Express\",\n      \"description\": \"Next day to 2 days\"\n    }\n  },\n  \"unsupported\": {\n    \"type\": \"reaction\"\n  },\n  \"status\": \"scheduled\",\n  \"last_error\": {\n    \"code\": \"insufficient_balance\",\n    \"description\": \"Message could not be delivered.\",\n    \"meta_error_code\": \"131026\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "aff940ac-f2ca-8185-8dfc-98fe5eaa442c",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Send a WhatsApp message",
                "description": {
                  "content": "Sends one WhatsApp message to one recipient. The request carries exactly one\nkind of content: a message template, or free-form `text`, `image`, `video`,\n`audio`, `sticker`, `document`, `location`, `contact_cards` or\n`interactive`. A request carrying none is rejected with a `422`, and one\ncarrying more than one is too.\n\nA **template** is the only content WhatsApp delivers outside an open\ncustomer service window, so it is what starts a conversation. Name the\ntemplate, optionally pick its language variant, and fill its placeholders in\n`components`. A Bird-managed template selects its sender number from its\ncategory, so the request carries no `from`; a template your workspace\nauthored requires one. Browse your workspace's templates in the Bird\ndashboard.\n\n**Free-form content** is deliverable only inside an open 24-hour customer\nservice window, which the contact opens by messaging or calling you and\nresets each time they do it again. Bird tracks that window, so a send into a\nclosed one is refused with a `422` `WhatsAppServiceWindowClosed` before\nanything is created or charged;\nsend a template instead, which reopens the window once the contact replies.\nA window that closes between accept and dispatch still fails\nasynchronously, carrying `service_window_expired` on the message's\n`last_error`. Every free-form send requires `from`.\n\n**Interactive content** gives the recipient something to tap. `interactive`\nnames its kind in `type` and carries that kind's own field: reply `buttons`,\na `list` menu, a `cta_url` link button, or `cards` for a carousel;\n`location_request_message` and `request_contact_info` are each a single\nbutton asking the recipient for something, so `body_text` is the whole\nmessage. A tap on a reply button or a list row comes back as an inbound\nmessage carrying `interactive_reply`. The other kinds answer in their own\nshape: a `cta_url` link opens in the recipient's browser and sends nothing\nback, and the two request kinds come back as the thing they asked for, an\ninbound `location` or `contact_cards` message.\nInteractive content is free-form, so the customer service window and the\n`from` requirement above both apply.\n\n**Contact cards** share up to five contacts in one message. Each card's\n`name` needs `formatted_name` plus at least one other part, and a\n`phone_number` in E.164 earns that card a button opening a chat with it.\nContact cards are free-form too, so the same window and `from` rules apply.\n\nSet `in_reply_to_message_id` to quote a message the contact sees above this\none, the way replying in the WhatsApp client does. Any content quotes, and\nthe quoted message must be one from this same conversation.\n\nThe `202` response is the accepted message, echoing the resolved content; it\nis not a delivery confirmation. Follow delivery with\n[Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message), the\nper-message timeline from\n[List events for a WhatsApp message](https://bird.com/docs/api/reference/list-whatsapp-message-events),\nor `whatsapp.*` webhook events.\n\nEach of these returns a `422`:\n\n- A template slug or language the catalogue does not stock.\n- Parameter values that do not match the template's declared placeholders.\n- A `from` this workspace cannot send from.\n- A recipient that is neither a valid phone number nor a business-scoped user ID.\n- Free-form content sent into a closed customer service window\n  (`WhatsAppServiceWindowClosed`).\n\nA send from a workspace with no wallet balance fails with a `402`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": \"+31612345678\",\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"language\": \"en\",\n    \"components\": [\n      {\n        \"type\": \"body\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"text\": \"1234\"\n          }\n        ]\n      },\n      {\n        \"type\": \"button\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"text\": \"1234\"\n          }\n        ]\n      }\n    ]\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 202,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"from\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"to\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"category\": \"authentication\",\n    \"language\": \"pt-BR\",\n    \"components\": [\n      {\n        \"type\": \"header\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"url\": \"https://cdn.example.com/receipts/a1b2c3.png\",\n            \"location\": {\n              \"latitude\": 52.3702,\n              \"longitude\": 4.8952,\n              \"name\": \"Bird HQ\",\n              \"address\": \"Keizersgracht 117, Amsterdam\"\n            }\n          }\n        ],\n        \"cards\": [\n          {\n            \"components\": [\n              {\n                \"type\": \"header\"\n              }\n            ]\n          }\n        ]\n      }\n    ]\n  },\n  \"text\": {\n    \"body\": \"Does it come in another color?\"\n  },\n  \"image\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Your receipt for order A1B2C3\"\n  },\n  \"video\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"How to set it up\"\n  },\n  \"audio\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"voice\": true\n  },\n  \"sticker\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"animated\": false\n  },\n  \"document\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Signed contract\",\n    \"filename\": \"contract-a1b2c3.pdf\"\n  },\n  \"location\": {\n    \"latitude\": 52.3702,\n    \"longitude\": 4.8952,\n    \"name\": \"Bird HQ\",\n    \"address\": \"Keizersgracht 117, Amsterdam\",\n    \"url\": \"https://www.google.com/maps/place/Statue+of+Liberty/@40.6246301,-74.5291919,124716m/\"\n  },\n  \"contact_cards\": [\n    {\n      \"origin\": \"contact_request\",\n      \"phone_numbers\": [\n        {\n          \"phone_number\": \"+16505551234\",\n          \"type\": \"CELL\"\n        }\n      ]\n    }\n  ],\n  \"interactive\": {\n    \"type\": \"button\",\n    \"header\": {\n      \"type\": \"image\",\n      \"text\": \"New workshop dates announced\",\n      \"url\": \"https://cdn.example.com/banners/workshop.png\"\n    },\n    \"body_text\": \"Your workshop is scheduled for 9am tomorrow.\",\n    \"footer_text\": \"Lucky Shrub, your gateway to succulents\",\n    \"buttons\": [\n      {\n        \"type\": \"quick_reply\",\n        \"quick_reply\": {\n          \"slug\": \"change-booking\",\n          \"text\": \"Change\"\n        },\n        \"cta_url\": {\n          \"text\": \"See dates\",\n          \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n        }\n      }\n    ],\n    \"list\": {\n      \"button_text\": \"Shipping options\",\n      \"sections\": [\n        {\n          \"title\": \"As soon as possible\",\n          \"rows\": [\n            {\n              \"slug\": \"priority_express\",\n              \"text\": \"Priority Mail Express\",\n              \"description\": \"Next day to 2 days\"\n            }\n          ]\n        }\n      ]\n    },\n    \"cta_url\": {\n      \"text\": \"See dates\",\n      \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n    },\n    \"cards\": [\n      {\n        \"header\": {\n          \"type\": \"image\",\n          \"text\": \"New workshop dates announced\",\n          \"url\": \"https://cdn.example.com/banners/workshop.png\"\n        },\n        \"body_text\": \"*Blue Echeveria*\",\n        \"buttons\": [\n          {\n            \"type\": \"quick_reply\",\n            \"quick_reply\": {\n              \"slug\": \"change-booking\",\n              \"text\": \"Change\"\n            },\n            \"cta_url\": {\n              \"text\": \"See dates\",\n              \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n            }\n          }\n        ]\n      }\n    ]\n  },\n  \"in_reply_to_message_id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"interactive_reply\": {\n    \"type\": \"list\",\n    \"list\": {\n      \"slug\": \"priority_express\",\n      \"text\": \"Priority Mail Express\",\n      \"description\": \"Next day to 2 days\"\n    }\n  },\n  \"unsupported\": {\n    \"type\": \"reaction\"\n  },\n  \"status\": \"scheduled\",\n  \"last_error\": {\n    \"code\": \"insufficient_balance\",\n    \"description\": \"Message could not be delivered.\",\n    \"meta_error_code\": \"131026\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "954f1be3-1387-8f9f-8a51-28e908e00f37",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Send a WhatsApp message",
                "description": {
                  "content": "Sends one WhatsApp message to one recipient. The request carries exactly one\nkind of content: a message template, or free-form `text`, `image`, `video`,\n`audio`, `sticker`, `document`, `location`, `contact_cards` or\n`interactive`. A request carrying none is rejected with a `422`, and one\ncarrying more than one is too.\n\nA **template** is the only content WhatsApp delivers outside an open\ncustomer service window, so it is what starts a conversation. Name the\ntemplate, optionally pick its language variant, and fill its placeholders in\n`components`. A Bird-managed template selects its sender number from its\ncategory, so the request carries no `from`; a template your workspace\nauthored requires one. Browse your workspace's templates in the Bird\ndashboard.\n\n**Free-form content** is deliverable only inside an open 24-hour customer\nservice window, which the contact opens by messaging or calling you and\nresets each time they do it again. Bird tracks that window, so a send into a\nclosed one is refused with a `422` `WhatsAppServiceWindowClosed` before\nanything is created or charged;\nsend a template instead, which reopens the window once the contact replies.\nA window that closes between accept and dispatch still fails\nasynchronously, carrying `service_window_expired` on the message's\n`last_error`. Every free-form send requires `from`.\n\n**Interactive content** gives the recipient something to tap. `interactive`\nnames its kind in `type` and carries that kind's own field: reply `buttons`,\na `list` menu, a `cta_url` link button, or `cards` for a carousel;\n`location_request_message` and `request_contact_info` are each a single\nbutton asking the recipient for something, so `body_text` is the whole\nmessage. A tap on a reply button or a list row comes back as an inbound\nmessage carrying `interactive_reply`. The other kinds answer in their own\nshape: a `cta_url` link opens in the recipient's browser and sends nothing\nback, and the two request kinds come back as the thing they asked for, an\ninbound `location` or `contact_cards` message.\nInteractive content is free-form, so the customer service window and the\n`from` requirement above both apply.\n\n**Contact cards** share up to five contacts in one message. Each card's\n`name` needs `formatted_name` plus at least one other part, and a\n`phone_number` in E.164 earns that card a button opening a chat with it.\nContact cards are free-form too, so the same window and `from` rules apply.\n\nSet `in_reply_to_message_id` to quote a message the contact sees above this\none, the way replying in the WhatsApp client does. Any content quotes, and\nthe quoted message must be one from this same conversation.\n\nThe `202` response is the accepted message, echoing the resolved content; it\nis not a delivery confirmation. Follow delivery with\n[Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message), the\nper-message timeline from\n[List events for a WhatsApp message](https://bird.com/docs/api/reference/list-whatsapp-message-events),\nor `whatsapp.*` webhook events.\n\nEach of these returns a `422`:\n\n- A template slug or language the catalogue does not stock.\n- Parameter values that do not match the template's declared placeholders.\n- A `from` this workspace cannot send from.\n- A recipient that is neither a valid phone number nor a business-scoped user ID.\n- Free-form content sent into a closed customer service window\n  (`WhatsAppServiceWindowClosed`).\n\nA send from a workspace with no wallet balance fails with a `402`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": \"+31612345678\",\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"language\": \"en\",\n    \"components\": [\n      {\n        \"type\": \"body\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"text\": \"1234\"\n          }\n        ]\n      },\n      {\n        \"type\": \"button\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"text\": \"1234\"\n          }\n        ]\n      }\n    ]\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"from\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"to\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"category\": \"authentication\",\n    \"language\": \"pt-BR\",\n    \"components\": [\n      {\n        \"type\": \"header\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"url\": \"https://cdn.example.com/receipts/a1b2c3.png\",\n            \"location\": {\n              \"latitude\": 52.3702,\n              \"longitude\": 4.8952,\n              \"name\": \"Bird HQ\",\n              \"address\": \"Keizersgracht 117, Amsterdam\"\n            }\n          }\n        ],\n        \"cards\": [\n          {\n            \"components\": [\n              {\n                \"type\": \"header\"\n              }\n            ]\n          }\n        ]\n      }\n    ]\n  },\n  \"text\": {\n    \"body\": \"Does it come in another color?\"\n  },\n  \"image\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Your receipt for order A1B2C3\"\n  },\n  \"video\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"How to set it up\"\n  },\n  \"audio\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"voice\": true\n  },\n  \"sticker\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"animated\": false\n  },\n  \"document\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Signed contract\",\n    \"filename\": \"contract-a1b2c3.pdf\"\n  },\n  \"location\": {\n    \"latitude\": 52.3702,\n    \"longitude\": 4.8952,\n    \"name\": \"Bird HQ\",\n    \"address\": \"Keizersgracht 117, Amsterdam\",\n    \"url\": \"https://www.google.com/maps/place/Statue+of+Liberty/@40.6246301,-74.5291919,124716m/\"\n  },\n  \"contact_cards\": [\n    {\n      \"origin\": \"contact_request\",\n      \"phone_numbers\": [\n        {\n          \"phone_number\": \"+16505551234\",\n          \"type\": \"CELL\"\n        }\n      ]\n    }\n  ],\n  \"interactive\": {\n    \"type\": \"button\",\n    \"header\": {\n      \"type\": \"image\",\n      \"text\": \"New workshop dates announced\",\n      \"url\": \"https://cdn.example.com/banners/workshop.png\"\n    },\n    \"body_text\": \"Your workshop is scheduled for 9am tomorrow.\",\n    \"footer_text\": \"Lucky Shrub, your gateway to succulents\",\n    \"buttons\": [\n      {\n        \"type\": \"quick_reply\",\n        \"quick_reply\": {\n          \"slug\": \"change-booking\",\n          \"text\": \"Change\"\n        },\n        \"cta_url\": {\n          \"text\": \"See dates\",\n          \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n        }\n      }\n    ],\n    \"list\": {\n      \"button_text\": \"Shipping options\",\n      \"sections\": [\n        {\n          \"title\": \"As soon as possible\",\n          \"rows\": [\n            {\n              \"slug\": \"priority_express\",\n              \"text\": \"Priority Mail Express\",\n              \"description\": \"Next day to 2 days\"\n            }\n          ]\n        }\n      ]\n    },\n    \"cta_url\": {\n      \"text\": \"See dates\",\n      \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n    },\n    \"cards\": [\n      {\n        \"header\": {\n          \"type\": \"image\",\n          \"text\": \"New workshop dates announced\",\n          \"url\": \"https://cdn.example.com/banners/workshop.png\"\n        },\n        \"body_text\": \"*Blue Echeveria*\",\n        \"buttons\": [\n          {\n            \"type\": \"quick_reply\",\n            \"quick_reply\": {\n              \"slug\": \"change-booking\",\n              \"text\": \"Change\"\n            },\n            \"cta_url\": {\n              \"text\": \"See dates\",\n              \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n            }\n          }\n        ]\n      }\n    ]\n  },\n  \"in_reply_to_message_id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"interactive_reply\": {\n    \"type\": \"list\",\n    \"list\": {\n      \"slug\": \"priority_express\",\n      \"text\": \"Priority Mail Express\",\n      \"description\": \"Next day to 2 days\"\n    }\n  },\n  \"unsupported\": {\n    \"type\": \"reaction\"\n  },\n  \"status\": \"scheduled\",\n  \"last_error\": {\n    \"code\": \"insufficient_balance\",\n    \"description\": \"Message could not be delivered.\",\n    \"meta_error_code\": \"131026\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "8ace2815-cde9-80be-83ee-7e71ea45fb7d",
          "name": "Get a WhatsApp message",
          "request": {
            "name": "Get a WhatsApp message",
            "description": {
              "content": "Returns a single WhatsApp message: its current delivery status, per-stage timestamps (`sent_at`, `delivered_at`, `read_at`), and failure detail when it failed. It carries the one content object it was built from: `template`, or free-form `text`, `image`, `video`, `audio`, `sticker`, `document`, `location`, `interactive` or `contact_cards`. An inbound message carries `interactive_reply` when the contact tapped a reply button or a list row. An inbound message whose content WhatsApp models and we do not carries `unsupported` instead, naming the type rather than reading back empty. The `status` advances asynchronously as delivery progresses, so poll this endpoint (or subscribe to `whatsapp.*` webhook events) after a send to confirm delivery. For the per-event timeline, use [List events for a WhatsApp message](https://bird.com/docs/api/reference/list-whatsapp-message-events) instead.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "whatsapp",
                "messages",
                ":message_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "message_id",
                  "description": "(Required) ID of the message, as returned in the send response's `id` field."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "bf2e1f28-af45-8588-8a2a-08342e8d9784",
              "name": "WhatsApp message object.",
              "originalRequest": {
                "name": "Get a WhatsApp message",
                "description": {
                  "content": "Returns a single WhatsApp message: its current delivery status, per-stage timestamps (`sent_at`, `delivered_at`, `read_at`), and failure detail when it failed. It carries the one content object it was built from: `template`, or free-form `text`, `image`, `video`, `audio`, `sticker`, `document`, `location`, `interactive` or `contact_cards`. An inbound message carries `interactive_reply` when the contact tapped a reply button or a list row. An inbound message whose content WhatsApp models and we do not carries `unsupported` instead, naming the type rather than reading back empty. The `status` advances asynchronously as delivery progresses, so poll this endpoint (or subscribe to `whatsapp.*` webhook events) after a send to confirm delivery. For the per-event timeline, use [List events for a WhatsApp message](https://bird.com/docs/api/reference/list-whatsapp-message-events) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message, as returned in the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"from\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"to\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"category\": \"authentication\",\n    \"language\": \"pt-BR\",\n    \"components\": [\n      {\n        \"type\": \"header\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"url\": \"https://cdn.example.com/receipts/a1b2c3.png\",\n            \"location\": {\n              \"latitude\": 52.3702,\n              \"longitude\": 4.8952,\n              \"name\": \"Bird HQ\",\n              \"address\": \"Keizersgracht 117, Amsterdam\"\n            }\n          }\n        ],\n        \"cards\": [\n          {\n            \"components\": [\n              {\n                \"type\": \"header\"\n              }\n            ]\n          }\n        ]\n      }\n    ]\n  },\n  \"text\": {\n    \"body\": \"Does it come in another color?\"\n  },\n  \"image\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Your receipt for order A1B2C3\"\n  },\n  \"video\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"How to set it up\"\n  },\n  \"audio\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"voice\": true\n  },\n  \"sticker\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"animated\": false\n  },\n  \"document\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Signed contract\",\n    \"filename\": \"contract-a1b2c3.pdf\"\n  },\n  \"location\": {\n    \"latitude\": 52.3702,\n    \"longitude\": 4.8952,\n    \"name\": \"Bird HQ\",\n    \"address\": \"Keizersgracht 117, Amsterdam\",\n    \"url\": \"https://www.google.com/maps/place/Statue+of+Liberty/@40.6246301,-74.5291919,124716m/\"\n  },\n  \"contact_cards\": [\n    {\n      \"origin\": \"contact_request\",\n      \"phone_numbers\": [\n        {\n          \"phone_number\": \"+16505551234\",\n          \"type\": \"CELL\"\n        }\n      ]\n    }\n  ],\n  \"interactive\": {\n    \"type\": \"button\",\n    \"header\": {\n      \"type\": \"image\",\n      \"text\": \"New workshop dates announced\",\n      \"url\": \"https://cdn.example.com/banners/workshop.png\"\n    },\n    \"body_text\": \"Your workshop is scheduled for 9am tomorrow.\",\n    \"footer_text\": \"Lucky Shrub, your gateway to succulents\",\n    \"buttons\": [\n      {\n        \"type\": \"quick_reply\",\n        \"quick_reply\": {\n          \"slug\": \"change-booking\",\n          \"text\": \"Change\"\n        },\n        \"cta_url\": {\n          \"text\": \"See dates\",\n          \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n        }\n      }\n    ],\n    \"list\": {\n      \"button_text\": \"Shipping options\",\n      \"sections\": [\n        {\n          \"title\": \"As soon as possible\",\n          \"rows\": [\n            {\n              \"slug\": \"priority_express\",\n              \"text\": \"Priority Mail Express\",\n              \"description\": \"Next day to 2 days\"\n            }\n          ]\n        }\n      ]\n    },\n    \"cta_url\": {\n      \"text\": \"See dates\",\n      \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n    },\n    \"cards\": [\n      {\n        \"header\": {\n          \"type\": \"image\",\n          \"text\": \"New workshop dates announced\",\n          \"url\": \"https://cdn.example.com/banners/workshop.png\"\n        },\n        \"body_text\": \"*Blue Echeveria*\",\n        \"buttons\": [\n          {\n            \"type\": \"quick_reply\",\n            \"quick_reply\": {\n              \"slug\": \"change-booking\",\n              \"text\": \"Change\"\n            },\n            \"cta_url\": {\n              \"text\": \"See dates\",\n              \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n            }\n          }\n        ]\n      }\n    ]\n  },\n  \"in_reply_to_message_id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"interactive_reply\": {\n    \"type\": \"list\",\n    \"list\": {\n      \"slug\": \"priority_express\",\n      \"text\": \"Priority Mail Express\",\n      \"description\": \"Next day to 2 days\"\n    }\n  },\n  \"unsupported\": {\n    \"type\": \"reaction\"\n  },\n  \"status\": \"scheduled\",\n  \"last_error\": {\n    \"code\": \"insufficient_balance\",\n    \"description\": \"Message could not be delivered.\",\n    \"meta_error_code\": \"131026\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f26fb62d-6eea-845e-8366-f8a6176c8355",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a WhatsApp message",
                "description": {
                  "content": "Returns a single WhatsApp message: its current delivery status, per-stage timestamps (`sent_at`, `delivered_at`, `read_at`), and failure detail when it failed. It carries the one content object it was built from: `template`, or free-form `text`, `image`, `video`, `audio`, `sticker`, `document`, `location`, `interactive` or `contact_cards`. An inbound message carries `interactive_reply` when the contact tapped a reply button or a list row. An inbound message whose content WhatsApp models and we do not carries `unsupported` instead, naming the type rather than reading back empty. The `status` advances asynchronously as delivery progresses, so poll this endpoint (or subscribe to `whatsapp.*` webhook events) after a send to confirm delivery. For the per-event timeline, use [List events for a WhatsApp message](https://bird.com/docs/api/reference/list-whatsapp-message-events) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message, as returned in the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"from\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"to\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"category\": \"authentication\",\n    \"language\": \"pt-BR\",\n    \"components\": [\n      {\n        \"type\": \"header\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"url\": \"https://cdn.example.com/receipts/a1b2c3.png\",\n            \"location\": {\n              \"latitude\": 52.3702,\n              \"longitude\": 4.8952,\n              \"name\": \"Bird HQ\",\n              \"address\": \"Keizersgracht 117, Amsterdam\"\n            }\n          }\n        ],\n        \"cards\": [\n          {\n            \"components\": [\n              {\n                \"type\": \"header\"\n              }\n            ]\n          }\n        ]\n      }\n    ]\n  },\n  \"text\": {\n    \"body\": \"Does it come in another color?\"\n  },\n  \"image\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Your receipt for order A1B2C3\"\n  },\n  \"video\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"How to set it up\"\n  },\n  \"audio\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"voice\": true\n  },\n  \"sticker\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"animated\": false\n  },\n  \"document\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Signed contract\",\n    \"filename\": \"contract-a1b2c3.pdf\"\n  },\n  \"location\": {\n    \"latitude\": 52.3702,\n    \"longitude\": 4.8952,\n    \"name\": \"Bird HQ\",\n    \"address\": \"Keizersgracht 117, Amsterdam\",\n    \"url\": \"https://www.google.com/maps/place/Statue+of+Liberty/@40.6246301,-74.5291919,124716m/\"\n  },\n  \"contact_cards\": [\n    {\n      \"origin\": \"contact_request\",\n      \"phone_numbers\": [\n        {\n          \"phone_number\": \"+16505551234\",\n          \"type\": \"CELL\"\n        }\n      ]\n    }\n  ],\n  \"interactive\": {\n    \"type\": \"button\",\n    \"header\": {\n      \"type\": \"image\",\n      \"text\": \"New workshop dates announced\",\n      \"url\": \"https://cdn.example.com/banners/workshop.png\"\n    },\n    \"body_text\": \"Your workshop is scheduled for 9am tomorrow.\",\n    \"footer_text\": \"Lucky Shrub, your gateway to succulents\",\n    \"buttons\": [\n      {\n        \"type\": \"quick_reply\",\n        \"quick_reply\": {\n          \"slug\": \"change-booking\",\n          \"text\": \"Change\"\n        },\n        \"cta_url\": {\n          \"text\": \"See dates\",\n          \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n        }\n      }\n    ],\n    \"list\": {\n      \"button_text\": \"Shipping options\",\n      \"sections\": [\n        {\n          \"title\": \"As soon as possible\",\n          \"rows\": [\n            {\n              \"slug\": \"priority_express\",\n              \"text\": \"Priority Mail Express\",\n              \"description\": \"Next day to 2 days\"\n            }\n          ]\n        }\n      ]\n    },\n    \"cta_url\": {\n      \"text\": \"See dates\",\n      \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n    },\n    \"cards\": [\n      {\n        \"header\": {\n          \"type\": \"image\",\n          \"text\": \"New workshop dates announced\",\n          \"url\": \"https://cdn.example.com/banners/workshop.png\"\n        },\n        \"body_text\": \"*Blue Echeveria*\",\n        \"buttons\": [\n          {\n            \"type\": \"quick_reply\",\n            \"quick_reply\": {\n              \"slug\": \"change-booking\",\n              \"text\": \"Change\"\n            },\n            \"cta_url\": {\n              \"text\": \"See dates\",\n              \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n            }\n          }\n        ]\n      }\n    ]\n  },\n  \"in_reply_to_message_id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"interactive_reply\": {\n    \"type\": \"list\",\n    \"list\": {\n      \"slug\": \"priority_express\",\n      \"text\": \"Priority Mail Express\",\n      \"description\": \"Next day to 2 days\"\n    }\n  },\n  \"unsupported\": {\n    \"type\": \"reaction\"\n  },\n  \"status\": \"scheduled\",\n  \"last_error\": {\n    \"code\": \"insufficient_balance\",\n    \"description\": \"Message could not be delivered.\",\n    \"meta_error_code\": \"131026\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ff9539ac-e94e-84ec-87f8-017afe2727bc",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a WhatsApp message",
                "description": {
                  "content": "Returns a single WhatsApp message: its current delivery status, per-stage timestamps (`sent_at`, `delivered_at`, `read_at`), and failure detail when it failed. It carries the one content object it was built from: `template`, or free-form `text`, `image`, `video`, `audio`, `sticker`, `document`, `location`, `interactive` or `contact_cards`. An inbound message carries `interactive_reply` when the contact tapped a reply button or a list row. An inbound message whose content WhatsApp models and we do not carries `unsupported` instead, naming the type rather than reading back empty. The `status` advances asynchronously as delivery progresses, so poll this endpoint (or subscribe to `whatsapp.*` webhook events) after a send to confirm delivery. For the per-event timeline, use [List events for a WhatsApp message](https://bird.com/docs/api/reference/list-whatsapp-message-events) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message, as returned in the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"from\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"to\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"category\": \"authentication\",\n    \"language\": \"pt-BR\",\n    \"components\": [\n      {\n        \"type\": \"header\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"url\": \"https://cdn.example.com/receipts/a1b2c3.png\",\n            \"location\": {\n              \"latitude\": 52.3702,\n              \"longitude\": 4.8952,\n              \"name\": \"Bird HQ\",\n              \"address\": \"Keizersgracht 117, Amsterdam\"\n            }\n          }\n        ],\n        \"cards\": [\n          {\n            \"components\": [\n              {\n                \"type\": \"header\"\n              }\n            ]\n          }\n        ]\n      }\n    ]\n  },\n  \"text\": {\n    \"body\": \"Does it come in another color?\"\n  },\n  \"image\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Your receipt for order A1B2C3\"\n  },\n  \"video\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"How to set it up\"\n  },\n  \"audio\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"voice\": true\n  },\n  \"sticker\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"animated\": false\n  },\n  \"document\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Signed contract\",\n    \"filename\": \"contract-a1b2c3.pdf\"\n  },\n  \"location\": {\n    \"latitude\": 52.3702,\n    \"longitude\": 4.8952,\n    \"name\": \"Bird HQ\",\n    \"address\": \"Keizersgracht 117, Amsterdam\",\n    \"url\": \"https://www.google.com/maps/place/Statue+of+Liberty/@40.6246301,-74.5291919,124716m/\"\n  },\n  \"contact_cards\": [\n    {\n      \"origin\": \"contact_request\",\n      \"phone_numbers\": [\n        {\n          \"phone_number\": \"+16505551234\",\n          \"type\": \"CELL\"\n        }\n      ]\n    }\n  ],\n  \"interactive\": {\n    \"type\": \"button\",\n    \"header\": {\n      \"type\": \"image\",\n      \"text\": \"New workshop dates announced\",\n      \"url\": \"https://cdn.example.com/banners/workshop.png\"\n    },\n    \"body_text\": \"Your workshop is scheduled for 9am tomorrow.\",\n    \"footer_text\": \"Lucky Shrub, your gateway to succulents\",\n    \"buttons\": [\n      {\n        \"type\": \"quick_reply\",\n        \"quick_reply\": {\n          \"slug\": \"change-booking\",\n          \"text\": \"Change\"\n        },\n        \"cta_url\": {\n          \"text\": \"See dates\",\n          \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n        }\n      }\n    ],\n    \"list\": {\n      \"button_text\": \"Shipping options\",\n      \"sections\": [\n        {\n          \"title\": \"As soon as possible\",\n          \"rows\": [\n            {\n              \"slug\": \"priority_express\",\n              \"text\": \"Priority Mail Express\",\n              \"description\": \"Next day to 2 days\"\n            }\n          ]\n        }\n      ]\n    },\n    \"cta_url\": {\n      \"text\": \"See dates\",\n      \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n    },\n    \"cards\": [\n      {\n        \"header\": {\n          \"type\": \"image\",\n          \"text\": \"New workshop dates announced\",\n          \"url\": \"https://cdn.example.com/banners/workshop.png\"\n        },\n        \"body_text\": \"*Blue Echeveria*\",\n        \"buttons\": [\n          {\n            \"type\": \"quick_reply\",\n            \"quick_reply\": {\n              \"slug\": \"change-booking\",\n              \"text\": \"Change\"\n            },\n            \"cta_url\": {\n              \"text\": \"See dates\",\n              \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n            }\n          }\n        ]\n      }\n    ]\n  },\n  \"in_reply_to_message_id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"interactive_reply\": {\n    \"type\": \"list\",\n    \"list\": {\n      \"slug\": \"priority_express\",\n      \"text\": \"Priority Mail Express\",\n      \"description\": \"Next day to 2 days\"\n    }\n  },\n  \"unsupported\": {\n    \"type\": \"reaction\"\n  },\n  \"status\": \"scheduled\",\n  \"last_error\": {\n    \"code\": \"insufficient_balance\",\n    \"description\": \"Message could not be delivered.\",\n    \"meta_error_code\": \"131026\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7f166c5a-850d-8b85-8ecb-c35f7cd7ad64",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a WhatsApp message",
                "description": {
                  "content": "Returns a single WhatsApp message: its current delivery status, per-stage timestamps (`sent_at`, `delivered_at`, `read_at`), and failure detail when it failed. It carries the one content object it was built from: `template`, or free-form `text`, `image`, `video`, `audio`, `sticker`, `document`, `location`, `interactive` or `contact_cards`. An inbound message carries `interactive_reply` when the contact tapped a reply button or a list row. An inbound message whose content WhatsApp models and we do not carries `unsupported` instead, naming the type rather than reading back empty. The `status` advances asynchronously as delivery progresses, so poll this endpoint (or subscribe to `whatsapp.*` webhook events) after a send to confirm delivery. For the per-event timeline, use [List events for a WhatsApp message](https://bird.com/docs/api/reference/list-whatsapp-message-events) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message, as returned in the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"from\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"to\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"category\": \"authentication\",\n    \"language\": \"pt-BR\",\n    \"components\": [\n      {\n        \"type\": \"header\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"url\": \"https://cdn.example.com/receipts/a1b2c3.png\",\n            \"location\": {\n              \"latitude\": 52.3702,\n              \"longitude\": 4.8952,\n              \"name\": \"Bird HQ\",\n              \"address\": \"Keizersgracht 117, Amsterdam\"\n            }\n          }\n        ],\n        \"cards\": [\n          {\n            \"components\": [\n              {\n                \"type\": \"header\"\n              }\n            ]\n          }\n        ]\n      }\n    ]\n  },\n  \"text\": {\n    \"body\": \"Does it come in another color?\"\n  },\n  \"image\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Your receipt for order A1B2C3\"\n  },\n  \"video\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"How to set it up\"\n  },\n  \"audio\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"voice\": true\n  },\n  \"sticker\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"animated\": false\n  },\n  \"document\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Signed contract\",\n    \"filename\": \"contract-a1b2c3.pdf\"\n  },\n  \"location\": {\n    \"latitude\": 52.3702,\n    \"longitude\": 4.8952,\n    \"name\": \"Bird HQ\",\n    \"address\": \"Keizersgracht 117, Amsterdam\",\n    \"url\": \"https://www.google.com/maps/place/Statue+of+Liberty/@40.6246301,-74.5291919,124716m/\"\n  },\n  \"contact_cards\": [\n    {\n      \"origin\": \"contact_request\",\n      \"phone_numbers\": [\n        {\n          \"phone_number\": \"+16505551234\",\n          \"type\": \"CELL\"\n        }\n      ]\n    }\n  ],\n  \"interactive\": {\n    \"type\": \"button\",\n    \"header\": {\n      \"type\": \"image\",\n      \"text\": \"New workshop dates announced\",\n      \"url\": \"https://cdn.example.com/banners/workshop.png\"\n    },\n    \"body_text\": \"Your workshop is scheduled for 9am tomorrow.\",\n    \"footer_text\": \"Lucky Shrub, your gateway to succulents\",\n    \"buttons\": [\n      {\n        \"type\": \"quick_reply\",\n        \"quick_reply\": {\n          \"slug\": \"change-booking\",\n          \"text\": \"Change\"\n        },\n        \"cta_url\": {\n          \"text\": \"See dates\",\n          \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n        }\n      }\n    ],\n    \"list\": {\n      \"button_text\": \"Shipping options\",\n      \"sections\": [\n        {\n          \"title\": \"As soon as possible\",\n          \"rows\": [\n            {\n              \"slug\": \"priority_express\",\n              \"text\": \"Priority Mail Express\",\n              \"description\": \"Next day to 2 days\"\n            }\n          ]\n        }\n      ]\n    },\n    \"cta_url\": {\n      \"text\": \"See dates\",\n      \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n    },\n    \"cards\": [\n      {\n        \"header\": {\n          \"type\": \"image\",\n          \"text\": \"New workshop dates announced\",\n          \"url\": \"https://cdn.example.com/banners/workshop.png\"\n        },\n        \"body_text\": \"*Blue Echeveria*\",\n        \"buttons\": [\n          {\n            \"type\": \"quick_reply\",\n            \"quick_reply\": {\n              \"slug\": \"change-booking\",\n              \"text\": \"Change\"\n            },\n            \"cta_url\": {\n              \"text\": \"See dates\",\n              \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n            }\n          }\n        ]\n      }\n    ]\n  },\n  \"in_reply_to_message_id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"interactive_reply\": {\n    \"type\": \"list\",\n    \"list\": {\n      \"slug\": \"priority_express\",\n      \"text\": \"Priority Mail Express\",\n      \"description\": \"Next day to 2 days\"\n    }\n  },\n  \"unsupported\": {\n    \"type\": \"reaction\"\n  },\n  \"status\": \"scheduled\",\n  \"last_error\": {\n    \"code\": \"insufficient_balance\",\n    \"description\": \"Message could not be delivered.\",\n    \"meta_error_code\": \"131026\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8cf3b0b8-fb88-80e3-8ffb-52376fd245a4",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a WhatsApp message",
                "description": {
                  "content": "Returns a single WhatsApp message: its current delivery status, per-stage timestamps (`sent_at`, `delivered_at`, `read_at`), and failure detail when it failed. It carries the one content object it was built from: `template`, or free-form `text`, `image`, `video`, `audio`, `sticker`, `document`, `location`, `interactive` or `contact_cards`. An inbound message carries `interactive_reply` when the contact tapped a reply button or a list row. An inbound message whose content WhatsApp models and we do not carries `unsupported` instead, naming the type rather than reading back empty. The `status` advances asynchronously as delivery progresses, so poll this endpoint (or subscribe to `whatsapp.*` webhook events) after a send to confirm delivery. For the per-event timeline, use [List events for a WhatsApp message](https://bird.com/docs/api/reference/list-whatsapp-message-events) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message, as returned in the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"from\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"to\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"category\": \"authentication\",\n    \"language\": \"pt-BR\",\n    \"components\": [\n      {\n        \"type\": \"header\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"url\": \"https://cdn.example.com/receipts/a1b2c3.png\",\n            \"location\": {\n              \"latitude\": 52.3702,\n              \"longitude\": 4.8952,\n              \"name\": \"Bird HQ\",\n              \"address\": \"Keizersgracht 117, Amsterdam\"\n            }\n          }\n        ],\n        \"cards\": [\n          {\n            \"components\": [\n              {\n                \"type\": \"header\"\n              }\n            ]\n          }\n        ]\n      }\n    ]\n  },\n  \"text\": {\n    \"body\": \"Does it come in another color?\"\n  },\n  \"image\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Your receipt for order A1B2C3\"\n  },\n  \"video\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"How to set it up\"\n  },\n  \"audio\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"voice\": true\n  },\n  \"sticker\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"animated\": false\n  },\n  \"document\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Signed contract\",\n    \"filename\": \"contract-a1b2c3.pdf\"\n  },\n  \"location\": {\n    \"latitude\": 52.3702,\n    \"longitude\": 4.8952,\n    \"name\": \"Bird HQ\",\n    \"address\": \"Keizersgracht 117, Amsterdam\",\n    \"url\": \"https://www.google.com/maps/place/Statue+of+Liberty/@40.6246301,-74.5291919,124716m/\"\n  },\n  \"contact_cards\": [\n    {\n      \"origin\": \"contact_request\",\n      \"phone_numbers\": [\n        {\n          \"phone_number\": \"+16505551234\",\n          \"type\": \"CELL\"\n        }\n      ]\n    }\n  ],\n  \"interactive\": {\n    \"type\": \"button\",\n    \"header\": {\n      \"type\": \"image\",\n      \"text\": \"New workshop dates announced\",\n      \"url\": \"https://cdn.example.com/banners/workshop.png\"\n    },\n    \"body_text\": \"Your workshop is scheduled for 9am tomorrow.\",\n    \"footer_text\": \"Lucky Shrub, your gateway to succulents\",\n    \"buttons\": [\n      {\n        \"type\": \"quick_reply\",\n        \"quick_reply\": {\n          \"slug\": \"change-booking\",\n          \"text\": \"Change\"\n        },\n        \"cta_url\": {\n          \"text\": \"See dates\",\n          \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n        }\n      }\n    ],\n    \"list\": {\n      \"button_text\": \"Shipping options\",\n      \"sections\": [\n        {\n          \"title\": \"As soon as possible\",\n          \"rows\": [\n            {\n              \"slug\": \"priority_express\",\n              \"text\": \"Priority Mail Express\",\n              \"description\": \"Next day to 2 days\"\n            }\n          ]\n        }\n      ]\n    },\n    \"cta_url\": {\n      \"text\": \"See dates\",\n      \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n    },\n    \"cards\": [\n      {\n        \"header\": {\n          \"type\": \"image\",\n          \"text\": \"New workshop dates announced\",\n          \"url\": \"https://cdn.example.com/banners/workshop.png\"\n        },\n        \"body_text\": \"*Blue Echeveria*\",\n        \"buttons\": [\n          {\n            \"type\": \"quick_reply\",\n            \"quick_reply\": {\n              \"slug\": \"change-booking\",\n              \"text\": \"Change\"\n            },\n            \"cta_url\": {\n              \"text\": \"See dates\",\n              \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n            }\n          }\n        ]\n      }\n    ]\n  },\n  \"in_reply_to_message_id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"interactive_reply\": {\n    \"type\": \"list\",\n    \"list\": {\n      \"slug\": \"priority_express\",\n      \"text\": \"Priority Mail Express\",\n      \"description\": \"Next day to 2 days\"\n    }\n  },\n  \"unsupported\": {\n    \"type\": \"reaction\"\n  },\n  \"status\": \"scheduled\",\n  \"last_error\": {\n    \"code\": \"insufficient_balance\",\n    \"description\": \"Message could not be delivered.\",\n    \"meta_error_code\": \"131026\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "01a19b2c-f38c-80bd-8b95-6fd9d68f72e5",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a WhatsApp message",
                "description": {
                  "content": "Returns a single WhatsApp message: its current delivery status, per-stage timestamps (`sent_at`, `delivered_at`, `read_at`), and failure detail when it failed. It carries the one content object it was built from: `template`, or free-form `text`, `image`, `video`, `audio`, `sticker`, `document`, `location`, `interactive` or `contact_cards`. An inbound message carries `interactive_reply` when the contact tapped a reply button or a list row. An inbound message whose content WhatsApp models and we do not carries `unsupported` instead, naming the type rather than reading back empty. The `status` advances asynchronously as delivery progresses, so poll this endpoint (or subscribe to `whatsapp.*` webhook events) after a send to confirm delivery. For the per-event timeline, use [List events for a WhatsApp message](https://bird.com/docs/api/reference/list-whatsapp-message-events) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message, as returned in the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"from\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"to\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"category\": \"authentication\",\n    \"language\": \"pt-BR\",\n    \"components\": [\n      {\n        \"type\": \"header\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"url\": \"https://cdn.example.com/receipts/a1b2c3.png\",\n            \"location\": {\n              \"latitude\": 52.3702,\n              \"longitude\": 4.8952,\n              \"name\": \"Bird HQ\",\n              \"address\": \"Keizersgracht 117, Amsterdam\"\n            }\n          }\n        ],\n        \"cards\": [\n          {\n            \"components\": [\n              {\n                \"type\": \"header\"\n              }\n            ]\n          }\n        ]\n      }\n    ]\n  },\n  \"text\": {\n    \"body\": \"Does it come in another color?\"\n  },\n  \"image\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Your receipt for order A1B2C3\"\n  },\n  \"video\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"How to set it up\"\n  },\n  \"audio\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"voice\": true\n  },\n  \"sticker\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"animated\": false\n  },\n  \"document\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Signed contract\",\n    \"filename\": \"contract-a1b2c3.pdf\"\n  },\n  \"location\": {\n    \"latitude\": 52.3702,\n    \"longitude\": 4.8952,\n    \"name\": \"Bird HQ\",\n    \"address\": \"Keizersgracht 117, Amsterdam\",\n    \"url\": \"https://www.google.com/maps/place/Statue+of+Liberty/@40.6246301,-74.5291919,124716m/\"\n  },\n  \"contact_cards\": [\n    {\n      \"origin\": \"contact_request\",\n      \"phone_numbers\": [\n        {\n          \"phone_number\": \"+16505551234\",\n          \"type\": \"CELL\"\n        }\n      ]\n    }\n  ],\n  \"interactive\": {\n    \"type\": \"button\",\n    \"header\": {\n      \"type\": \"image\",\n      \"text\": \"New workshop dates announced\",\n      \"url\": \"https://cdn.example.com/banners/workshop.png\"\n    },\n    \"body_text\": \"Your workshop is scheduled for 9am tomorrow.\",\n    \"footer_text\": \"Lucky Shrub, your gateway to succulents\",\n    \"buttons\": [\n      {\n        \"type\": \"quick_reply\",\n        \"quick_reply\": {\n          \"slug\": \"change-booking\",\n          \"text\": \"Change\"\n        },\n        \"cta_url\": {\n          \"text\": \"See dates\",\n          \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n        }\n      }\n    ],\n    \"list\": {\n      \"button_text\": \"Shipping options\",\n      \"sections\": [\n        {\n          \"title\": \"As soon as possible\",\n          \"rows\": [\n            {\n              \"slug\": \"priority_express\",\n              \"text\": \"Priority Mail Express\",\n              \"description\": \"Next day to 2 days\"\n            }\n          ]\n        }\n      ]\n    },\n    \"cta_url\": {\n      \"text\": \"See dates\",\n      \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n    },\n    \"cards\": [\n      {\n        \"header\": {\n          \"type\": \"image\",\n          \"text\": \"New workshop dates announced\",\n          \"url\": \"https://cdn.example.com/banners/workshop.png\"\n        },\n        \"body_text\": \"*Blue Echeveria*\",\n        \"buttons\": [\n          {\n            \"type\": \"quick_reply\",\n            \"quick_reply\": {\n              \"slug\": \"change-booking\",\n              \"text\": \"Change\"\n            },\n            \"cta_url\": {\n              \"text\": \"See dates\",\n              \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n            }\n          }\n        ]\n      }\n    ]\n  },\n  \"in_reply_to_message_id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"interactive_reply\": {\n    \"type\": \"list\",\n    \"list\": {\n      \"slug\": \"priority_express\",\n      \"text\": \"Priority Mail Express\",\n      \"description\": \"Next day to 2 days\"\n    }\n  },\n  \"unsupported\": {\n    \"type\": \"reaction\"\n  },\n  \"status\": \"scheduled\",\n  \"last_error\": {\n    \"code\": \"insufficient_balance\",\n    \"description\": \"Message could not be delivered.\",\n    \"meta_error_code\": \"131026\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cf921a85-a5bf-8dec-812e-04382f917d09",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a WhatsApp message",
                "description": {
                  "content": "Returns a single WhatsApp message: its current delivery status, per-stage timestamps (`sent_at`, `delivered_at`, `read_at`), and failure detail when it failed. It carries the one content object it was built from: `template`, or free-form `text`, `image`, `video`, `audio`, `sticker`, `document`, `location`, `interactive` or `contact_cards`. An inbound message carries `interactive_reply` when the contact tapped a reply button or a list row. An inbound message whose content WhatsApp models and we do not carries `unsupported` instead, naming the type rather than reading back empty. The `status` advances asynchronously as delivery progresses, so poll this endpoint (or subscribe to `whatsapp.*` webhook events) after a send to confirm delivery. For the per-event timeline, use [List events for a WhatsApp message](https://bird.com/docs/api/reference/list-whatsapp-message-events) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message, as returned in the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"from\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"to\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"category\": \"authentication\",\n    \"language\": \"pt-BR\",\n    \"components\": [\n      {\n        \"type\": \"header\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"url\": \"https://cdn.example.com/receipts/a1b2c3.png\",\n            \"location\": {\n              \"latitude\": 52.3702,\n              \"longitude\": 4.8952,\n              \"name\": \"Bird HQ\",\n              \"address\": \"Keizersgracht 117, Amsterdam\"\n            }\n          }\n        ],\n        \"cards\": [\n          {\n            \"components\": [\n              {\n                \"type\": \"header\"\n              }\n            ]\n          }\n        ]\n      }\n    ]\n  },\n  \"text\": {\n    \"body\": \"Does it come in another color?\"\n  },\n  \"image\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Your receipt for order A1B2C3\"\n  },\n  \"video\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"How to set it up\"\n  },\n  \"audio\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"voice\": true\n  },\n  \"sticker\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"animated\": false\n  },\n  \"document\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Signed contract\",\n    \"filename\": \"contract-a1b2c3.pdf\"\n  },\n  \"location\": {\n    \"latitude\": 52.3702,\n    \"longitude\": 4.8952,\n    \"name\": \"Bird HQ\",\n    \"address\": \"Keizersgracht 117, Amsterdam\",\n    \"url\": \"https://www.google.com/maps/place/Statue+of+Liberty/@40.6246301,-74.5291919,124716m/\"\n  },\n  \"contact_cards\": [\n    {\n      \"origin\": \"contact_request\",\n      \"phone_numbers\": [\n        {\n          \"phone_number\": \"+16505551234\",\n          \"type\": \"CELL\"\n        }\n      ]\n    }\n  ],\n  \"interactive\": {\n    \"type\": \"button\",\n    \"header\": {\n      \"type\": \"image\",\n      \"text\": \"New workshop dates announced\",\n      \"url\": \"https://cdn.example.com/banners/workshop.png\"\n    },\n    \"body_text\": \"Your workshop is scheduled for 9am tomorrow.\",\n    \"footer_text\": \"Lucky Shrub, your gateway to succulents\",\n    \"buttons\": [\n      {\n        \"type\": \"quick_reply\",\n        \"quick_reply\": {\n          \"slug\": \"change-booking\",\n          \"text\": \"Change\"\n        },\n        \"cta_url\": {\n          \"text\": \"See dates\",\n          \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n        }\n      }\n    ],\n    \"list\": {\n      \"button_text\": \"Shipping options\",\n      \"sections\": [\n        {\n          \"title\": \"As soon as possible\",\n          \"rows\": [\n            {\n              \"slug\": \"priority_express\",\n              \"text\": \"Priority Mail Express\",\n              \"description\": \"Next day to 2 days\"\n            }\n          ]\n        }\n      ]\n    },\n    \"cta_url\": {\n      \"text\": \"See dates\",\n      \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n    },\n    \"cards\": [\n      {\n        \"header\": {\n          \"type\": \"image\",\n          \"text\": \"New workshop dates announced\",\n          \"url\": \"https://cdn.example.com/banners/workshop.png\"\n        },\n        \"body_text\": \"*Blue Echeveria*\",\n        \"buttons\": [\n          {\n            \"type\": \"quick_reply\",\n            \"quick_reply\": {\n              \"slug\": \"change-booking\",\n              \"text\": \"Change\"\n            },\n            \"cta_url\": {\n              \"text\": \"See dates\",\n              \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n            }\n          }\n        ]\n      }\n    ]\n  },\n  \"in_reply_to_message_id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"interactive_reply\": {\n    \"type\": \"list\",\n    \"list\": {\n      \"slug\": \"priority_express\",\n      \"text\": \"Priority Mail Express\",\n      \"description\": \"Next day to 2 days\"\n    }\n  },\n  \"unsupported\": {\n    \"type\": \"reaction\"\n  },\n  \"status\": \"scheduled\",\n  \"last_error\": {\n    \"code\": \"insufficient_balance\",\n    \"description\": \"Message could not be delivered.\",\n    \"meta_error_code\": \"131026\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2ddf9bc1-ab4a-8d5c-8c44-70d9c352ac29",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get a WhatsApp message",
                "description": {
                  "content": "Returns a single WhatsApp message: its current delivery status, per-stage timestamps (`sent_at`, `delivered_at`, `read_at`), and failure detail when it failed. It carries the one content object it was built from: `template`, or free-form `text`, `image`, `video`, `audio`, `sticker`, `document`, `location`, `interactive` or `contact_cards`. An inbound message carries `interactive_reply` when the contact tapped a reply button or a list row. An inbound message whose content WhatsApp models and we do not carries `unsupported` instead, naming the type rather than reading back empty. The `status` advances asynchronously as delivery progresses, so poll this endpoint (or subscribe to `whatsapp.*` webhook events) after a send to confirm delivery. For the per-event timeline, use [List events for a WhatsApp message](https://bird.com/docs/api/reference/list-whatsapp-message-events) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message, as returned in the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"from\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"to\": {\n    \"phone_number\": \"+15550001111\",\n    \"bsuid\": \"NL.xxxx\"\n  },\n  \"template\": {\n    \"slug\": \"bird_otp\",\n    \"category\": \"authentication\",\n    \"language\": \"pt-BR\",\n    \"components\": [\n      {\n        \"type\": \"header\",\n        \"parameters\": [\n          {\n            \"type\": \"text\",\n            \"url\": \"https://cdn.example.com/receipts/a1b2c3.png\",\n            \"location\": {\n              \"latitude\": 52.3702,\n              \"longitude\": 4.8952,\n              \"name\": \"Bird HQ\",\n              \"address\": \"Keizersgracht 117, Amsterdam\"\n            }\n          }\n        ],\n        \"cards\": [\n          {\n            \"components\": [\n              {\n                \"type\": \"header\"\n              }\n            ]\n          }\n        ]\n      }\n    ]\n  },\n  \"text\": {\n    \"body\": \"Does it come in another color?\"\n  },\n  \"image\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Your receipt for order A1B2C3\"\n  },\n  \"video\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"How to set it up\"\n  },\n  \"audio\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"voice\": true\n  },\n  \"sticker\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"animated\": false\n  },\n  \"document\": {\n    \"id\": \"waf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"url\": \"https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez\",\n    \"mime_type\": \"image/jpeg\",\n    \"caption\": \"Signed contract\",\n    \"filename\": \"contract-a1b2c3.pdf\"\n  },\n  \"location\": {\n    \"latitude\": 52.3702,\n    \"longitude\": 4.8952,\n    \"name\": \"Bird HQ\",\n    \"address\": \"Keizersgracht 117, Amsterdam\",\n    \"url\": \"https://www.google.com/maps/place/Statue+of+Liberty/@40.6246301,-74.5291919,124716m/\"\n  },\n  \"contact_cards\": [\n    {\n      \"origin\": \"contact_request\",\n      \"phone_numbers\": [\n        {\n          \"phone_number\": \"+16505551234\",\n          \"type\": \"CELL\"\n        }\n      ]\n    }\n  ],\n  \"interactive\": {\n    \"type\": \"button\",\n    \"header\": {\n      \"type\": \"image\",\n      \"text\": \"New workshop dates announced\",\n      \"url\": \"https://cdn.example.com/banners/workshop.png\"\n    },\n    \"body_text\": \"Your workshop is scheduled for 9am tomorrow.\",\n    \"footer_text\": \"Lucky Shrub, your gateway to succulents\",\n    \"buttons\": [\n      {\n        \"type\": \"quick_reply\",\n        \"quick_reply\": {\n          \"slug\": \"change-booking\",\n          \"text\": \"Change\"\n        },\n        \"cta_url\": {\n          \"text\": \"See dates\",\n          \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n        }\n      }\n    ],\n    \"list\": {\n      \"button_text\": \"Shipping options\",\n      \"sections\": [\n        {\n          \"title\": \"As soon as possible\",\n          \"rows\": [\n            {\n              \"slug\": \"priority_express\",\n              \"text\": \"Priority Mail Express\",\n              \"description\": \"Next day to 2 days\"\n            }\n          ]\n        }\n      ]\n    },\n    \"cta_url\": {\n      \"text\": \"See dates\",\n      \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n    },\n    \"cards\": [\n      {\n        \"header\": {\n          \"type\": \"image\",\n          \"text\": \"New workshop dates announced\",\n          \"url\": \"https://cdn.example.com/banners/workshop.png\"\n        },\n        \"body_text\": \"*Blue Echeveria*\",\n        \"buttons\": [\n          {\n            \"type\": \"quick_reply\",\n            \"quick_reply\": {\n              \"slug\": \"change-booking\",\n              \"text\": \"Change\"\n            },\n            \"cta_url\": {\n              \"text\": \"See dates\",\n              \"url\": \"https://example.com/workshops?click_id=a1b2c3\"\n            }\n          }\n        ]\n      }\n    ]\n  },\n  \"in_reply_to_message_id\": \"wam_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"interactive_reply\": {\n    \"type\": \"list\",\n    \"list\": {\n      \"slug\": \"priority_express\",\n      \"text\": \"Priority Mail Express\",\n      \"description\": \"Next day to 2 days\"\n    }\n  },\n  \"unsupported\": {\n    \"type\": \"reaction\"\n  },\n  \"status\": \"scheduled\",\n  \"last_error\": {\n    \"code\": \"insufficient_balance\",\n    \"description\": \"Message could not be delivered.\",\n    \"meta_error_code\": \"131026\"\n  },\n  \"cost\": {\n    \"amount\": \"0.00990\",\n    \"currency_code\": \"USD\",\n    \"transaction_amount\": \"0.00790\",\n    \"passthrough_amount\": \"0.00200\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "117a986f-571d-8b1a-8271-be715467f4fe",
          "name": "List events for a WhatsApp message",
          "request": {
            "name": "List events for a WhatsApp message",
            "description": {
              "content": "Returns a WhatsApp message's lifecycle events in chronological order, one entry per delivery transition (`whatsapp.accepted`, `whatsapp.sent`, `whatsapp.delivered`, `whatsapp.read`, `whatsapp.failed`). The timeline is bounded and returned in full, so this list is not paginated; an unknown message ID returns `404`. For the message's current state in a single field, use [Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message) instead.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "whatsapp",
                "messages",
                ":message_id",
                "events"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "type",
                  "value": "",
                  "description": "Keep only events of this exact type (for example `whatsapp.delivered` or `whatsapp.failed`). Omit for the full timeline.\n"
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "message_id",
                  "description": "(Required) ID of the message, as returned in the send response's `id` field."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "3d11619f-457c-8d28-83bc-d21ca63ac821",
              "name": "Event timeline for this WhatsApp message.",
              "originalRequest": {
                "name": "List events for a WhatsApp message",
                "description": {
                  "content": "Returns a WhatsApp message's lifecycle events in chronological order, one entry per delivery transition (`whatsapp.accepted`, `whatsapp.sent`, `whatsapp.delivered`, `whatsapp.read`, `whatsapp.failed`). The timeline is bounded and returned in full, so this list is not paginated; an unknown message ID returns `404`. For the message's current state in a single field, use [Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages",
                    ":message_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "Keep only events of this exact type (for example `whatsapp.delivered` or `whatsapp.failed`). Omit for the full timeline.\n"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message, as returned in the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ev_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"whatsapp.delivered\",\n      \"error\": {\n        \"code\": \"insufficient_balance\",\n        \"description\": \"Message could not be delivered.\",\n        \"meta_error_code\": \"131026\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e0d93b25-910e-86c7-81c7-477940a59641",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List events for a WhatsApp message",
                "description": {
                  "content": "Returns a WhatsApp message's lifecycle events in chronological order, one entry per delivery transition (`whatsapp.accepted`, `whatsapp.sent`, `whatsapp.delivered`, `whatsapp.read`, `whatsapp.failed`). The timeline is bounded and returned in full, so this list is not paginated; an unknown message ID returns `404`. For the message's current state in a single field, use [Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages",
                    ":message_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "Keep only events of this exact type (for example `whatsapp.delivered` or `whatsapp.failed`). Omit for the full timeline.\n"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message, as returned in the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ev_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"whatsapp.delivered\",\n      \"error\": {\n        \"code\": \"insufficient_balance\",\n        \"description\": \"Message could not be delivered.\",\n        \"meta_error_code\": \"131026\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f6c2f1fc-6a3e-8845-81d1-dea32ecced7d",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List events for a WhatsApp message",
                "description": {
                  "content": "Returns a WhatsApp message's lifecycle events in chronological order, one entry per delivery transition (`whatsapp.accepted`, `whatsapp.sent`, `whatsapp.delivered`, `whatsapp.read`, `whatsapp.failed`). The timeline is bounded and returned in full, so this list is not paginated; an unknown message ID returns `404`. For the message's current state in a single field, use [Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages",
                    ":message_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "Keep only events of this exact type (for example `whatsapp.delivered` or `whatsapp.failed`). Omit for the full timeline.\n"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message, as returned in the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ev_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"whatsapp.delivered\",\n      \"error\": {\n        \"code\": \"insufficient_balance\",\n        \"description\": \"Message could not be delivered.\",\n        \"meta_error_code\": \"131026\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "256daca9-c92c-8fd5-8cde-1cd3ee4abcf2",
              "name": "Resource not found",
              "originalRequest": {
                "name": "List events for a WhatsApp message",
                "description": {
                  "content": "Returns a WhatsApp message's lifecycle events in chronological order, one entry per delivery transition (`whatsapp.accepted`, `whatsapp.sent`, `whatsapp.delivered`, `whatsapp.read`, `whatsapp.failed`). The timeline is bounded and returned in full, so this list is not paginated; an unknown message ID returns `404`. For the message's current state in a single field, use [Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages",
                    ":message_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "Keep only events of this exact type (for example `whatsapp.delivered` or `whatsapp.failed`). Omit for the full timeline.\n"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message, as returned in the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ev_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"whatsapp.delivered\",\n      \"error\": {\n        \"code\": \"insufficient_balance\",\n        \"description\": \"Message could not be delivered.\",\n        \"meta_error_code\": \"131026\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "471905ab-8ce4-8411-8f91-87931af4767f",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List events for a WhatsApp message",
                "description": {
                  "content": "Returns a WhatsApp message's lifecycle events in chronological order, one entry per delivery transition (`whatsapp.accepted`, `whatsapp.sent`, `whatsapp.delivered`, `whatsapp.read`, `whatsapp.failed`). The timeline is bounded and returned in full, so this list is not paginated; an unknown message ID returns `404`. For the message's current state in a single field, use [Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages",
                    ":message_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "Keep only events of this exact type (for example `whatsapp.delivered` or `whatsapp.failed`). Omit for the full timeline.\n"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message, as returned in the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ev_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"whatsapp.delivered\",\n      \"error\": {\n        \"code\": \"insufficient_balance\",\n        \"description\": \"Message could not be delivered.\",\n        \"meta_error_code\": \"131026\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9c50f722-9771-8273-8551-9b0be5f416fa",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List events for a WhatsApp message",
                "description": {
                  "content": "Returns a WhatsApp message's lifecycle events in chronological order, one entry per delivery transition (`whatsapp.accepted`, `whatsapp.sent`, `whatsapp.delivered`, `whatsapp.read`, `whatsapp.failed`). The timeline is bounded and returned in full, so this list is not paginated; an unknown message ID returns `404`. For the message's current state in a single field, use [Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages",
                    ":message_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "Keep only events of this exact type (for example `whatsapp.delivered` or `whatsapp.failed`). Omit for the full timeline.\n"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message, as returned in the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ev_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"whatsapp.delivered\",\n      \"error\": {\n        \"code\": \"insufficient_balance\",\n        \"description\": \"Message could not be delivered.\",\n        \"meta_error_code\": \"131026\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "781155de-9ff6-801f-84e2-7f8a347a7a43",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List events for a WhatsApp message",
                "description": {
                  "content": "Returns a WhatsApp message's lifecycle events in chronological order, one entry per delivery transition (`whatsapp.accepted`, `whatsapp.sent`, `whatsapp.delivered`, `whatsapp.read`, `whatsapp.failed`). The timeline is bounded and returned in full, so this list is not paginated; an unknown message ID returns `404`. For the message's current state in a single field, use [Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages",
                    ":message_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "Keep only events of this exact type (for example `whatsapp.delivered` or `whatsapp.failed`). Omit for the full timeline.\n"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message, as returned in the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ev_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"whatsapp.delivered\",\n      \"error\": {\n        \"code\": \"insufficient_balance\",\n        \"description\": \"Message could not be delivered.\",\n        \"meta_error_code\": \"131026\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "330e81db-e176-8333-8fcc-c037d4781405",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "List events for a WhatsApp message",
                "description": {
                  "content": "Returns a WhatsApp message's lifecycle events in chronological order, one entry per delivery transition (`whatsapp.accepted`, `whatsapp.sent`, `whatsapp.delivered`, `whatsapp.read`, `whatsapp.failed`). The timeline is bounded and returned in full, so this list is not paginated; an unknown message ID returns `404`. For the message's current state in a single field, use [Get a WhatsApp message](https://bird.com/docs/api/reference/get-whatsapp-message) instead.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages",
                    ":message_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "Keep only events of this exact type (for example `whatsapp.delivered` or `whatsapp.failed`). Omit for the full timeline.\n"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) ID of the message, as returned in the send response's `id` field."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ev_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"whatsapp.delivered\",\n      \"error\": {\n        \"code\": \"insufficient_balance\",\n        \"description\": \"Message could not be delivered.\",\n        \"meta_error_code\": \"131026\"\n      }\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "1dfface8-2110-8c45-83f2-7bd86443ffec",
          "name": "Get a WhatsApp message's media",
          "request": {
            "name": "Get a WhatsApp message's media",
            "description": {
              "content": "Redirects to a short-lived URL for the media on a received WhatsApp message.\nInbound media is stored because WhatsApp's own URL is not fetchable\nwithout our credentials; this endpoint is what the `url` on the message's\n`image`, `video`, `audio`, `sticker` or `document` points at. The bytes\nlive in object storage and are served straight from there, so they never\ntransit the API.\n\nThe response is a `302` whose `Location` is that pre-authorized storage URL,\nvalid for 15 minutes; your client must follow redirects. The `Authorization`\nheader must be absent from the request that fetches that URL: a client that\nattaches credentials centrally, at its transport, interceptor or middleware\nlayer rather than per request, re-adds the header on every hop including the\nredirect, so the storage URL must be fetched with a client that carries\nnone.\n\nMedia is kept for 30 days after the message is received, and the message\nitself is kept longer. A message older than that still lists its media's\n`mime_type` and `caption`, and this operation returns `410` once the bytes\nhave expired. Outbound messages have no media to serve.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "whatsapp",
                "messages",
                ":message_id",
                "media",
                ":media_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "message_id",
                  "description": "(Required) WhatsApp message ID."
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "media_id",
                  "description": "(Required) Media ID, as returned in `id` on the message's content object."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "0eb239f6-a765-828e-8beb-530f750bb14f",
              "name": "Redirect to a storage URL valid for 15 minutes.",
              "originalRequest": {
                "name": "Get a WhatsApp message's media",
                "description": {
                  "content": "Redirects to a short-lived URL for the media on a received WhatsApp message.\nInbound media is stored because WhatsApp's own URL is not fetchable\nwithout our credentials; this endpoint is what the `url` on the message's\n`image`, `video`, `audio`, `sticker` or `document` points at. The bytes\nlive in object storage and are served straight from there, so they never\ntransit the API.\n\nThe response is a `302` whose `Location` is that pre-authorized storage URL,\nvalid for 15 minutes; your client must follow redirects. The `Authorization`\nheader must be absent from the request that fetches that URL: a client that\nattaches credentials centrally, at its transport, interceptor or middleware\nlayer rather than per request, re-adds the header on every hop including the\nredirect, so the storage URL must be fetched with a client that carries\nnone.\n\nMedia is kept for 30 days after the message is received, and the message\nitself is kept longer. A message older than that still lists its media's\n`mime_type` and `caption`, and this operation returns `410` once the bytes\nhave expired. Outbound messages have no media to serve.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages",
                    ":message_id",
                    "media",
                    ":media_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) WhatsApp message ID."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "media_id",
                      "description": "(Required) Media ID, as returned in `id` on the message's content object."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Found",
              "code": 302,
              "header": [
                {
                  "disabled": false,
                  "description": "The storage URL to fetch the media from.",
                  "key": "Location",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "cfa5bb6e-25df-8f43-8899-f1f09b2160a9",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a WhatsApp message's media",
                "description": {
                  "content": "Redirects to a short-lived URL for the media on a received WhatsApp message.\nInbound media is stored because WhatsApp's own URL is not fetchable\nwithout our credentials; this endpoint is what the `url` on the message's\n`image`, `video`, `audio`, `sticker` or `document` points at. The bytes\nlive in object storage and are served straight from there, so they never\ntransit the API.\n\nThe response is a `302` whose `Location` is that pre-authorized storage URL,\nvalid for 15 minutes; your client must follow redirects. The `Authorization`\nheader must be absent from the request that fetches that URL: a client that\nattaches credentials centrally, at its transport, interceptor or middleware\nlayer rather than per request, re-adds the header on every hop including the\nredirect, so the storage URL must be fetched with a client that carries\nnone.\n\nMedia is kept for 30 days after the message is received, and the message\nitself is kept longer. A message older than that still lists its media's\n`mime_type` and `caption`, and this operation returns `410` once the bytes\nhave expired. Outbound messages have no media to serve.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages",
                    ":message_id",
                    "media",
                    ":media_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) WhatsApp message ID."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "media_id",
                      "description": "(Required) Media ID, as returned in `id` on the message's content object."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "54ef9be1-335d-8440-8a74-bd3a8dd61ed3",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a WhatsApp message's media",
                "description": {
                  "content": "Redirects to a short-lived URL for the media on a received WhatsApp message.\nInbound media is stored because WhatsApp's own URL is not fetchable\nwithout our credentials; this endpoint is what the `url` on the message's\n`image`, `video`, `audio`, `sticker` or `document` points at. The bytes\nlive in object storage and are served straight from there, so they never\ntransit the API.\n\nThe response is a `302` whose `Location` is that pre-authorized storage URL,\nvalid for 15 minutes; your client must follow redirects. The `Authorization`\nheader must be absent from the request that fetches that URL: a client that\nattaches credentials centrally, at its transport, interceptor or middleware\nlayer rather than per request, re-adds the header on every hop including the\nredirect, so the storage URL must be fetched with a client that carries\nnone.\n\nMedia is kept for 30 days after the message is received, and the message\nitself is kept longer. A message older than that still lists its media's\n`mime_type` and `caption`, and this operation returns `410` once the bytes\nhave expired. Outbound messages have no media to serve.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages",
                    ":message_id",
                    "media",
                    ":media_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) WhatsApp message ID."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "media_id",
                      "description": "(Required) Media ID, as returned in `id` on the message's content object."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7c577d3b-306a-8aa7-8794-d6c709cd1ec2",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a WhatsApp message's media",
                "description": {
                  "content": "Redirects to a short-lived URL for the media on a received WhatsApp message.\nInbound media is stored because WhatsApp's own URL is not fetchable\nwithout our credentials; this endpoint is what the `url` on the message's\n`image`, `video`, `audio`, `sticker` or `document` points at. The bytes\nlive in object storage and are served straight from there, so they never\ntransit the API.\n\nThe response is a `302` whose `Location` is that pre-authorized storage URL,\nvalid for 15 minutes; your client must follow redirects. The `Authorization`\nheader must be absent from the request that fetches that URL: a client that\nattaches credentials centrally, at its transport, interceptor or middleware\nlayer rather than per request, re-adds the header on every hop including the\nredirect, so the storage URL must be fetched with a client that carries\nnone.\n\nMedia is kept for 30 days after the message is received, and the message\nitself is kept longer. A message older than that still lists its media's\n`mime_type` and `caption`, and this operation returns `410` once the bytes\nhave expired. Outbound messages have no media to serve.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages",
                    ":message_id",
                    "media",
                    ":media_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) WhatsApp message ID."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "media_id",
                      "description": "(Required) Media ID, as returned in `id` on the message's content object."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f282438b-730a-857a-83e5-95f78f3febf0",
              "name": "The resource existed but is no longer available.",
              "originalRequest": {
                "name": "Get a WhatsApp message's media",
                "description": {
                  "content": "Redirects to a short-lived URL for the media on a received WhatsApp message.\nInbound media is stored because WhatsApp's own URL is not fetchable\nwithout our credentials; this endpoint is what the `url` on the message's\n`image`, `video`, `audio`, `sticker` or `document` points at. The bytes\nlive in object storage and are served straight from there, so they never\ntransit the API.\n\nThe response is a `302` whose `Location` is that pre-authorized storage URL,\nvalid for 15 minutes; your client must follow redirects. The `Authorization`\nheader must be absent from the request that fetches that URL: a client that\nattaches credentials centrally, at its transport, interceptor or middleware\nlayer rather than per request, re-adds the header on every hop including the\nredirect, so the storage URL must be fetched with a client that carries\nnone.\n\nMedia is kept for 30 days after the message is received, and the message\nitself is kept longer. A message older than that still lists its media's\n`mime_type` and `caption`, and this operation returns `410` once the bytes\nhave expired. Outbound messages have no media to serve.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages",
                    ":message_id",
                    "media",
                    ":media_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) WhatsApp message ID."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "media_id",
                      "description": "(Required) Media ID, as returned in `id` on the message's content object."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Gone",
              "code": 410,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ce023ef2-bb76-8359-801e-98febe51b4df",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a WhatsApp message's media",
                "description": {
                  "content": "Redirects to a short-lived URL for the media on a received WhatsApp message.\nInbound media is stored because WhatsApp's own URL is not fetchable\nwithout our credentials; this endpoint is what the `url` on the message's\n`image`, `video`, `audio`, `sticker` or `document` points at. The bytes\nlive in object storage and are served straight from there, so they never\ntransit the API.\n\nThe response is a `302` whose `Location` is that pre-authorized storage URL,\nvalid for 15 minutes; your client must follow redirects. The `Authorization`\nheader must be absent from the request that fetches that URL: a client that\nattaches credentials centrally, at its transport, interceptor or middleware\nlayer rather than per request, re-adds the header on every hop including the\nredirect, so the storage URL must be fetched with a client that carries\nnone.\n\nMedia is kept for 30 days after the message is received, and the message\nitself is kept longer. A message older than that still lists its media's\n`mime_type` and `caption`, and this operation returns `410` once the bytes\nhave expired. Outbound messages have no media to serve.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages",
                    ":message_id",
                    "media",
                    ":media_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) WhatsApp message ID."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "media_id",
                      "description": "(Required) Media ID, as returned in `id` on the message's content object."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "51ab3b3e-a08e-8b46-8d30-ae48d384ce58",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a WhatsApp message's media",
                "description": {
                  "content": "Redirects to a short-lived URL for the media on a received WhatsApp message.\nInbound media is stored because WhatsApp's own URL is not fetchable\nwithout our credentials; this endpoint is what the `url` on the message's\n`image`, `video`, `audio`, `sticker` or `document` points at. The bytes\nlive in object storage and are served straight from there, so they never\ntransit the API.\n\nThe response is a `302` whose `Location` is that pre-authorized storage URL,\nvalid for 15 minutes; your client must follow redirects. The `Authorization`\nheader must be absent from the request that fetches that URL: a client that\nattaches credentials centrally, at its transport, interceptor or middleware\nlayer rather than per request, re-adds the header on every hop including the\nredirect, so the storage URL must be fetched with a client that carries\nnone.\n\nMedia is kept for 30 days after the message is received, and the message\nitself is kept longer. A message older than that still lists its media's\n`mime_type` and `caption`, and this operation returns `410` once the bytes\nhave expired. Outbound messages have no media to serve.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages",
                    ":message_id",
                    "media",
                    ":media_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) WhatsApp message ID."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "media_id",
                      "description": "(Required) Media ID, as returned in `id` on the message's content object."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f59f7487-f265-8d95-8301-c668b3981dfd",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a WhatsApp message's media",
                "description": {
                  "content": "Redirects to a short-lived URL for the media on a received WhatsApp message.\nInbound media is stored because WhatsApp's own URL is not fetchable\nwithout our credentials; this endpoint is what the `url` on the message's\n`image`, `video`, `audio`, `sticker` or `document` points at. The bytes\nlive in object storage and are served straight from there, so they never\ntransit the API.\n\nThe response is a `302` whose `Location` is that pre-authorized storage URL,\nvalid for 15 minutes; your client must follow redirects. The `Authorization`\nheader must be absent from the request that fetches that URL: a client that\nattaches credentials centrally, at its transport, interceptor or middleware\nlayer rather than per request, re-adds the header on every hop including the\nredirect, so the storage URL must be fetched with a client that carries\nnone.\n\nMedia is kept for 30 days after the message is received, and the message\nitself is kept longer. A message older than that still lists its media's\n`mime_type` and `caption`, and this operation returns `410` once the bytes\nhave expired. Outbound messages have no media to serve.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "whatsapp",
                    "messages",
                    ":message_id",
                    "media",
                    ":media_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) WhatsApp message ID."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "media_id",
                      "description": "(Required) Media ID, as returned in `id` on the message's content object."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "b04053cb-fd93-834d-874e-b58964990abb",
      "name": "domains",
      "description": {
        "content": "Sending domain management and DNS verification.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "bd3fef31-55aa-8599-8af6-bbb7c32a48dd",
          "name": "Create a sending domain",
          "request": {
            "name": "Create a sending domain",
            "description": {
              "content": "Registers a new sending domain and returns the DNS records to publish\nfor it. The DKIM TXT record proves ownership, and together with the\nreturn-path CNAME (which also covers SPF, so no separate SPF record is\nneeded) and a DMARC policy it gates sending. The tracking CNAME is\noptional and gates branded link tracking only. Publish the records at\nyour DNS provider, then check progress with\n[Trigger domain verification](https://bird.com/docs/api/reference/verify-domain). Published\nrecords are also re-checked for you automatically. Setup walkthrough:\n[Sending domains](https://bird.com/docs/guides/email/sending-domains).\n\nThe domain starts in `pending` status. A domain already registered in\nthis workspace returns `409`, and creation beyond your organization's\ndomain quota returns `422` `E10000`. A domain that never verifies\nownership is removed after about 14 days, with a reminder email first.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "domains"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"domain\": \"mail.acme.com\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "02e4c839-e45f-81ee-8271-232bf3998c87",
              "name": "Domain created.",
              "originalRequest": {
                "name": "Create a sending domain",
                "description": {
                  "content": "Registers a new sending domain and returns the DNS records to publish\nfor it. The DKIM TXT record proves ownership, and together with the\nreturn-path CNAME (which also covers SPF, so no separate SPF record is\nneeded) and a DMARC policy it gates sending. The tracking CNAME is\noptional and gates branded link tracking only. Publish the records at\nyour DNS provider, then check progress with\n[Trigger domain verification](https://bird.com/docs/api/reference/verify-domain). Published\nrecords are also re-checked for you automatically. Setup walkthrough:\n[Sending domains](https://bird.com/docs/guides/email/sending-domains).\n\nThe domain starts in `pending` status. A domain already registered in\nthis workspace returns `409`, and creation beyond your organization's\ndomain quota returns `422` `E10000`. A domain that never verifies\nownership is removed after about 14 days, with a reminder email first.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"domain\": \"mail.acme.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "db308753-d96d-898a-86bb-5ec7a7b4b0e7",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create a sending domain",
                "description": {
                  "content": "Registers a new sending domain and returns the DNS records to publish\nfor it. The DKIM TXT record proves ownership, and together with the\nreturn-path CNAME (which also covers SPF, so no separate SPF record is\nneeded) and a DMARC policy it gates sending. The tracking CNAME is\noptional and gates branded link tracking only. Publish the records at\nyour DNS provider, then check progress with\n[Trigger domain verification](https://bird.com/docs/api/reference/verify-domain). Published\nrecords are also re-checked for you automatically. Setup walkthrough:\n[Sending domains](https://bird.com/docs/guides/email/sending-domains).\n\nThe domain starts in `pending` status. A domain already registered in\nthis workspace returns `409`, and creation beyond your organization's\ndomain quota returns `422` `E10000`. A domain that never verifies\nownership is removed after about 14 days, with a reminder email first.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"domain\": \"mail.acme.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c9454763-8d7b-85d6-833b-1e14a442c2de",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create a sending domain",
                "description": {
                  "content": "Registers a new sending domain and returns the DNS records to publish\nfor it. The DKIM TXT record proves ownership, and together with the\nreturn-path CNAME (which also covers SPF, so no separate SPF record is\nneeded) and a DMARC policy it gates sending. The tracking CNAME is\noptional and gates branded link tracking only. Publish the records at\nyour DNS provider, then check progress with\n[Trigger domain verification](https://bird.com/docs/api/reference/verify-domain). Published\nrecords are also re-checked for you automatically. Setup walkthrough:\n[Sending domains](https://bird.com/docs/guides/email/sending-domains).\n\nThe domain starts in `pending` status. A domain already registered in\nthis workspace returns `409`, and creation beyond your organization's\ndomain quota returns `422` `E10000`. A domain that never verifies\nownership is removed after about 14 days, with a reminder email first.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"domain\": \"mail.acme.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fca07320-676d-886c-85dc-a2b764f065da",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create a sending domain",
                "description": {
                  "content": "Registers a new sending domain and returns the DNS records to publish\nfor it. The DKIM TXT record proves ownership, and together with the\nreturn-path CNAME (which also covers SPF, so no separate SPF record is\nneeded) and a DMARC policy it gates sending. The tracking CNAME is\noptional and gates branded link tracking only. Publish the records at\nyour DNS provider, then check progress with\n[Trigger domain verification](https://bird.com/docs/api/reference/verify-domain). Published\nrecords are also re-checked for you automatically. Setup walkthrough:\n[Sending domains](https://bird.com/docs/guides/email/sending-domains).\n\nThe domain starts in `pending` status. A domain already registered in\nthis workspace returns `409`, and creation beyond your organization's\ndomain quota returns `422` `E10000`. A domain that never verifies\nownership is removed after about 14 days, with a reminder email first.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"domain\": \"mail.acme.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "09867eed-c059-803d-85b5-a520ea5e6629",
              "name": "Resource conflict",
              "originalRequest": {
                "name": "Create a sending domain",
                "description": {
                  "content": "Registers a new sending domain and returns the DNS records to publish\nfor it. The DKIM TXT record proves ownership, and together with the\nreturn-path CNAME (which also covers SPF, so no separate SPF record is\nneeded) and a DMARC policy it gates sending. The tracking CNAME is\noptional and gates branded link tracking only. Publish the records at\nyour DNS provider, then check progress with\n[Trigger domain verification](https://bird.com/docs/api/reference/verify-domain). Published\nrecords are also re-checked for you automatically. Setup walkthrough:\n[Sending domains](https://bird.com/docs/guides/email/sending-domains).\n\nThe domain starts in `pending` status. A domain already registered in\nthis workspace returns `409`, and creation beyond your organization's\ndomain quota returns `422` `E10000`. A domain that never verifies\nownership is removed after about 14 days, with a reminder email first.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"domain\": \"mail.acme.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a9f415d5-8a13-843d-8b78-3dec1fb85790",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create a sending domain",
                "description": {
                  "content": "Registers a new sending domain and returns the DNS records to publish\nfor it. The DKIM TXT record proves ownership, and together with the\nreturn-path CNAME (which also covers SPF, so no separate SPF record is\nneeded) and a DMARC policy it gates sending. The tracking CNAME is\noptional and gates branded link tracking only. Publish the records at\nyour DNS provider, then check progress with\n[Trigger domain verification](https://bird.com/docs/api/reference/verify-domain). Published\nrecords are also re-checked for you automatically. Setup walkthrough:\n[Sending domains](https://bird.com/docs/guides/email/sending-domains).\n\nThe domain starts in `pending` status. A domain already registered in\nthis workspace returns `409`, and creation beyond your organization's\ndomain quota returns `422` `E10000`. A domain that never verifies\nownership is removed after about 14 days, with a reminder email first.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"domain\": \"mail.acme.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "eff09c4c-d6c0-8ee4-8e80-125dfd90a36d",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create a sending domain",
                "description": {
                  "content": "Registers a new sending domain and returns the DNS records to publish\nfor it. The DKIM TXT record proves ownership, and together with the\nreturn-path CNAME (which also covers SPF, so no separate SPF record is\nneeded) and a DMARC policy it gates sending. The tracking CNAME is\noptional and gates branded link tracking only. Publish the records at\nyour DNS provider, then check progress with\n[Trigger domain verification](https://bird.com/docs/api/reference/verify-domain). Published\nrecords are also re-checked for you automatically. Setup walkthrough:\n[Sending domains](https://bird.com/docs/guides/email/sending-domains).\n\nThe domain starts in `pending` status. A domain already registered in\nthis workspace returns `409`, and creation beyond your organization's\ndomain quota returns `422` `E10000`. A domain that never verifies\nownership is removed after about 14 days, with a reminder email first.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"domain\": \"mail.acme.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 201,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6ae8b29c-ba43-8379-8e76-6ab27a7039c7",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create a sending domain",
                "description": {
                  "content": "Registers a new sending domain and returns the DNS records to publish\nfor it. The DKIM TXT record proves ownership, and together with the\nreturn-path CNAME (which also covers SPF, so no separate SPF record is\nneeded) and a DMARC policy it gates sending. The tracking CNAME is\noptional and gates branded link tracking only. Publish the records at\nyour DNS provider, then check progress with\n[Trigger domain verification](https://bird.com/docs/api/reference/verify-domain). Published\nrecords are also re-checked for you automatically. Setup walkthrough:\n[Sending domains](https://bird.com/docs/guides/email/sending-domains).\n\nThe domain starts in `pending` status. A domain already registered in\nthis workspace returns `409`, and creation beyond your organization's\ndomain quota returns `422` `E10000`. A domain that never verifies\nownership is removed after about 14 days, with a reminder email first.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"domain\": \"mail.acme.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "56774685-ae87-8cb5-8975-9481527e8312",
          "name": "List sending domains",
          "request": {
            "name": "List sending domains",
            "description": {
              "content": "Returns all sending domains for the current workspace, newest first by default. Each item is the full domain object, including capability statuses and `dns_records`, so no per-domain follow-up read is needed. Filter with `name` to find a specific domain.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "domains"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "name",
                  "value": "",
                  "description": "Substring match against the domain name (case-insensitive)."
                },
                {
                  "disabled": false,
                  "key": "sort",
                  "value": "created_at",
                  "description": "Field to sort by. Defaults to `created_at`."
                },
                {
                  "disabled": false,
                  "key": "order",
                  "value": "desc",
                  "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                },
                {
                  "disabled": false,
                  "key": "include_total",
                  "value": "false",
                  "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "1f422251-c459-8f5a-8564-16245f4edf1e",
              "name": "A page of sending domains.",
              "originalRequest": {
                "name": "List sending domains",
                "description": {
                  "content": "Returns all sending domains for the current workspace, newest first by default. Each item is the full domain object, including capability statuses and `dns_records`, so no per-domain follow-up read is needed. Filter with `name` to find a specific domain.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "name",
                      "value": "",
                      "description": "Substring match against the domain name (case-insensitive)."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "created_at",
                      "description": "Field to sort by. Defaults to `created_at`."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"domain\": \"mail.acme.com\",\n      \"vendor\": \"other\",\n      \"status\": \"pending\",\n      \"next\": [\n        {\n          \"kind\": \"operation\"\n        }\n      ],\n      \"dkim\": {\n        \"mode\": \"txt\",\n        \"selector\": \"bird1\",\n        \"key_size\": 2048\n      },\n      \"capabilities\": {\n        \"sending\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        },\n        \"return_path\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        },\n        \"dmarc\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        },\n        \"tracking\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        },\n        \"inbound\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        }\n      },\n      \"dns_records\": [\n        {\n          \"type\": \"TXT\",\n          \"purpose\": \"dkim\",\n          \"state\": \"active\",\n          \"status\": \"pending\"\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "de78cdab-6f67-847d-8d1e-ca23f77a531f",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List sending domains",
                "description": {
                  "content": "Returns all sending domains for the current workspace, newest first by default. Each item is the full domain object, including capability statuses and `dns_records`, so no per-domain follow-up read is needed. Filter with `name` to find a specific domain.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "name",
                      "value": "",
                      "description": "Substring match against the domain name (case-insensitive)."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "created_at",
                      "description": "Field to sort by. Defaults to `created_at`."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"domain\": \"mail.acme.com\",\n      \"vendor\": \"other\",\n      \"status\": \"pending\",\n      \"next\": [\n        {\n          \"kind\": \"operation\"\n        }\n      ],\n      \"dkim\": {\n        \"mode\": \"txt\",\n        \"selector\": \"bird1\",\n        \"key_size\": 2048\n      },\n      \"capabilities\": {\n        \"sending\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        },\n        \"return_path\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        },\n        \"dmarc\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        },\n        \"tracking\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        },\n        \"inbound\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        }\n      },\n      \"dns_records\": [\n        {\n          \"type\": \"TXT\",\n          \"purpose\": \"dkim\",\n          \"state\": \"active\",\n          \"status\": \"pending\"\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2f167579-5108-8191-8386-53fa5808c689",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List sending domains",
                "description": {
                  "content": "Returns all sending domains for the current workspace, newest first by default. Each item is the full domain object, including capability statuses and `dns_records`, so no per-domain follow-up read is needed. Filter with `name` to find a specific domain.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "name",
                      "value": "",
                      "description": "Substring match against the domain name (case-insensitive)."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "created_at",
                      "description": "Field to sort by. Defaults to `created_at`."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"domain\": \"mail.acme.com\",\n      \"vendor\": \"other\",\n      \"status\": \"pending\",\n      \"next\": [\n        {\n          \"kind\": \"operation\"\n        }\n      ],\n      \"dkim\": {\n        \"mode\": \"txt\",\n        \"selector\": \"bird1\",\n        \"key_size\": 2048\n      },\n      \"capabilities\": {\n        \"sending\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        },\n        \"return_path\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        },\n        \"dmarc\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        },\n        \"tracking\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        },\n        \"inbound\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        }\n      },\n      \"dns_records\": [\n        {\n          \"type\": \"TXT\",\n          \"purpose\": \"dkim\",\n          \"state\": \"active\",\n          \"status\": \"pending\"\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7121de0f-a672-87ba-85b7-55d2adc42a91",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List sending domains",
                "description": {
                  "content": "Returns all sending domains for the current workspace, newest first by default. Each item is the full domain object, including capability statuses and `dns_records`, so no per-domain follow-up read is needed. Filter with `name` to find a specific domain.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "name",
                      "value": "",
                      "description": "Substring match against the domain name (case-insensitive)."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "created_at",
                      "description": "Field to sort by. Defaults to `created_at`."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"domain\": \"mail.acme.com\",\n      \"vendor\": \"other\",\n      \"status\": \"pending\",\n      \"next\": [\n        {\n          \"kind\": \"operation\"\n        }\n      ],\n      \"dkim\": {\n        \"mode\": \"txt\",\n        \"selector\": \"bird1\",\n        \"key_size\": 2048\n      },\n      \"capabilities\": {\n        \"sending\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        },\n        \"return_path\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        },\n        \"dmarc\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        },\n        \"tracking\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        },\n        \"inbound\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        }\n      },\n      \"dns_records\": [\n        {\n          \"type\": \"TXT\",\n          \"purpose\": \"dkim\",\n          \"state\": \"active\",\n          \"status\": \"pending\"\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "686e10d6-62ae-81cc-8297-463c73e192c3",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List sending domains",
                "description": {
                  "content": "Returns all sending domains for the current workspace, newest first by default. Each item is the full domain object, including capability statuses and `dns_records`, so no per-domain follow-up read is needed. Filter with `name` to find a specific domain.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "name",
                      "value": "",
                      "description": "Substring match against the domain name (case-insensitive)."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "created_at",
                      "description": "Field to sort by. Defaults to `created_at`."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"domain\": \"mail.acme.com\",\n      \"vendor\": \"other\",\n      \"status\": \"pending\",\n      \"next\": [\n        {\n          \"kind\": \"operation\"\n        }\n      ],\n      \"dkim\": {\n        \"mode\": \"txt\",\n        \"selector\": \"bird1\",\n        \"key_size\": 2048\n      },\n      \"capabilities\": {\n        \"sending\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        },\n        \"return_path\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        },\n        \"dmarc\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        },\n        \"tracking\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        },\n        \"inbound\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        }\n      },\n      \"dns_records\": [\n        {\n          \"type\": \"TXT\",\n          \"purpose\": \"dkim\",\n          \"state\": \"active\",\n          \"status\": \"pending\"\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6d1022a2-8e47-816d-8337-4ecd794eca0d",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List sending domains",
                "description": {
                  "content": "Returns all sending domains for the current workspace, newest first by default. Each item is the full domain object, including capability statuses and `dns_records`, so no per-domain follow-up read is needed. Filter with `name` to find a specific domain.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "name",
                      "value": "",
                      "description": "Substring match against the domain name (case-insensitive)."
                    },
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "created_at",
                      "description": "Field to sort by. Defaults to `created_at`."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"domain\": \"mail.acme.com\",\n      \"vendor\": \"other\",\n      \"status\": \"pending\",\n      \"next\": [\n        {\n          \"kind\": \"operation\"\n        }\n      ],\n      \"dkim\": {\n        \"mode\": \"txt\",\n        \"selector\": \"bird1\",\n        \"key_size\": 2048\n      },\n      \"capabilities\": {\n        \"sending\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        },\n        \"return_path\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        },\n        \"dmarc\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        },\n        \"tracking\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        },\n        \"inbound\": {\n          \"status\": \"verified\",\n          \"pending\": {\n            \"domain\": \"rp.mail.acme.com\",\n            \"status\": \"pending\"\n          }\n        }\n      },\n      \"dns_records\": [\n        {\n          \"type\": \"TXT\",\n          \"purpose\": \"dkim\",\n          \"state\": \"active\",\n          \"status\": \"pending\"\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "b9db5771-568c-89f5-868b-ab02afd79abf",
          "name": "Update a sending domain",
          "request": {
            "name": "Update a sending domain",
            "description": {
              "content": "Updates settings and configuration on a sending domain. `settings`\nchanges apply immediately. Changes to `return_path`, `tracking`, or\n`dkim` on a verified capability are staged: the current configuration\nkeeps serving until the new one's DNS records verify, then the change\nis promoted automatically. Staged values are visible under\n`capabilities.*.pending`. The records to publish appear in\n`dns_records` with `state: pending`.\n\nInvalid combinations are rejected. Enabling tracking toggles without a\ntracking domain, or removing the tracking domain while a toggle is on,\nreturns `409`. Enabling inbound receiving has verification\nprerequisites that return `422`. Each rule is detailed on its field.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "domains",
                ":domain_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "domain_id",
                  "description": "(Required) ID of the domain to update."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "PATCH",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"settings\": {\n    \"click_tracking\": true,\n    \"open_tracking\": true\n  },\n  \"tracking\": {\n    \"name\": \"links\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "96f807b0-5bc6-8f47-85dc-64ef8d195b9f",
              "name": "Domain updated.",
              "originalRequest": {
                "name": "Update a sending domain",
                "description": {
                  "content": "Updates settings and configuration on a sending domain. `settings`\nchanges apply immediately. Changes to `return_path`, `tracking`, or\n`dkim` on a verified capability are staged: the current configuration\nkeeps serving until the new one's DNS records verify, then the change\nis promoted automatically. Staged values are visible under\n`capabilities.*.pending`. The records to publish appear in\n`dns_records` with `state: pending`.\n\nInvalid combinations are rejected. Enabling tracking toggles without a\ntracking domain, or removing the tracking domain while a toggle is on,\nreturns `409`. Enabling inbound receiving has verification\nprerequisites that return `422`. Each rule is detailed on its field.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"settings\": {\n    \"click_tracking\": true,\n    \"open_tracking\": true\n  },\n  \"tracking\": {\n    \"name\": \"links\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3f01cc0e-fd32-8b67-897f-ac59913909a1",
              "name": "Bad request",
              "originalRequest": {
                "name": "Update a sending domain",
                "description": {
                  "content": "Updates settings and configuration on a sending domain. `settings`\nchanges apply immediately. Changes to `return_path`, `tracking`, or\n`dkim` on a verified capability are staged: the current configuration\nkeeps serving until the new one's DNS records verify, then the change\nis promoted automatically. Staged values are visible under\n`capabilities.*.pending`. The records to publish appear in\n`dns_records` with `state: pending`.\n\nInvalid combinations are rejected. Enabling tracking toggles without a\ntracking domain, or removing the tracking domain while a toggle is on,\nreturns `409`. Enabling inbound receiving has verification\nprerequisites that return `422`. Each rule is detailed on its field.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"settings\": {\n    \"click_tracking\": true,\n    \"open_tracking\": true\n  },\n  \"tracking\": {\n    \"name\": \"links\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9f8a4bd9-7724-809d-89cf-bc6b838d1eea",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Update a sending domain",
                "description": {
                  "content": "Updates settings and configuration on a sending domain. `settings`\nchanges apply immediately. Changes to `return_path`, `tracking`, or\n`dkim` on a verified capability are staged: the current configuration\nkeeps serving until the new one's DNS records verify, then the change\nis promoted automatically. Staged values are visible under\n`capabilities.*.pending`. The records to publish appear in\n`dns_records` with `state: pending`.\n\nInvalid combinations are rejected. Enabling tracking toggles without a\ntracking domain, or removing the tracking domain while a toggle is on,\nreturns `409`. Enabling inbound receiving has verification\nprerequisites that return `422`. Each rule is detailed on its field.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"settings\": {\n    \"click_tracking\": true,\n    \"open_tracking\": true\n  },\n  \"tracking\": {\n    \"name\": \"links\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c9fa1f0b-e776-8a4d-8bdf-b6b3e24a3ce7",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Update a sending domain",
                "description": {
                  "content": "Updates settings and configuration on a sending domain. `settings`\nchanges apply immediately. Changes to `return_path`, `tracking`, or\n`dkim` on a verified capability are staged: the current configuration\nkeeps serving until the new one's DNS records verify, then the change\nis promoted automatically. Staged values are visible under\n`capabilities.*.pending`. The records to publish appear in\n`dns_records` with `state: pending`.\n\nInvalid combinations are rejected. Enabling tracking toggles without a\ntracking domain, or removing the tracking domain while a toggle is on,\nreturns `409`. Enabling inbound receiving has verification\nprerequisites that return `422`. Each rule is detailed on its field.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"settings\": {\n    \"click_tracking\": true,\n    \"open_tracking\": true\n  },\n  \"tracking\": {\n    \"name\": \"links\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "12ff559c-4ede-85b1-8562-2870a1246e55",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Update a sending domain",
                "description": {
                  "content": "Updates settings and configuration on a sending domain. `settings`\nchanges apply immediately. Changes to `return_path`, `tracking`, or\n`dkim` on a verified capability are staged: the current configuration\nkeeps serving until the new one's DNS records verify, then the change\nis promoted automatically. Staged values are visible under\n`capabilities.*.pending`. The records to publish appear in\n`dns_records` with `state: pending`.\n\nInvalid combinations are rejected. Enabling tracking toggles without a\ntracking domain, or removing the tracking domain while a toggle is on,\nreturns `409`. Enabling inbound receiving has verification\nprerequisites that return `422`. Each rule is detailed on its field.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"settings\": {\n    \"click_tracking\": true,\n    \"open_tracking\": true\n  },\n  \"tracking\": {\n    \"name\": \"links\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b74670e8-607c-8a75-84e6-368573d76372",
              "name": "Resource conflict",
              "originalRequest": {
                "name": "Update a sending domain",
                "description": {
                  "content": "Updates settings and configuration on a sending domain. `settings`\nchanges apply immediately. Changes to `return_path`, `tracking`, or\n`dkim` on a verified capability are staged: the current configuration\nkeeps serving until the new one's DNS records verify, then the change\nis promoted automatically. Staged values are visible under\n`capabilities.*.pending`. The records to publish appear in\n`dns_records` with `state: pending`.\n\nInvalid combinations are rejected. Enabling tracking toggles without a\ntracking domain, or removing the tracking domain while a toggle is on,\nreturns `409`. Enabling inbound receiving has verification\nprerequisites that return `422`. Each rule is detailed on its field.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"settings\": {\n    \"click_tracking\": true,\n    \"open_tracking\": true\n  },\n  \"tracking\": {\n    \"name\": \"links\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "bb67972e-628e-8008-8122-0a8aa340a514",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Update a sending domain",
                "description": {
                  "content": "Updates settings and configuration on a sending domain. `settings`\nchanges apply immediately. Changes to `return_path`, `tracking`, or\n`dkim` on a verified capability are staged: the current configuration\nkeeps serving until the new one's DNS records verify, then the change\nis promoted automatically. Staged values are visible under\n`capabilities.*.pending`. The records to publish appear in\n`dns_records` with `state: pending`.\n\nInvalid combinations are rejected. Enabling tracking toggles without a\ntracking domain, or removing the tracking domain while a toggle is on,\nreturns `409`. Enabling inbound receiving has verification\nprerequisites that return `422`. Each rule is detailed on its field.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"settings\": {\n    \"click_tracking\": true,\n    \"open_tracking\": true\n  },\n  \"tracking\": {\n    \"name\": \"links\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d90eb25b-ae5d-82b2-8418-42c976486732",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Update a sending domain",
                "description": {
                  "content": "Updates settings and configuration on a sending domain. `settings`\nchanges apply immediately. Changes to `return_path`, `tracking`, or\n`dkim` on a verified capability are staged: the current configuration\nkeeps serving until the new one's DNS records verify, then the change\nis promoted automatically. Staged values are visible under\n`capabilities.*.pending`. The records to publish appear in\n`dns_records` with `state: pending`.\n\nInvalid combinations are rejected. Enabling tracking toggles without a\ntracking domain, or removing the tracking domain while a toggle is on,\nreturns `409`. Enabling inbound receiving has verification\nprerequisites that return `422`. Each rule is detailed on its field.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"settings\": {\n    \"click_tracking\": true,\n    \"open_tracking\": true\n  },\n  \"tracking\": {\n    \"name\": \"links\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4da536a2-d454-8bfb-87af-c371d51e5ce2",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Update a sending domain",
                "description": {
                  "content": "Updates settings and configuration on a sending domain. `settings`\nchanges apply immediately. Changes to `return_path`, `tracking`, or\n`dkim` on a verified capability are staged: the current configuration\nkeeps serving until the new one's DNS records verify, then the change\nis promoted automatically. Staged values are visible under\n`capabilities.*.pending`. The records to publish appear in\n`dns_records` with `state: pending`.\n\nInvalid combinations are rejected. Enabling tracking toggles without a\ntracking domain, or removing the tracking domain while a toggle is on,\nreturns `409`. Enabling inbound receiving has verification\nprerequisites that return `422`. Each rule is detailed on its field.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to update."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"settings\": {\n    \"click_tracking\": true,\n    \"open_tracking\": true\n  },\n  \"tracking\": {\n    \"name\": \"links\"\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "753cb6a1-96a9-89cd-8a90-2093e0c207cd",
          "name": "Get a sending domain",
          "request": {
            "name": "Get a sending domain",
            "description": {
              "content": "Returns the domain with its capability statuses and every DNS record's current verification state. This read reports the stored result of the last check. To run a fresh DNS check, use [Trigger domain verification](https://bird.com/docs/api/reference/verify-domain).\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "domains",
                ":domain_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "domain_id",
                  "description": "(Required) ID of the domain to fetch."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "020704e5-14de-8e23-87b9-f0698ddab720",
              "name": "The sending domain.",
              "originalRequest": {
                "name": "Get a sending domain",
                "description": {
                  "content": "Returns the domain with its capability statuses and every DNS record's current verification state. This read reports the stored result of the last check. To run a fresh DNS check, use [Trigger domain verification](https://bird.com/docs/api/reference/verify-domain).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "46dad14e-9304-8a4d-8a82-5d36f71c5560",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a sending domain",
                "description": {
                  "content": "Returns the domain with its capability statuses and every DNS record's current verification state. This read reports the stored result of the last check. To run a fresh DNS check, use [Trigger domain verification](https://bird.com/docs/api/reference/verify-domain).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3139f467-9d83-810f-80b6-99ce96d90955",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a sending domain",
                "description": {
                  "content": "Returns the domain with its capability statuses and every DNS record's current verification state. This read reports the stored result of the last check. To run a fresh DNS check, use [Trigger domain verification](https://bird.com/docs/api/reference/verify-domain).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0f7add73-9cd4-8135-821a-2e7c3f8e80af",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a sending domain",
                "description": {
                  "content": "Returns the domain with its capability statuses and every DNS record's current verification state. This read reports the stored result of the last check. To run a fresh DNS check, use [Trigger domain verification](https://bird.com/docs/api/reference/verify-domain).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "eefc4a2d-4cbf-8f2f-80f0-25fb48d7cfab",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a sending domain",
                "description": {
                  "content": "Returns the domain with its capability statuses and every DNS record's current verification state. This read reports the stored result of the last check. To run a fresh DNS check, use [Trigger domain verification](https://bird.com/docs/api/reference/verify-domain).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2728636f-e52a-886e-8ef0-152ffd122a91",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a sending domain",
                "description": {
                  "content": "Returns the domain with its capability statuses and every DNS record's current verification state. This read reports the stored result of the last check. To run a fresh DNS check, use [Trigger domain verification](https://bird.com/docs/api/reference/verify-domain).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "29a39cdd-b0d4-8481-8288-bdcb629b5f3d",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a sending domain",
                "description": {
                  "content": "Returns the domain with its capability statuses and every DNS record's current verification state. This read reports the stored result of the last check. To run a fresh DNS check, use [Trigger domain verification](https://bird.com/docs/api/reference/verify-domain).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to fetch."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "422e6bd5-4718-8da2-8ac6-755e749e9367",
          "name": "Delete a sending domain",
          "request": {
            "name": "Delete a sending domain",
            "description": {
              "content": "Removes the domain and revokes its sender authorization. New sends from a deleted domain are rejected. Historical statistics and events for past sends from this domain are preserved.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "domains",
                ":domain_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "domain_id",
                  "description": "(Required) ID of the domain to delete."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "DELETE"
          },
          "response": [
            {
              "id": "24c974d5-b596-89d0-8d0f-5d719e6ffc11",
              "name": "Domain deleted.",
              "originalRequest": {
                "name": "Delete a sending domain",
                "description": {
                  "content": "Removes the domain and revokes its sender authorization. New sends from a deleted domain are rejected. Historical statistics and events for past sends from this domain are preserved.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to delete."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "0b2d2433-e568-8cb6-838d-289116b28b95",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Delete a sending domain",
                "description": {
                  "content": "Removes the domain and revokes its sender authorization. New sends from a deleted domain are rejected. Historical statistics and events for past sends from this domain are preserved.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to delete."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e69e4ec3-4be2-809a-85e9-ba3e125df75a",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Delete a sending domain",
                "description": {
                  "content": "Removes the domain and revokes its sender authorization. New sends from a deleted domain are rejected. Historical statistics and events for past sends from this domain are preserved.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to delete."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ea1f8273-0b23-88e8-8b0a-786870eb7702",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Delete a sending domain",
                "description": {
                  "content": "Removes the domain and revokes its sender authorization. New sends from a deleted domain are rejected. Historical statistics and events for past sends from this domain are preserved.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to delete."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d4b0ae9d-ca45-8ba6-8a93-7073663859d0",
              "name": "Resource conflict",
              "originalRequest": {
                "name": "Delete a sending domain",
                "description": {
                  "content": "Removes the domain and revokes its sender authorization. New sends from a deleted domain are rejected. Historical statistics and events for past sends from this domain are preserved.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to delete."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "081b4feb-eeaa-838a-8b87-c1a82b15bcb7",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Delete a sending domain",
                "description": {
                  "content": "Removes the domain and revokes its sender authorization. New sends from a deleted domain are rejected. Historical statistics and events for past sends from this domain are preserved.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to delete."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "92466a58-484e-8045-8aec-c466f67ad76d",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Delete a sending domain",
                "description": {
                  "content": "Removes the domain and revokes its sender authorization. New sends from a deleted domain are rejected. Historical statistics and events for past sends from this domain are preserved.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to delete."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "eb9395e5-3071-8095-80c5-7e25ffbb20e6",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Delete a sending domain",
                "description": {
                  "content": "Removes the domain and revokes its sender authorization. New sends from a deleted domain are rejected. Historical statistics and events for past sends from this domain are preserved.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to delete."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "7ee6492c-8d1a-8412-8d63-122771d370ae",
          "name": "List domain events",
          "request": {
            "name": "List domain events",
            "description": {
              "content": "Returns the domain's activity history, newest first by default:\n\n- Registration.\n- A configuration change to settings, return path, or tracking.\n- A verification status transition for the domain or one of its individual DNS records.\n\nUse it to see when and why a domain's status changed, rather than\npolling [Get a sending domain](https://bird.com/docs/api/reference/get-domain).\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "domains",
                ":domain_id",
                "events"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "sort",
                  "value": "created_at",
                  "description": "Field to sort by. Defaults to `created_at`."
                },
                {
                  "disabled": false,
                  "key": "order",
                  "value": "desc",
                  "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "domain_id",
                  "description": "(Required) ID of the domain whose events to list."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "37b77b9d-556f-8499-836a-c4a58700ba64",
              "name": "A page of domain events.",
              "originalRequest": {
                "name": "List domain events",
                "description": {
                  "content": "Returns the domain's activity history, newest first by default:\n\n- Registration.\n- A configuration change to settings, return path, or tracking.\n- A verification status transition for the domain or one of its individual DNS records.\n\nUse it to see when and why a domain's status changed, rather than\npolling [Get a sending domain](https://bird.com/docs/api/reference/get-domain).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "created_at",
                      "description": "Field to sort by. Defaults to `created_at`."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain whose events to list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"dev_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"domain.status_changed\",\n      \"summary\": \"Domain verified — ownership confirmed.\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "45a0dfc4-fb9c-8c14-8468-6d79648de8fb",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List domain events",
                "description": {
                  "content": "Returns the domain's activity history, newest first by default:\n\n- Registration.\n- A configuration change to settings, return path, or tracking.\n- A verification status transition for the domain or one of its individual DNS records.\n\nUse it to see when and why a domain's status changed, rather than\npolling [Get a sending domain](https://bird.com/docs/api/reference/get-domain).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "created_at",
                      "description": "Field to sort by. Defaults to `created_at`."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain whose events to list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"dev_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"domain.status_changed\",\n      \"summary\": \"Domain verified — ownership confirmed.\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8ff28e83-bc39-8463-8175-c37904472596",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List domain events",
                "description": {
                  "content": "Returns the domain's activity history, newest first by default:\n\n- Registration.\n- A configuration change to settings, return path, or tracking.\n- A verification status transition for the domain or one of its individual DNS records.\n\nUse it to see when and why a domain's status changed, rather than\npolling [Get a sending domain](https://bird.com/docs/api/reference/get-domain).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "created_at",
                      "description": "Field to sort by. Defaults to `created_at`."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain whose events to list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"dev_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"domain.status_changed\",\n      \"summary\": \"Domain verified — ownership confirmed.\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "55c46a7b-f66d-8d85-8f83-b98419228277",
              "name": "Resource not found",
              "originalRequest": {
                "name": "List domain events",
                "description": {
                  "content": "Returns the domain's activity history, newest first by default:\n\n- Registration.\n- A configuration change to settings, return path, or tracking.\n- A verification status transition for the domain or one of its individual DNS records.\n\nUse it to see when and why a domain's status changed, rather than\npolling [Get a sending domain](https://bird.com/docs/api/reference/get-domain).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "created_at",
                      "description": "Field to sort by. Defaults to `created_at`."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain whose events to list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"dev_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"domain.status_changed\",\n      \"summary\": \"Domain verified — ownership confirmed.\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4d2f42da-a06e-83dc-8d31-16fe8f61409a",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List domain events",
                "description": {
                  "content": "Returns the domain's activity history, newest first by default:\n\n- Registration.\n- A configuration change to settings, return path, or tracking.\n- A verification status transition for the domain or one of its individual DNS records.\n\nUse it to see when and why a domain's status changed, rather than\npolling [Get a sending domain](https://bird.com/docs/api/reference/get-domain).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "created_at",
                      "description": "Field to sort by. Defaults to `created_at`."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain whose events to list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"dev_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"domain.status_changed\",\n      \"summary\": \"Domain verified — ownership confirmed.\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e5e6baf4-5fe1-8737-808a-1699e4f18169",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List domain events",
                "description": {
                  "content": "Returns the domain's activity history, newest first by default:\n\n- Registration.\n- A configuration change to settings, return path, or tracking.\n- A verification status transition for the domain or one of its individual DNS records.\n\nUse it to see when and why a domain's status changed, rather than\npolling [Get a sending domain](https://bird.com/docs/api/reference/get-domain).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "created_at",
                      "description": "Field to sort by. Defaults to `created_at`."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain whose events to list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"dev_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"domain.status_changed\",\n      \"summary\": \"Domain verified — ownership confirmed.\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "31d14b95-967d-8698-81ea-c3f2f4f19cd8",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List domain events",
                "description": {
                  "content": "Returns the domain's activity history, newest first by default:\n\n- Registration.\n- A configuration change to settings, return path, or tracking.\n- A verification status transition for the domain or one of its individual DNS records.\n\nUse it to see when and why a domain's status changed, rather than\npolling [Get a sending domain](https://bird.com/docs/api/reference/get-domain).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "events"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "created_at",
                      "description": "Field to sort by. Defaults to `created_at`."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain whose events to list."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"dev_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"type\": \"domain.status_changed\",\n      \"summary\": \"Domain verified — ownership confirmed.\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "a0e5ec86-ad29-8ac8-88ab-e708aa6c082e",
          "name": "Verify a domain",
          "request": {
            "name": "Verify a domain",
            "description": {
              "content": "Runs a fresh DNS check across the domain's records (DKIM, return path,\nDMARC, tracking, inbound MX, and any staged changes) and returns the\nupdated domain. Use it for an immediate result after publishing or\ncorrecting records. [Get a sending domain](https://bird.com/docs/api/reference/get-domain)\nonly reports the last stored result. Published records are also re-checked\nfor you automatically in the background.\n\nA `200` with records still `pending` is not a failure: the records were\nnot found yet, which is normal while DNS propagates (minutes to hours).\nRecently verified records are not re-queried, so the call is safe to\nrepeat while you wait.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "domains",
                ":domain_id",
                "verify"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "domain_id",
                  "description": "(Required) ID of the domain to verify."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST"
          },
          "response": [
            {
              "id": "a7dc94ab-dfe4-8aea-8582-ffc8f42ef027",
              "name": "Verification result.",
              "originalRequest": {
                "name": "Verify a domain",
                "description": {
                  "content": "Runs a fresh DNS check across the domain's records (DKIM, return path,\nDMARC, tracking, inbound MX, and any staged changes) and returns the\nupdated domain. Use it for an immediate result after publishing or\ncorrecting records. [Get a sending domain](https://bird.com/docs/api/reference/get-domain)\nonly reports the last stored result. Published records are also re-checked\nfor you automatically in the background.\n\nA `200` with records still `pending` is not a failure: the records were\nnot found yet, which is normal while DNS propagates (minutes to hours).\nRecently verified records are not re-queried, so the call is safe to\nrepeat while you wait.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "verify"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to verify."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0bd45f84-392e-8446-8c54-83e9b629e0aa",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Verify a domain",
                "description": {
                  "content": "Runs a fresh DNS check across the domain's records (DKIM, return path,\nDMARC, tracking, inbound MX, and any staged changes) and returns the\nupdated domain. Use it for an immediate result after publishing or\ncorrecting records. [Get a sending domain](https://bird.com/docs/api/reference/get-domain)\nonly reports the last stored result. Published records are also re-checked\nfor you automatically in the background.\n\nA `200` with records still `pending` is not a failure: the records were\nnot found yet, which is normal while DNS propagates (minutes to hours).\nRecently verified records are not re-queried, so the call is safe to\nrepeat while you wait.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "verify"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to verify."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ee28fbc8-15e9-8357-8b86-194fc96b0a43",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Verify a domain",
                "description": {
                  "content": "Runs a fresh DNS check across the domain's records (DKIM, return path,\nDMARC, tracking, inbound MX, and any staged changes) and returns the\nupdated domain. Use it for an immediate result after publishing or\ncorrecting records. [Get a sending domain](https://bird.com/docs/api/reference/get-domain)\nonly reports the last stored result. Published records are also re-checked\nfor you automatically in the background.\n\nA `200` with records still `pending` is not a failure: the records were\nnot found yet, which is normal while DNS propagates (minutes to hours).\nRecently verified records are not re-queried, so the call is safe to\nrepeat while you wait.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "verify"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to verify."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b78adbb4-059b-8486-8034-f85e2980777b",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Verify a domain",
                "description": {
                  "content": "Runs a fresh DNS check across the domain's records (DKIM, return path,\nDMARC, tracking, inbound MX, and any staged changes) and returns the\nupdated domain. Use it for an immediate result after publishing or\ncorrecting records. [Get a sending domain](https://bird.com/docs/api/reference/get-domain)\nonly reports the last stored result. Published records are also re-checked\nfor you automatically in the background.\n\nA `200` with records still `pending` is not a failure: the records were\nnot found yet, which is normal while DNS propagates (minutes to hours).\nRecently verified records are not re-queried, so the call is safe to\nrepeat while you wait.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "verify"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to verify."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9b50d6f7-ef55-8e66-8ae2-d5820d6be44b",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Verify a domain",
                "description": {
                  "content": "Runs a fresh DNS check across the domain's records (DKIM, return path,\nDMARC, tracking, inbound MX, and any staged changes) and returns the\nupdated domain. Use it for an immediate result after publishing or\ncorrecting records. [Get a sending domain](https://bird.com/docs/api/reference/get-domain)\nonly reports the last stored result. Published records are also re-checked\nfor you automatically in the background.\n\nA `200` with records still `pending` is not a failure: the records were\nnot found yet, which is normal while DNS propagates (minutes to hours).\nRecently verified records are not re-queried, so the call is safe to\nrepeat while you wait.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "verify"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to verify."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ba1a6df0-43d5-88e7-8b77-e142100a089d",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Verify a domain",
                "description": {
                  "content": "Runs a fresh DNS check across the domain's records (DKIM, return path,\nDMARC, tracking, inbound MX, and any staged changes) and returns the\nupdated domain. Use it for an immediate result after publishing or\ncorrecting records. [Get a sending domain](https://bird.com/docs/api/reference/get-domain)\nonly reports the last stored result. Published records are also re-checked\nfor you automatically in the background.\n\nA `200` with records still `pending` is not a failure: the records were\nnot found yet, which is normal while DNS propagates (minutes to hours).\nRecently verified records are not re-queried, so the call is safe to\nrepeat while you wait.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "verify"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to verify."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ddff6c0a-5dab-8b66-8896-13c5abec9b92",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Verify a domain",
                "description": {
                  "content": "Runs a fresh DNS check across the domain's records (DKIM, return path,\nDMARC, tracking, inbound MX, and any staged changes) and returns the\nupdated domain. Use it for an immediate result after publishing or\ncorrecting records. [Get a sending domain](https://bird.com/docs/api/reference/get-domain)\nonly reports the last stored result. Published records are also re-checked\nfor you automatically in the background.\n\nA `200` with records still `pending` is not a failure: the records were\nnot found yet, which is normal while DNS propagates (minutes to hours).\nRecently verified records are not re-queried, so the call is safe to\nrepeat while you wait.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "verify"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to verify."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "61ae6b72-ac8d-8fd4-8411-1620436d6229",
          "name": "Release link tracking configuration",
          "request": {
            "name": "Release link tracking configuration",
            "description": {
              "content": "Removes the link tracking configuration from this domain and releases\nthe claim on its tracking subdomain, so another organization can\nconfigure the same hostname. Click and open tracking are switched off\nas part of the release. Tracking links in previously delivered messages\nstop resolving once no other domain in your organization uses the same\ntracking hostname.\n\nThis is the hard removal. To swap or remove tracking while keeping\npreviously sent links working, use\n[Update a sending domain](https://bird.com/docs/api/reference/update-domain) instead,\nwhich retires the old records gradually. A domain with no tracking\nconfigured returns `422`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "domains",
                ":domain_id",
                "tracking",
                "release"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "domain_id",
                  "description": "(Required) ID of the domain to release tracking for."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST"
          },
          "response": [
            {
              "id": "22930216-c599-8fd7-846b-24963a4c4c9a",
              "name": "Updated domain after tracking release.",
              "originalRequest": {
                "name": "Release link tracking configuration",
                "description": {
                  "content": "Removes the link tracking configuration from this domain and releases\nthe claim on its tracking subdomain, so another organization can\nconfigure the same hostname. Click and open tracking are switched off\nas part of the release. Tracking links in previously delivered messages\nstop resolving once no other domain in your organization uses the same\ntracking hostname.\n\nThis is the hard removal. To swap or remove tracking while keeping\npreviously sent links working, use\n[Update a sending domain](https://bird.com/docs/api/reference/update-domain) instead,\nwhich retires the old records gradually. A domain with no tracking\nconfigured returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "tracking",
                    "release"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to release tracking for."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c938177b-7141-8377-84b3-d1e03c9afb9e",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Release link tracking configuration",
                "description": {
                  "content": "Removes the link tracking configuration from this domain and releases\nthe claim on its tracking subdomain, so another organization can\nconfigure the same hostname. Click and open tracking are switched off\nas part of the release. Tracking links in previously delivered messages\nstop resolving once no other domain in your organization uses the same\ntracking hostname.\n\nThis is the hard removal. To swap or remove tracking while keeping\npreviously sent links working, use\n[Update a sending domain](https://bird.com/docs/api/reference/update-domain) instead,\nwhich retires the old records gradually. A domain with no tracking\nconfigured returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "tracking",
                    "release"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to release tracking for."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9a503bb5-1f51-8a6f-8b87-a9b66a966c23",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Release link tracking configuration",
                "description": {
                  "content": "Removes the link tracking configuration from this domain and releases\nthe claim on its tracking subdomain, so another organization can\nconfigure the same hostname. Click and open tracking are switched off\nas part of the release. Tracking links in previously delivered messages\nstop resolving once no other domain in your organization uses the same\ntracking hostname.\n\nThis is the hard removal. To swap or remove tracking while keeping\npreviously sent links working, use\n[Update a sending domain](https://bird.com/docs/api/reference/update-domain) instead,\nwhich retires the old records gradually. A domain with no tracking\nconfigured returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "tracking",
                    "release"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to release tracking for."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ca5a0bab-34ff-8b43-894c-6678773b6b93",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Release link tracking configuration",
                "description": {
                  "content": "Removes the link tracking configuration from this domain and releases\nthe claim on its tracking subdomain, so another organization can\nconfigure the same hostname. Click and open tracking are switched off\nas part of the release. Tracking links in previously delivered messages\nstop resolving once no other domain in your organization uses the same\ntracking hostname.\n\nThis is the hard removal. To swap or remove tracking while keeping\npreviously sent links working, use\n[Update a sending domain](https://bird.com/docs/api/reference/update-domain) instead,\nwhich retires the old records gradually. A domain with no tracking\nconfigured returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "tracking",
                    "release"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to release tracking for."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c096ffd8-815e-80e5-8f75-e3ebb8bf1bce",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Release link tracking configuration",
                "description": {
                  "content": "Removes the link tracking configuration from this domain and releases\nthe claim on its tracking subdomain, so another organization can\nconfigure the same hostname. Click and open tracking are switched off\nas part of the release. Tracking links in previously delivered messages\nstop resolving once no other domain in your organization uses the same\ntracking hostname.\n\nThis is the hard removal. To swap or remove tracking while keeping\npreviously sent links working, use\n[Update a sending domain](https://bird.com/docs/api/reference/update-domain) instead,\nwhich retires the old records gradually. A domain with no tracking\nconfigured returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "tracking",
                    "release"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to release tracking for."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "647896cf-8326-833e-8462-c3412434db58",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Release link tracking configuration",
                "description": {
                  "content": "Removes the link tracking configuration from this domain and releases\nthe claim on its tracking subdomain, so another organization can\nconfigure the same hostname. Click and open tracking are switched off\nas part of the release. Tracking links in previously delivered messages\nstop resolving once no other domain in your organization uses the same\ntracking hostname.\n\nThis is the hard removal. To swap or remove tracking while keeping\npreviously sent links working, use\n[Update a sending domain](https://bird.com/docs/api/reference/update-domain) instead,\nwhich retires the old records gradually. A domain with no tracking\nconfigured returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "tracking",
                    "release"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to release tracking for."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e712ce7f-1867-8c8e-8304-5db9318389df",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Release link tracking configuration",
                "description": {
                  "content": "Removes the link tracking configuration from this domain and releases\nthe claim on its tracking subdomain, so another organization can\nconfigure the same hostname. Click and open tracking are switched off\nas part of the release. Tracking links in previously delivered messages\nstop resolving once no other domain in your organization uses the same\ntracking hostname.\n\nThis is the hard removal. To swap or remove tracking while keeping\npreviously sent links working, use\n[Update a sending domain](https://bird.com/docs/api/reference/update-domain) instead,\nwhich retires the old records gradually. A domain with no tracking\nconfigured returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "tracking",
                    "release"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain to release tracking for."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"vendor\": \"other\",\n  \"status\": \"pending\",\n  \"next\": [\n    {\n      \"kind\": \"operation\"\n    }\n  ],\n  \"dkim\": {\n    \"mode\": \"txt\",\n    \"selector\": \"bird1\",\n    \"key_size\": 2048\n  },\n  \"capabilities\": {\n    \"sending\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"return_path\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"dmarc\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"tracking\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    },\n    \"inbound\": {\n      \"status\": \"verified\",\n      \"pending\": {\n        \"domain\": \"rp.mail.acme.com\",\n        \"status\": \"pending\"\n      }\n    }\n  },\n  \"dns_records\": [\n    {\n      \"type\": \"TXT\",\n      \"purpose\": \"dkim\",\n      \"state\": \"active\",\n      \"status\": \"pending\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "08a9da78-253f-876a-8e1b-66f8cfa5c4bd",
          "name": "Share a domain's DNS records by email",
          "request": {
            "name": "Share a domain's DNS records by email",
            "description": {
              "content": "Emails the domain's current DNS records to up to three recipients, so a\ncolleague who manages your DNS can publish them without an account.\nOne email is sent: the first recipient receives it directly and the\nrest are copied. It lists each record's type, name, value, and current\nverification status, and names who requested it.\n\nAn invalid recipient address, or none, returns `422`. Rate limited per\nuser (default 5 calls per hour). Further calls return `429`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "domains",
                ":domain_id",
                "dns-records",
                "share"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "domain_id",
                  "description": "(Required) ID of the domain whose DNS records to share."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"emails\": [\n    \"alice@example.com\",\n    \"bob@example.com\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "5c134dad-0a48-8f17-8899-066f12071c8d",
              "name": "DNS records shared.",
              "originalRequest": {
                "name": "Share a domain's DNS records by email",
                "description": {
                  "content": "Emails the domain's current DNS records to up to three recipients, so a\ncolleague who manages your DNS can publish them without an account.\nOne email is sent: the first recipient receives it directly and the\nrest are copied. It lists each record's type, name, value, and current\nverification status, and names who requested it.\n\nAn invalid recipient address, or none, returns `422`. Rate limited per\nuser (default 5 calls per hour). Further calls return `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "dns-records",
                    "share"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain whose DNS records to share."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"emails\": [\n    \"alice@example.com\",\n    \"bob@example.com\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "130781e8-8876-83b8-8c6a-c9b021515ce6",
              "name": "Bad request",
              "originalRequest": {
                "name": "Share a domain's DNS records by email",
                "description": {
                  "content": "Emails the domain's current DNS records to up to three recipients, so a\ncolleague who manages your DNS can publish them without an account.\nOne email is sent: the first recipient receives it directly and the\nrest are copied. It lists each record's type, name, value, and current\nverification status, and names who requested it.\n\nAn invalid recipient address, or none, returns `422`. Rate limited per\nuser (default 5 calls per hour). Further calls return `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "dns-records",
                    "share"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain whose DNS records to share."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"emails\": [\n    \"alice@example.com\",\n    \"bob@example.com\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ec7fbd42-069c-8c9c-816c-b537d8c4294f",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Share a domain's DNS records by email",
                "description": {
                  "content": "Emails the domain's current DNS records to up to three recipients, so a\ncolleague who manages your DNS can publish them without an account.\nOne email is sent: the first recipient receives it directly and the\nrest are copied. It lists each record's type, name, value, and current\nverification status, and names who requested it.\n\nAn invalid recipient address, or none, returns `422`. Rate limited per\nuser (default 5 calls per hour). Further calls return `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "dns-records",
                    "share"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain whose DNS records to share."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"emails\": [\n    \"alice@example.com\",\n    \"bob@example.com\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "84b6e49f-91bb-8a50-88c0-0b9716135bd0",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Share a domain's DNS records by email",
                "description": {
                  "content": "Emails the domain's current DNS records to up to three recipients, so a\ncolleague who manages your DNS can publish them without an account.\nOne email is sent: the first recipient receives it directly and the\nrest are copied. It lists each record's type, name, value, and current\nverification status, and names who requested it.\n\nAn invalid recipient address, or none, returns `422`. Rate limited per\nuser (default 5 calls per hour). Further calls return `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "dns-records",
                    "share"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain whose DNS records to share."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"emails\": [\n    \"alice@example.com\",\n    \"bob@example.com\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4aa3a336-4278-8647-8b91-e4ed29d54b23",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Share a domain's DNS records by email",
                "description": {
                  "content": "Emails the domain's current DNS records to up to three recipients, so a\ncolleague who manages your DNS can publish them without an account.\nOne email is sent: the first recipient receives it directly and the\nrest are copied. It lists each record's type, name, value, and current\nverification status, and names who requested it.\n\nAn invalid recipient address, or none, returns `422`. Rate limited per\nuser (default 5 calls per hour). Further calls return `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "dns-records",
                    "share"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain whose DNS records to share."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"emails\": [\n    \"alice@example.com\",\n    \"bob@example.com\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e59c33dd-5d3c-8fb0-838d-623650b523c4",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Share a domain's DNS records by email",
                "description": {
                  "content": "Emails the domain's current DNS records to up to three recipients, so a\ncolleague who manages your DNS can publish them without an account.\nOne email is sent: the first recipient receives it directly and the\nrest are copied. It lists each record's type, name, value, and current\nverification status, and names who requested it.\n\nAn invalid recipient address, or none, returns `422`. Rate limited per\nuser (default 5 calls per hour). Further calls return `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "dns-records",
                    "share"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain whose DNS records to share."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"emails\": [\n    \"alice@example.com\",\n    \"bob@example.com\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "81ecec8c-5017-806f-842f-77d9f1f19290",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Share a domain's DNS records by email",
                "description": {
                  "content": "Emails the domain's current DNS records to up to three recipients, so a\ncolleague who manages your DNS can publish them without an account.\nOne email is sent: the first recipient receives it directly and the\nrest are copied. It lists each record's type, name, value, and current\nverification status, and names who requested it.\n\nAn invalid recipient address, or none, returns `422`. Rate limited per\nuser (default 5 calls per hour). Further calls return `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "dns-records",
                    "share"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain whose DNS records to share."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"emails\": [\n    \"alice@example.com\",\n    \"bob@example.com\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "69ebac13-4673-890e-8808-c4315d5e910e",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Share a domain's DNS records by email",
                "description": {
                  "content": "Emails the domain's current DNS records to up to three recipients, so a\ncolleague who manages your DNS can publish them without an account.\nOne email is sent: the first recipient receives it directly and the\nrest are copied. It lists each record's type, name, value, and current\nverification status, and names who requested it.\n\nAn invalid recipient address, or none, returns `422`. Rate limited per\nuser (default 5 calls per hour). Further calls return `429`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "domains",
                    ":domain_id",
                    "dns-records",
                    "share"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "domain_id",
                      "description": "(Required) ID of the domain whose DNS records to share."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"emails\": [\n    \"alice@example.com\",\n    \"bob@example.com\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "115501cf-2a3e-8aa0-8dcb-b8981a72794b",
      "name": "email-suppressions",
      "description": {
        "content": "Email suppression list management.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "da0257cf-e83a-876a-83eb-65e050a67d15",
          "name": "List suppressions",
          "request": {
            "name": "List suppressions",
            "description": {
              "content": "Returns the workspace's suppressed email addresses as a paginated list, newest first. Pass a full address in the `email` parameter to look up a single address before sending to it.\n\nAn address can appear more than once because Bird keeps one suppression record per reason. Delivery stays blocked while any blocking record for the address remains.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "suppressions"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "email",
                  "value": "user@example.com",
                  "description": "Case-insensitive prefix filter on the address. Returns every suppression whose address starts with this value. A full address finds that address's records, while a fragment such as `alice` finds every address beginning with it. The same address can match several records, one per suppression reason.\n"
                },
                {
                  "disabled": true,
                  "key": "reason",
                  "value": "",
                  "description": "Return only suppressions with this reason:\n\n- `hard_bounce`: Delivery permanently failed.\n- `complaint`: The recipient reported a message as spam.\n- `unsubscribe`: The recipient opted out. Deprecated: unsubscribes are now\n  recorded as messaging preferences rather than suppressions, so no new\n  records carry this reason and existing ones are being moved. Expect this\n  value to match nothing.\n- `manual`: Added through the API or dashboard.\n"
                },
                {
                  "disabled": true,
                  "key": "scope_type",
                  "value": "",
                  "description": "Return only suppressions with this scope.\n\nEvery suppression is workspace-wide, so `workspace` returns all of\nthem without narrowing the results. The other five values,\n`category`, `audience`, `topic`, `contact` and `domain`, always come\nback with an empty page.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "0f992657-8e5f-89d7-8a2e-f25ce078487d",
              "name": "Paginated list of suppressions.",
              "originalRequest": {
                "name": "List suppressions",
                "description": {
                  "content": "Returns the workspace's suppressed email addresses as a paginated list, newest first. Pass a full address in the `email` parameter to look up a single address before sending to it.\n\nAn address can appear more than once because Bird keeps one suppression record per reason. Delivery stays blocked while any blocking record for the address remains.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "email",
                      "value": "user@example.com",
                      "description": "Case-insensitive prefix filter on the address. Returns every suppression whose address starts with this value. A full address finds that address's records, while a fragment such as `alice` finds every address beginning with it. The same address can match several records, one per suppression reason.\n"
                    },
                    {
                      "disabled": true,
                      "key": "reason",
                      "value": "",
                      "description": "Return only suppressions with this reason:\n\n- `hard_bounce`: Delivery permanently failed.\n- `complaint`: The recipient reported a message as spam.\n- `unsubscribe`: The recipient opted out. Deprecated: unsubscribes are now\n  recorded as messaging preferences rather than suppressions, so no new\n  records carry this reason and existing ones are being moved. Expect this\n  value to match nothing.\n- `manual`: Added through the API or dashboard.\n"
                    },
                    {
                      "disabled": true,
                      "key": "scope_type",
                      "value": "",
                      "description": "Return only suppressions with this scope.\n\nEvery suppression is workspace-wide, so `workspace` returns all of\nthem without narrowing the results. The other five values,\n`category`, `audience`, `topic`, `contact` and `domain`, always come\nback with an empty page.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"sup_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"email\": \"user@example.com\",\n      \"scope\": {\n        \"type\": \"workspace\",\n        \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n      },\n      \"reason\": \"hard_bounce\",\n      \"origin\": \"bounce_event\",\n      \"applies_to\": \"all\",\n      \"source_email_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"source_recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "107b0492-b830-8c01-8c1a-a042eb17efa8",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List suppressions",
                "description": {
                  "content": "Returns the workspace's suppressed email addresses as a paginated list, newest first. Pass a full address in the `email` parameter to look up a single address before sending to it.\n\nAn address can appear more than once because Bird keeps one suppression record per reason. Delivery stays blocked while any blocking record for the address remains.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "email",
                      "value": "user@example.com",
                      "description": "Case-insensitive prefix filter on the address. Returns every suppression whose address starts with this value. A full address finds that address's records, while a fragment such as `alice` finds every address beginning with it. The same address can match several records, one per suppression reason.\n"
                    },
                    {
                      "disabled": true,
                      "key": "reason",
                      "value": "",
                      "description": "Return only suppressions with this reason:\n\n- `hard_bounce`: Delivery permanently failed.\n- `complaint`: The recipient reported a message as spam.\n- `unsubscribe`: The recipient opted out. Deprecated: unsubscribes are now\n  recorded as messaging preferences rather than suppressions, so no new\n  records carry this reason and existing ones are being moved. Expect this\n  value to match nothing.\n- `manual`: Added through the API or dashboard.\n"
                    },
                    {
                      "disabled": true,
                      "key": "scope_type",
                      "value": "",
                      "description": "Return only suppressions with this scope.\n\nEvery suppression is workspace-wide, so `workspace` returns all of\nthem without narrowing the results. The other five values,\n`category`, `audience`, `topic`, `contact` and `domain`, always come\nback with an empty page.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"sup_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"email\": \"user@example.com\",\n      \"scope\": {\n        \"type\": \"workspace\",\n        \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n      },\n      \"reason\": \"hard_bounce\",\n      \"origin\": \"bounce_event\",\n      \"applies_to\": \"all\",\n      \"source_email_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"source_recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "96c7b47d-5f8c-896c-8bfd-d21db5c0675d",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List suppressions",
                "description": {
                  "content": "Returns the workspace's suppressed email addresses as a paginated list, newest first. Pass a full address in the `email` parameter to look up a single address before sending to it.\n\nAn address can appear more than once because Bird keeps one suppression record per reason. Delivery stays blocked while any blocking record for the address remains.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "email",
                      "value": "user@example.com",
                      "description": "Case-insensitive prefix filter on the address. Returns every suppression whose address starts with this value. A full address finds that address's records, while a fragment such as `alice` finds every address beginning with it. The same address can match several records, one per suppression reason.\n"
                    },
                    {
                      "disabled": true,
                      "key": "reason",
                      "value": "",
                      "description": "Return only suppressions with this reason:\n\n- `hard_bounce`: Delivery permanently failed.\n- `complaint`: The recipient reported a message as spam.\n- `unsubscribe`: The recipient opted out. Deprecated: unsubscribes are now\n  recorded as messaging preferences rather than suppressions, so no new\n  records carry this reason and existing ones are being moved. Expect this\n  value to match nothing.\n- `manual`: Added through the API or dashboard.\n"
                    },
                    {
                      "disabled": true,
                      "key": "scope_type",
                      "value": "",
                      "description": "Return only suppressions with this scope.\n\nEvery suppression is workspace-wide, so `workspace` returns all of\nthem without narrowing the results. The other five values,\n`category`, `audience`, `topic`, `contact` and `domain`, always come\nback with an empty page.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"sup_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"email\": \"user@example.com\",\n      \"scope\": {\n        \"type\": \"workspace\",\n        \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n      },\n      \"reason\": \"hard_bounce\",\n      \"origin\": \"bounce_event\",\n      \"applies_to\": \"all\",\n      \"source_email_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"source_recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "eb6055a7-c25f-8e2f-841e-0a66147eb89c",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List suppressions",
                "description": {
                  "content": "Returns the workspace's suppressed email addresses as a paginated list, newest first. Pass a full address in the `email` parameter to look up a single address before sending to it.\n\nAn address can appear more than once because Bird keeps one suppression record per reason. Delivery stays blocked while any blocking record for the address remains.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "email",
                      "value": "user@example.com",
                      "description": "Case-insensitive prefix filter on the address. Returns every suppression whose address starts with this value. A full address finds that address's records, while a fragment such as `alice` finds every address beginning with it. The same address can match several records, one per suppression reason.\n"
                    },
                    {
                      "disabled": true,
                      "key": "reason",
                      "value": "",
                      "description": "Return only suppressions with this reason:\n\n- `hard_bounce`: Delivery permanently failed.\n- `complaint`: The recipient reported a message as spam.\n- `unsubscribe`: The recipient opted out. Deprecated: unsubscribes are now\n  recorded as messaging preferences rather than suppressions, so no new\n  records carry this reason and existing ones are being moved. Expect this\n  value to match nothing.\n- `manual`: Added through the API or dashboard.\n"
                    },
                    {
                      "disabled": true,
                      "key": "scope_type",
                      "value": "",
                      "description": "Return only suppressions with this scope.\n\nEvery suppression is workspace-wide, so `workspace` returns all of\nthem without narrowing the results. The other five values,\n`category`, `audience`, `topic`, `contact` and `domain`, always come\nback with an empty page.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"sup_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"email\": \"user@example.com\",\n      \"scope\": {\n        \"type\": \"workspace\",\n        \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n      },\n      \"reason\": \"hard_bounce\",\n      \"origin\": \"bounce_event\",\n      \"applies_to\": \"all\",\n      \"source_email_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"source_recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2e78eebc-a50e-8ce4-82bb-ff77284d201d",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List suppressions",
                "description": {
                  "content": "Returns the workspace's suppressed email addresses as a paginated list, newest first. Pass a full address in the `email` parameter to look up a single address before sending to it.\n\nAn address can appear more than once because Bird keeps one suppression record per reason. Delivery stays blocked while any blocking record for the address remains.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "email",
                      "value": "user@example.com",
                      "description": "Case-insensitive prefix filter on the address. Returns every suppression whose address starts with this value. A full address finds that address's records, while a fragment such as `alice` finds every address beginning with it. The same address can match several records, one per suppression reason.\n"
                    },
                    {
                      "disabled": true,
                      "key": "reason",
                      "value": "",
                      "description": "Return only suppressions with this reason:\n\n- `hard_bounce`: Delivery permanently failed.\n- `complaint`: The recipient reported a message as spam.\n- `unsubscribe`: The recipient opted out. Deprecated: unsubscribes are now\n  recorded as messaging preferences rather than suppressions, so no new\n  records carry this reason and existing ones are being moved. Expect this\n  value to match nothing.\n- `manual`: Added through the API or dashboard.\n"
                    },
                    {
                      "disabled": true,
                      "key": "scope_type",
                      "value": "",
                      "description": "Return only suppressions with this scope.\n\nEvery suppression is workspace-wide, so `workspace` returns all of\nthem without narrowing the results. The other five values,\n`category`, `audience`, `topic`, `contact` and `domain`, always come\nback with an empty page.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"sup_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"email\": \"user@example.com\",\n      \"scope\": {\n        \"type\": \"workspace\",\n        \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n      },\n      \"reason\": \"hard_bounce\",\n      \"origin\": \"bounce_event\",\n      \"applies_to\": \"all\",\n      \"source_email_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"source_recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1afe114f-d9cf-852e-8bb3-f39c73ab573b",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List suppressions",
                "description": {
                  "content": "Returns the workspace's suppressed email addresses as a paginated list, newest first. Pass a full address in the `email` parameter to look up a single address before sending to it.\n\nAn address can appear more than once because Bird keeps one suppression record per reason. Delivery stays blocked while any blocking record for the address remains.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "email",
                      "value": "user@example.com",
                      "description": "Case-insensitive prefix filter on the address. Returns every suppression whose address starts with this value. A full address finds that address's records, while a fragment such as `alice` finds every address beginning with it. The same address can match several records, one per suppression reason.\n"
                    },
                    {
                      "disabled": true,
                      "key": "reason",
                      "value": "",
                      "description": "Return only suppressions with this reason:\n\n- `hard_bounce`: Delivery permanently failed.\n- `complaint`: The recipient reported a message as spam.\n- `unsubscribe`: The recipient opted out. Deprecated: unsubscribes are now\n  recorded as messaging preferences rather than suppressions, so no new\n  records carry this reason and existing ones are being moved. Expect this\n  value to match nothing.\n- `manual`: Added through the API or dashboard.\n"
                    },
                    {
                      "disabled": true,
                      "key": "scope_type",
                      "value": "",
                      "description": "Return only suppressions with this scope.\n\nEvery suppression is workspace-wide, so `workspace` returns all of\nthem without narrowing the results. The other five values,\n`category`, `audience`, `topic`, `contact` and `domain`, always come\nback with an empty page.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"sup_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"email\": \"user@example.com\",\n      \"scope\": {\n        \"type\": \"workspace\",\n        \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n      },\n      \"reason\": \"hard_bounce\",\n      \"origin\": \"bounce_event\",\n      \"applies_to\": \"all\",\n      \"source_email_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"source_recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "72cf3b98-20f4-8307-89ca-9f6e6938538e",
          "name": "Create a suppression",
          "request": {
            "name": "Create a suppression",
            "description": {
              "content": "Adds an email address to the suppression list, stopping all email to it. The record is created with reason `manual` and blocks every message category, including transactional.\n\nAdding is idempotent: a `201` means a new record was created, and a `200` means a `manual` suppression for the address already existed and is returned unchanged. An address suppressed for another reason (for example `hard_bounce`) gets a separate `manual` record, and delivery stays blocked until every blocking record is removed.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "suppressions"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"jane@example.com\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "f1fd8eaa-2b3a-8497-8100-330305a34503",
              "name": "A manual suppression for this address already existed. The existing record is returned.",
              "originalRequest": {
                "name": "Create a suppression",
                "description": {
                  "content": "Adds an email address to the suppression list, stopping all email to it. The record is created with reason `manual` and blocks every message category, including transactional.\n\nAdding is idempotent: a `201` means a new record was created, and a `200` means a `manual` suppression for the address already existed and is returned unchanged. An address suppressed for another reason (for example `hard_bounce`) gets a separate `manual` record, and delivery stays blocked until every blocking record is removed.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"jane@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sup_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"email\": \"user@example.com\",\n  \"scope\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"reason\": \"hard_bounce\",\n  \"origin\": \"bounce_event\",\n  \"applies_to\": \"all\",\n  \"source_email_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source_recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d4c3fd05-0936-8d9d-88e1-5acf4508d766",
              "name": "Suppression created.",
              "originalRequest": {
                "name": "Create a suppression",
                "description": {
                  "content": "Adds an email address to the suppression list, stopping all email to it. The record is created with reason `manual` and blocks every message category, including transactional.\n\nAdding is idempotent: a `201` means a new record was created, and a `200` means a `manual` suppression for the address already existed and is returned unchanged. An address suppressed for another reason (for example `hard_bounce`) gets a separate `manual` record, and delivery stays blocked until every blocking record is removed.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"jane@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sup_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"email\": \"user@example.com\",\n  \"scope\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"reason\": \"hard_bounce\",\n  \"origin\": \"bounce_event\",\n  \"applies_to\": \"all\",\n  \"source_email_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source_recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e0d0abc7-d9b2-8c15-8cc3-0090c6530856",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create a suppression",
                "description": {
                  "content": "Adds an email address to the suppression list, stopping all email to it. The record is created with reason `manual` and blocks every message category, including transactional.\n\nAdding is idempotent: a `201` means a new record was created, and a `200` means a `manual` suppression for the address already existed and is returned unchanged. An address suppressed for another reason (for example `hard_bounce`) gets a separate `manual` record, and delivery stays blocked until every blocking record is removed.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"jane@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sup_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"email\": \"user@example.com\",\n  \"scope\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"reason\": \"hard_bounce\",\n  \"origin\": \"bounce_event\",\n  \"applies_to\": \"all\",\n  \"source_email_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source_recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1176a4ad-da08-80dc-8cbc-134fa26b234c",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create a suppression",
                "description": {
                  "content": "Adds an email address to the suppression list, stopping all email to it. The record is created with reason `manual` and blocks every message category, including transactional.\n\nAdding is idempotent: a `201` means a new record was created, and a `200` means a `manual` suppression for the address already existed and is returned unchanged. An address suppressed for another reason (for example `hard_bounce`) gets a separate `manual` record, and delivery stays blocked until every blocking record is removed.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"jane@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sup_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"email\": \"user@example.com\",\n  \"scope\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"reason\": \"hard_bounce\",\n  \"origin\": \"bounce_event\",\n  \"applies_to\": \"all\",\n  \"source_email_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source_recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b27c8436-6d31-8f3e-8287-3bc7f8712142",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create a suppression",
                "description": {
                  "content": "Adds an email address to the suppression list, stopping all email to it. The record is created with reason `manual` and blocks every message category, including transactional.\n\nAdding is idempotent: a `201` means a new record was created, and a `200` means a `manual` suppression for the address already existed and is returned unchanged. An address suppressed for another reason (for example `hard_bounce`) gets a separate `manual` record, and delivery stays blocked until every blocking record is removed.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"jane@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sup_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"email\": \"user@example.com\",\n  \"scope\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"reason\": \"hard_bounce\",\n  \"origin\": \"bounce_event\",\n  \"applies_to\": \"all\",\n  \"source_email_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source_recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3f144811-3773-8820-8903-9ec0c418fa95",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create a suppression",
                "description": {
                  "content": "Adds an email address to the suppression list, stopping all email to it. The record is created with reason `manual` and blocks every message category, including transactional.\n\nAdding is idempotent: a `201` means a new record was created, and a `200` means a `manual` suppression for the address already existed and is returned unchanged. An address suppressed for another reason (for example `hard_bounce`) gets a separate `manual` record, and delivery stays blocked until every blocking record is removed.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"jane@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sup_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"email\": \"user@example.com\",\n  \"scope\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"reason\": \"hard_bounce\",\n  \"origin\": \"bounce_event\",\n  \"applies_to\": \"all\",\n  \"source_email_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source_recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "acaa03a8-dc61-8eb2-88e6-4082ee998b55",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create a suppression",
                "description": {
                  "content": "Adds an email address to the suppression list, stopping all email to it. The record is created with reason `manual` and blocks every message category, including transactional.\n\nAdding is idempotent: a `201` means a new record was created, and a `200` means a `manual` suppression for the address already existed and is returned unchanged. An address suppressed for another reason (for example `hard_bounce`) gets a separate `manual` record, and delivery stays blocked until every blocking record is removed.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"jane@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sup_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"email\": \"user@example.com\",\n  \"scope\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"reason\": \"hard_bounce\",\n  \"origin\": \"bounce_event\",\n  \"applies_to\": \"all\",\n  \"source_email_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source_recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e349075a-225b-84fe-8411-b990885bc2ad",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create a suppression",
                "description": {
                  "content": "Adds an email address to the suppression list, stopping all email to it. The record is created with reason `manual` and blocks every message category, including transactional.\n\nAdding is idempotent: a `201` means a new record was created, and a `200` means a `manual` suppression for the address already existed and is returned unchanged. An address suppressed for another reason (for example `hard_bounce`) gets a separate `manual` record, and delivery stays blocked until every blocking record is removed.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"jane@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sup_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"email\": \"user@example.com\",\n  \"scope\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"reason\": \"hard_bounce\",\n  \"origin\": \"bounce_event\",\n  \"applies_to\": \"all\",\n  \"source_email_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source_recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "8b82197f-eabc-889b-82e0-dd1489754070",
          "name": "Get a suppression",
          "request": {
            "name": "Get a suppression",
            "description": {
              "content": "Returns one suppression record:\n\n- The address.\n- Why it is suppressed (`reason`).\n- How the record came to exist (`origin`).\n- Which message categories it blocks (`applies_to`).\n\nTo find a record when you only know the address, use `GET /v1/email/suppressions` with the `email` parameter. An ID that does not exist in the workspace returns `404`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "suppressions",
                ":suppression_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "sup_01krdgeqcxet5s7t44vh8rt9mg",
                  "key": "suppression_id",
                  "description": "(Required) ID of the suppression record, as returned when the suppression was created or listed.\n"
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "eb84aa8e-3e5f-8714-8e82-3d5576e9a9bd",
              "name": "Suppression object.",
              "originalRequest": {
                "name": "Get a suppression",
                "description": {
                  "content": "Returns one suppression record:\n\n- The address.\n- Why it is suppressed (`reason`).\n- How the record came to exist (`origin`).\n- Which message categories it blocks (`applies_to`).\n\nTo find a record when you only know the address, use `GET /v1/email/suppressions` with the `email` parameter. An ID that does not exist in the workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "sup_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression record, as returned when the suppression was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sup_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"email\": \"user@example.com\",\n  \"scope\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"reason\": \"hard_bounce\",\n  \"origin\": \"bounce_event\",\n  \"applies_to\": \"all\",\n  \"source_email_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source_recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a7b3c082-89ef-83d0-8005-cb05f2e2ee0a",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a suppression",
                "description": {
                  "content": "Returns one suppression record:\n\n- The address.\n- Why it is suppressed (`reason`).\n- How the record came to exist (`origin`).\n- Which message categories it blocks (`applies_to`).\n\nTo find a record when you only know the address, use `GET /v1/email/suppressions` with the `email` parameter. An ID that does not exist in the workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "sup_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression record, as returned when the suppression was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sup_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"email\": \"user@example.com\",\n  \"scope\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"reason\": \"hard_bounce\",\n  \"origin\": \"bounce_event\",\n  \"applies_to\": \"all\",\n  \"source_email_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source_recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5068651d-e471-82d5-892f-77ecb42dc5a2",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a suppression",
                "description": {
                  "content": "Returns one suppression record:\n\n- The address.\n- Why it is suppressed (`reason`).\n- How the record came to exist (`origin`).\n- Which message categories it blocks (`applies_to`).\n\nTo find a record when you only know the address, use `GET /v1/email/suppressions` with the `email` parameter. An ID that does not exist in the workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "sup_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression record, as returned when the suppression was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sup_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"email\": \"user@example.com\",\n  \"scope\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"reason\": \"hard_bounce\",\n  \"origin\": \"bounce_event\",\n  \"applies_to\": \"all\",\n  \"source_email_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source_recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5534573b-7d4d-80c0-8835-62f543812249",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a suppression",
                "description": {
                  "content": "Returns one suppression record:\n\n- The address.\n- Why it is suppressed (`reason`).\n- How the record came to exist (`origin`).\n- Which message categories it blocks (`applies_to`).\n\nTo find a record when you only know the address, use `GET /v1/email/suppressions` with the `email` parameter. An ID that does not exist in the workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "sup_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression record, as returned when the suppression was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sup_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"email\": \"user@example.com\",\n  \"scope\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"reason\": \"hard_bounce\",\n  \"origin\": \"bounce_event\",\n  \"applies_to\": \"all\",\n  \"source_email_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source_recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "82139ba2-79c2-8c40-8ae8-e2ccffd3b2e8",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a suppression",
                "description": {
                  "content": "Returns one suppression record:\n\n- The address.\n- Why it is suppressed (`reason`).\n- How the record came to exist (`origin`).\n- Which message categories it blocks (`applies_to`).\n\nTo find a record when you only know the address, use `GET /v1/email/suppressions` with the `email` parameter. An ID that does not exist in the workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "sup_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression record, as returned when the suppression was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sup_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"email\": \"user@example.com\",\n  \"scope\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"reason\": \"hard_bounce\",\n  \"origin\": \"bounce_event\",\n  \"applies_to\": \"all\",\n  \"source_email_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source_recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b5c00504-8857-84dd-8792-fd3d65ddabad",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a suppression",
                "description": {
                  "content": "Returns one suppression record:\n\n- The address.\n- Why it is suppressed (`reason`).\n- How the record came to exist (`origin`).\n- Which message categories it blocks (`applies_to`).\n\nTo find a record when you only know the address, use `GET /v1/email/suppressions` with the `email` parameter. An ID that does not exist in the workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "sup_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression record, as returned when the suppression was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sup_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"email\": \"user@example.com\",\n  \"scope\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"reason\": \"hard_bounce\",\n  \"origin\": \"bounce_event\",\n  \"applies_to\": \"all\",\n  \"source_email_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source_recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "eddbd8d2-5c17-869f-8d28-02e51c084bd8",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a suppression",
                "description": {
                  "content": "Returns one suppression record:\n\n- The address.\n- Why it is suppressed (`reason`).\n- How the record came to exist (`origin`).\n- Which message categories it blocks (`applies_to`).\n\nTo find a record when you only know the address, use `GET /v1/email/suppressions` with the `email` parameter. An ID that does not exist in the workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "sup_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression record, as returned when the suppression was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"sup_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"email\": \"user@example.com\",\n  \"scope\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"reason\": \"hard_bounce\",\n  \"origin\": \"bounce_event\",\n  \"applies_to\": \"all\",\n  \"source_email_id\": \"em_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source_recipient_id\": \"er_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "3416c89f-b62f-8bd3-837d-86380784e10d",
          "name": "Delete a suppression",
          "request": {
            "name": "Delete a suppression",
            "description": {
              "content": "Permanently deletes the suppression record and resumes delivery to the address. Deletion cannot be undone. If the address hard-bounces or the recipient complains again, a new suppression is created automatically.\n\nMost records exist because the address bounced or complained, so removing one without cause resumes sending to an address that rejected mail and harms sender reputation. An address suppressed for several reasons has one record per reason. Delete each blocking record to re-enable delivery. To find a record by address, use `GET /v1/email/suppressions` with the `email` parameter. An ID that does not exist in the workspace returns `404`.\n\nA record with reason `complaint` can only be deleted by a signed-in dashboard user; an API key gets `422` (`SuppressionNotRemovableByAPIKey`). `hard_bounce` and `manual` records are unaffected and stay removable either way.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "suppressions",
                ":suppression_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "sup_01krdgeqcxet5s7t44vh8rt9mg",
                  "key": "suppression_id",
                  "description": "(Required) ID of the suppression record, as returned when the suppression was created or listed.\n"
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "DELETE"
          },
          "response": [
            {
              "id": "97ce50d4-fa2b-8f16-8805-f54c0657f3d8",
              "name": "Suppression deleted.",
              "originalRequest": {
                "name": "Delete a suppression",
                "description": {
                  "content": "Permanently deletes the suppression record and resumes delivery to the address. Deletion cannot be undone. If the address hard-bounces or the recipient complains again, a new suppression is created automatically.\n\nMost records exist because the address bounced or complained, so removing one without cause resumes sending to an address that rejected mail and harms sender reputation. An address suppressed for several reasons has one record per reason. Delete each blocking record to re-enable delivery. To find a record by address, use `GET /v1/email/suppressions` with the `email` parameter. An ID that does not exist in the workspace returns `404`.\n\nA record with reason `complaint` can only be deleted by a signed-in dashboard user; an API key gets `422` (`SuppressionNotRemovableByAPIKey`). `hard_bounce` and `manual` records are unaffected and stay removable either way.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "sup_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression record, as returned when the suppression was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "fe97b225-a848-8575-803f-b597258f85c8",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Delete a suppression",
                "description": {
                  "content": "Permanently deletes the suppression record and resumes delivery to the address. Deletion cannot be undone. If the address hard-bounces or the recipient complains again, a new suppression is created automatically.\n\nMost records exist because the address bounced or complained, so removing one without cause resumes sending to an address that rejected mail and harms sender reputation. An address suppressed for several reasons has one record per reason. Delete each blocking record to re-enable delivery. To find a record by address, use `GET /v1/email/suppressions` with the `email` parameter. An ID that does not exist in the workspace returns `404`.\n\nA record with reason `complaint` can only be deleted by a signed-in dashboard user; an API key gets `422` (`SuppressionNotRemovableByAPIKey`). `hard_bounce` and `manual` records are unaffected and stay removable either way.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "sup_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression record, as returned when the suppression was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "19d366f3-c8d7-80c1-8eb0-85d372810704",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Delete a suppression",
                "description": {
                  "content": "Permanently deletes the suppression record and resumes delivery to the address. Deletion cannot be undone. If the address hard-bounces or the recipient complains again, a new suppression is created automatically.\n\nMost records exist because the address bounced or complained, so removing one without cause resumes sending to an address that rejected mail and harms sender reputation. An address suppressed for several reasons has one record per reason. Delete each blocking record to re-enable delivery. To find a record by address, use `GET /v1/email/suppressions` with the `email` parameter. An ID that does not exist in the workspace returns `404`.\n\nA record with reason `complaint` can only be deleted by a signed-in dashboard user; an API key gets `422` (`SuppressionNotRemovableByAPIKey`). `hard_bounce` and `manual` records are unaffected and stay removable either way.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "sup_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression record, as returned when the suppression was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5ca0dd54-ad87-845d-89ec-e41917c9338b",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Delete a suppression",
                "description": {
                  "content": "Permanently deletes the suppression record and resumes delivery to the address. Deletion cannot be undone. If the address hard-bounces or the recipient complains again, a new suppression is created automatically.\n\nMost records exist because the address bounced or complained, so removing one without cause resumes sending to an address that rejected mail and harms sender reputation. An address suppressed for several reasons has one record per reason. Delete each blocking record to re-enable delivery. To find a record by address, use `GET /v1/email/suppressions` with the `email` parameter. An ID that does not exist in the workspace returns `404`.\n\nA record with reason `complaint` can only be deleted by a signed-in dashboard user; an API key gets `422` (`SuppressionNotRemovableByAPIKey`). `hard_bounce` and `manual` records are unaffected and stay removable either way.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "sup_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression record, as returned when the suppression was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6c9b1f0e-cf38-811f-8b81-64d13d9d1887",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Delete a suppression",
                "description": {
                  "content": "Permanently deletes the suppression record and resumes delivery to the address. Deletion cannot be undone. If the address hard-bounces or the recipient complains again, a new suppression is created automatically.\n\nMost records exist because the address bounced or complained, so removing one without cause resumes sending to an address that rejected mail and harms sender reputation. An address suppressed for several reasons has one record per reason. Delete each blocking record to re-enable delivery. To find a record by address, use `GET /v1/email/suppressions` with the `email` parameter. An ID that does not exist in the workspace returns `404`.\n\nA record with reason `complaint` can only be deleted by a signed-in dashboard user; an API key gets `422` (`SuppressionNotRemovableByAPIKey`). `hard_bounce` and `manual` records are unaffected and stay removable either way.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "sup_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression record, as returned when the suppression was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1af3682f-853b-804c-8f52-d8ae3bec49a4",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Delete a suppression",
                "description": {
                  "content": "Permanently deletes the suppression record and resumes delivery to the address. Deletion cannot be undone. If the address hard-bounces or the recipient complains again, a new suppression is created automatically.\n\nMost records exist because the address bounced or complained, so removing one without cause resumes sending to an address that rejected mail and harms sender reputation. An address suppressed for several reasons has one record per reason. Delete each blocking record to re-enable delivery. To find a record by address, use `GET /v1/email/suppressions` with the `email` parameter. An ID that does not exist in the workspace returns `404`.\n\nA record with reason `complaint` can only be deleted by a signed-in dashboard user; an API key gets `422` (`SuppressionNotRemovableByAPIKey`). `hard_bounce` and `manual` records are unaffected and stay removable either way.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "sup_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression record, as returned when the suppression was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5254a0a9-adb6-80b4-8f1c-a2a0ffad080f",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Delete a suppression",
                "description": {
                  "content": "Permanently deletes the suppression record and resumes delivery to the address. Deletion cannot be undone. If the address hard-bounces or the recipient complains again, a new suppression is created automatically.\n\nMost records exist because the address bounced or complained, so removing one without cause resumes sending to an address that rejected mail and harms sender reputation. An address suppressed for several reasons has one record per reason. Delete each blocking record to re-enable delivery. To find a record by address, use `GET /v1/email/suppressions` with the `email` parameter. An ID that does not exist in the workspace returns `404`.\n\nA record with reason `complaint` can only be deleted by a signed-in dashboard user; an API key gets `422` (`SuppressionNotRemovableByAPIKey`). `hard_bounce` and `manual` records are unaffected and stay removable either way.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "sup_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression record, as returned when the suppression was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "c0fcc6dd-2743-80f4-8167-e01a34b3762d",
      "name": "email-templates",
      "description": {
        "content": "Reusable email templates and their versions, with stored subject, HTML, and plain-text content you manage and reference when sending.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "61063270-efb8-8650-83e6-5fb32d69f8dc",
          "name": "List email templates",
          "request": {
            "name": "List email templates",
            "description": {
              "content": "Returns a paginated list of email templates, newest first.\n\nThe list covers both the workspace's own templates and our built-in `system` templates. Use\n`scope` to get only one of the two, or leave it out to get both. When you leave it out, the\nworkspace's own templates come first, newest first, and our built-in templates fill the rest of\nthe list once the workspace's templates run out.\n\nFilter further by category or authoring format, or search with `q`, a case-insensitive substring\nmatch against the template's slug, name, and description.\n\nOur built-in templates come in five visual themes. Each theme ships its own set of eight\nemails, and the sets overlap only partly. Use `theme` to see one of them. A template your\nworkspace authored has no theme, so naming one returns our built-ins alone.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "templates"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "scope",
                  "value": "",
                  "description": "Filter by who owns the template. Use `system` for our built-in templates and `workspace` for the ones your workspace created. Leave it out to get both."
                },
                {
                  "disabled": true,
                  "key": "category",
                  "value": "",
                  "description": "Return only `transactional` or `marketing` templates; omit to return both categories."
                },
                {
                  "disabled": true,
                  "key": "source",
                  "value": "",
                  "description": "Return only templates authored in this format."
                },
                {
                  "disabled": true,
                  "key": "theme",
                  "value": "",
                  "description": "Filter by the visual theme a built-in template is designed in. Only our built-in templates have a theme, so naming one returns built-ins alone."
                },
                {
                  "disabled": true,
                  "key": "q",
                  "value": "",
                  "description": "A case-insensitive substring search across the template's slug, name, and description."
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "f608ac9f-d54a-8f2c-8506-07ece2714126",
              "name": "Paginated list of email templates.",
              "originalRequest": {
                "name": "List email templates",
                "description": {
                  "content": "Returns a paginated list of email templates, newest first.\n\nThe list covers both the workspace's own templates and our built-in `system` templates. Use\n`scope` to get only one of the two, or leave it out to get both. When you leave it out, the\nworkspace's own templates come first, newest first, and our built-in templates fill the rest of\nthe list once the workspace's templates run out.\n\nFilter further by category or authoring format, or search with `q`, a case-insensitive substring\nmatch against the template's slug, name, and description.\n\nOur built-in templates come in five visual themes. Each theme ships its own set of eight\nemails, and the sets overlap only partly. Use `theme` to see one of them. A template your\nworkspace authored has no theme, so naming one returns our built-ins alone.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "templates"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "scope",
                      "value": "",
                      "description": "Filter by who owns the template. Use `system` for our built-in templates and `workspace` for the ones your workspace created. Leave it out to get both."
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Return only `transactional` or `marketing` templates; omit to return both categories."
                    },
                    {
                      "disabled": true,
                      "key": "source",
                      "value": "",
                      "description": "Return only templates authored in this format."
                    },
                    {
                      "disabled": true,
                      "key": "theme",
                      "value": "",
                      "description": "Filter by the visual theme a built-in template is designed in. Only our built-in templates have a theme, so naming one returns built-ins alone."
                    },
                    {
                      "disabled": true,
                      "key": "q",
                      "value": "",
                      "description": "A case-insensitive substring search across the template's slug, name, and description."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"slug\": \"welcome-email\",\n      \"name\": \"Welcome email\",\n      \"scope\": \"system\",\n      \"status\": \"active\",\n      \"category\": \"transactional\",\n      \"source\": \"html\",\n      \"theme\": \"arcane\",\n      \"draft_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"live_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"published_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"available_languages\": [\n        \"en\"\n      ],\n      \"default_language\": \"pt-BR\",\n      \"languages\": {\n        \"en\": {\n          \"status\": \"live\"\n        },\n        \"de\": {\n          \"status\": \"draft\"\n        }\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4e76fd09-b97a-8998-8c01-97008386d057",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List email templates",
                "description": {
                  "content": "Returns a paginated list of email templates, newest first.\n\nThe list covers both the workspace's own templates and our built-in `system` templates. Use\n`scope` to get only one of the two, or leave it out to get both. When you leave it out, the\nworkspace's own templates come first, newest first, and our built-in templates fill the rest of\nthe list once the workspace's templates run out.\n\nFilter further by category or authoring format, or search with `q`, a case-insensitive substring\nmatch against the template's slug, name, and description.\n\nOur built-in templates come in five visual themes. Each theme ships its own set of eight\nemails, and the sets overlap only partly. Use `theme` to see one of them. A template your\nworkspace authored has no theme, so naming one returns our built-ins alone.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "templates"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "scope",
                      "value": "",
                      "description": "Filter by who owns the template. Use `system` for our built-in templates and `workspace` for the ones your workspace created. Leave it out to get both."
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Return only `transactional` or `marketing` templates; omit to return both categories."
                    },
                    {
                      "disabled": true,
                      "key": "source",
                      "value": "",
                      "description": "Return only templates authored in this format."
                    },
                    {
                      "disabled": true,
                      "key": "theme",
                      "value": "",
                      "description": "Filter by the visual theme a built-in template is designed in. Only our built-in templates have a theme, so naming one returns built-ins alone."
                    },
                    {
                      "disabled": true,
                      "key": "q",
                      "value": "",
                      "description": "A case-insensitive substring search across the template's slug, name, and description."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"slug\": \"welcome-email\",\n      \"name\": \"Welcome email\",\n      \"scope\": \"system\",\n      \"status\": \"active\",\n      \"category\": \"transactional\",\n      \"source\": \"html\",\n      \"theme\": \"arcane\",\n      \"draft_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"live_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"published_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"available_languages\": [\n        \"en\"\n      ],\n      \"default_language\": \"pt-BR\",\n      \"languages\": {\n        \"en\": {\n          \"status\": \"live\"\n        },\n        \"de\": {\n          \"status\": \"draft\"\n        }\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "13a94942-132b-8e21-8882-c50b24b8e23a",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List email templates",
                "description": {
                  "content": "Returns a paginated list of email templates, newest first.\n\nThe list covers both the workspace's own templates and our built-in `system` templates. Use\n`scope` to get only one of the two, or leave it out to get both. When you leave it out, the\nworkspace's own templates come first, newest first, and our built-in templates fill the rest of\nthe list once the workspace's templates run out.\n\nFilter further by category or authoring format, or search with `q`, a case-insensitive substring\nmatch against the template's slug, name, and description.\n\nOur built-in templates come in five visual themes. Each theme ships its own set of eight\nemails, and the sets overlap only partly. Use `theme` to see one of them. A template your\nworkspace authored has no theme, so naming one returns our built-ins alone.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "templates"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "scope",
                      "value": "",
                      "description": "Filter by who owns the template. Use `system` for our built-in templates and `workspace` for the ones your workspace created. Leave it out to get both."
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Return only `transactional` or `marketing` templates; omit to return both categories."
                    },
                    {
                      "disabled": true,
                      "key": "source",
                      "value": "",
                      "description": "Return only templates authored in this format."
                    },
                    {
                      "disabled": true,
                      "key": "theme",
                      "value": "",
                      "description": "Filter by the visual theme a built-in template is designed in. Only our built-in templates have a theme, so naming one returns built-ins alone."
                    },
                    {
                      "disabled": true,
                      "key": "q",
                      "value": "",
                      "description": "A case-insensitive substring search across the template's slug, name, and description."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"slug\": \"welcome-email\",\n      \"name\": \"Welcome email\",\n      \"scope\": \"system\",\n      \"status\": \"active\",\n      \"category\": \"transactional\",\n      \"source\": \"html\",\n      \"theme\": \"arcane\",\n      \"draft_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"live_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"published_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"available_languages\": [\n        \"en\"\n      ],\n      \"default_language\": \"pt-BR\",\n      \"languages\": {\n        \"en\": {\n          \"status\": \"live\"\n        },\n        \"de\": {\n          \"status\": \"draft\"\n        }\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5faccb20-8337-8d58-8c51-5fefcf0b046d",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List email templates",
                "description": {
                  "content": "Returns a paginated list of email templates, newest first.\n\nThe list covers both the workspace's own templates and our built-in `system` templates. Use\n`scope` to get only one of the two, or leave it out to get both. When you leave it out, the\nworkspace's own templates come first, newest first, and our built-in templates fill the rest of\nthe list once the workspace's templates run out.\n\nFilter further by category or authoring format, or search with `q`, a case-insensitive substring\nmatch against the template's slug, name, and description.\n\nOur built-in templates come in five visual themes. Each theme ships its own set of eight\nemails, and the sets overlap only partly. Use `theme` to see one of them. A template your\nworkspace authored has no theme, so naming one returns our built-ins alone.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "templates"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "scope",
                      "value": "",
                      "description": "Filter by who owns the template. Use `system` for our built-in templates and `workspace` for the ones your workspace created. Leave it out to get both."
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Return only `transactional` or `marketing` templates; omit to return both categories."
                    },
                    {
                      "disabled": true,
                      "key": "source",
                      "value": "",
                      "description": "Return only templates authored in this format."
                    },
                    {
                      "disabled": true,
                      "key": "theme",
                      "value": "",
                      "description": "Filter by the visual theme a built-in template is designed in. Only our built-in templates have a theme, so naming one returns built-ins alone."
                    },
                    {
                      "disabled": true,
                      "key": "q",
                      "value": "",
                      "description": "A case-insensitive substring search across the template's slug, name, and description."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"slug\": \"welcome-email\",\n      \"name\": \"Welcome email\",\n      \"scope\": \"system\",\n      \"status\": \"active\",\n      \"category\": \"transactional\",\n      \"source\": \"html\",\n      \"theme\": \"arcane\",\n      \"draft_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"live_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"published_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"available_languages\": [\n        \"en\"\n      ],\n      \"default_language\": \"pt-BR\",\n      \"languages\": {\n        \"en\": {\n          \"status\": \"live\"\n        },\n        \"de\": {\n          \"status\": \"draft\"\n        }\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e412d39b-4cb2-88d9-8fa0-323858cf7374",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List email templates",
                "description": {
                  "content": "Returns a paginated list of email templates, newest first.\n\nThe list covers both the workspace's own templates and our built-in `system` templates. Use\n`scope` to get only one of the two, or leave it out to get both. When you leave it out, the\nworkspace's own templates come first, newest first, and our built-in templates fill the rest of\nthe list once the workspace's templates run out.\n\nFilter further by category or authoring format, or search with `q`, a case-insensitive substring\nmatch against the template's slug, name, and description.\n\nOur built-in templates come in five visual themes. Each theme ships its own set of eight\nemails, and the sets overlap only partly. Use `theme` to see one of them. A template your\nworkspace authored has no theme, so naming one returns our built-ins alone.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "templates"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "scope",
                      "value": "",
                      "description": "Filter by who owns the template. Use `system` for our built-in templates and `workspace` for the ones your workspace created. Leave it out to get both."
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Return only `transactional` or `marketing` templates; omit to return both categories."
                    },
                    {
                      "disabled": true,
                      "key": "source",
                      "value": "",
                      "description": "Return only templates authored in this format."
                    },
                    {
                      "disabled": true,
                      "key": "theme",
                      "value": "",
                      "description": "Filter by the visual theme a built-in template is designed in. Only our built-in templates have a theme, so naming one returns built-ins alone."
                    },
                    {
                      "disabled": true,
                      "key": "q",
                      "value": "",
                      "description": "A case-insensitive substring search across the template's slug, name, and description."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"slug\": \"welcome-email\",\n      \"name\": \"Welcome email\",\n      \"scope\": \"system\",\n      \"status\": \"active\",\n      \"category\": \"transactional\",\n      \"source\": \"html\",\n      \"theme\": \"arcane\",\n      \"draft_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"live_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"published_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"available_languages\": [\n        \"en\"\n      ],\n      \"default_language\": \"pt-BR\",\n      \"languages\": {\n        \"en\": {\n          \"status\": \"live\"\n        },\n        \"de\": {\n          \"status\": \"draft\"\n        }\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d52a8037-8131-8404-82e1-fa9755a5332c",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List email templates",
                "description": {
                  "content": "Returns a paginated list of email templates, newest first.\n\nThe list covers both the workspace's own templates and our built-in `system` templates. Use\n`scope` to get only one of the two, or leave it out to get both. When you leave it out, the\nworkspace's own templates come first, newest first, and our built-in templates fill the rest of\nthe list once the workspace's templates run out.\n\nFilter further by category or authoring format, or search with `q`, a case-insensitive substring\nmatch against the template's slug, name, and description.\n\nOur built-in templates come in five visual themes. Each theme ships its own set of eight\nemails, and the sets overlap only partly. Use `theme` to see one of them. A template your\nworkspace authored has no theme, so naming one returns our built-ins alone.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "templates"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "scope",
                      "value": "",
                      "description": "Filter by who owns the template. Use `system` for our built-in templates and `workspace` for the ones your workspace created. Leave it out to get both."
                    },
                    {
                      "disabled": true,
                      "key": "category",
                      "value": "",
                      "description": "Return only `transactional` or `marketing` templates; omit to return both categories."
                    },
                    {
                      "disabled": true,
                      "key": "source",
                      "value": "",
                      "description": "Return only templates authored in this format."
                    },
                    {
                      "disabled": true,
                      "key": "theme",
                      "value": "",
                      "description": "Filter by the visual theme a built-in template is designed in. Only our built-in templates have a theme, so naming one returns built-ins alone."
                    },
                    {
                      "disabled": true,
                      "key": "q",
                      "value": "",
                      "description": "A case-insensitive substring search across the template's slug, name, and description."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"emt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"slug\": \"welcome-email\",\n      \"name\": \"Welcome email\",\n      \"scope\": \"system\",\n      \"status\": \"active\",\n      \"category\": \"transactional\",\n      \"source\": \"html\",\n      \"theme\": \"arcane\",\n      \"draft_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"live_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"published_version_id\": \"emv_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"available_languages\": [\n        \"en\"\n      ],\n      \"default_language\": \"pt-BR\",\n      \"languages\": {\n        \"en\": {\n          \"status\": \"live\"\n        },\n        \"de\": {\n          \"status\": \"draft\"\n        }\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "7b2e1aab-6b0a-8d3e-82bc-9f8ddbe84753",
      "name": "email-inbound-addresses",
      "description": {
        "content": "Addresses generated for receiving mail. Forward a mailbox to an inbound address to parse each message into a received email.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "0a5f8a11-f5dc-815a-85e6-b3b892a54a40",
          "name": "List inbound addresses",
          "request": {
            "name": "List inbound addresses",
            "description": {
              "content": "Returns a paginated list of the workspace's inbound addresses. An inbound address is one you forward a real mailbox to, so mail sent to that mailbox arrives as a received email.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "inbound-addresses"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "36a843b8-3ac8-82c1-85cc-2c37054fb464",
              "name": "Paginated list of inbound addresses.",
              "originalRequest": {
                "name": "List inbound addresses",
                "description": {
                  "content": "Returns a paginated list of the workspace's inbound addresses. An inbound address is one you forward a real mailbox to, so mail sent to that mailbox arrives as a received email.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"address\": \"a1b2c3@inbound.eu.bird.com\",\n      \"label\": \"Support mailbox\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "89b6c2b9-01db-8a13-8ad7-dbeb65da7158",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List inbound addresses",
                "description": {
                  "content": "Returns a paginated list of the workspace's inbound addresses. An inbound address is one you forward a real mailbox to, so mail sent to that mailbox arrives as a received email.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"address\": \"a1b2c3@inbound.eu.bird.com\",\n      \"label\": \"Support mailbox\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3c6375ea-0771-8219-85e3-a77142140852",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List inbound addresses",
                "description": {
                  "content": "Returns a paginated list of the workspace's inbound addresses. An inbound address is one you forward a real mailbox to, so mail sent to that mailbox arrives as a received email.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"address\": \"a1b2c3@inbound.eu.bird.com\",\n      \"label\": \"Support mailbox\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "23701ca2-e3b0-8104-8aa2-0280904b39f9",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List inbound addresses",
                "description": {
                  "content": "Returns a paginated list of the workspace's inbound addresses. An inbound address is one you forward a real mailbox to, so mail sent to that mailbox arrives as a received email.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"address\": \"a1b2c3@inbound.eu.bird.com\",\n      \"label\": \"Support mailbox\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "eb9bfb65-2d68-8698-859e-f0729a1bd816",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List inbound addresses",
                "description": {
                  "content": "Returns a paginated list of the workspace's inbound addresses. An inbound address is one you forward a real mailbox to, so mail sent to that mailbox arrives as a received email.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"address\": \"a1b2c3@inbound.eu.bird.com\",\n      \"label\": \"Support mailbox\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "00517188-0f6e-87ce-84d2-96859fb3d775",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List inbound addresses",
                "description": {
                  "content": "Returns a paginated list of the workspace's inbound addresses. An inbound address is one you forward a real mailbox to, so mail sent to that mailbox arrives as a received email.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"address\": \"a1b2c3@inbound.eu.bird.com\",\n      \"label\": \"Support mailbox\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "bc071220-7292-8873-8c83-e72169ad0166",
          "name": "Create an inbound address",
          "request": {
            "name": "Create an inbound address",
            "description": {
              "content": "Creates a new inbound address. Forward a real mailbox to the returned `address`, and every message sent there arrives as a received email.\n\nThe address works as soon as it is returned and requires no verification step.\n\nAn optional `label` records which source mailbox the address maps to.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "inbound-addresses"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"label\": \"Support mailbox\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "256b8054-9354-8e94-80e7-f21b4f6be203",
              "name": "Inbound address created.",
              "originalRequest": {
                "name": "Create an inbound address",
                "description": {
                  "content": "Creates a new inbound address. Forward a real mailbox to the returned `address`, and every message sent there arrives as a received email.\n\nThe address works as soon as it is returned and requires no verification step.\n\nAn optional `label` records which source mailbox the address maps to.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"label\": \"Support mailbox\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"a1b2c3@inbound.eu.bird.com\",\n  \"label\": \"Support mailbox\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "99f56809-38ff-884f-8275-3df5f003c092",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create an inbound address",
                "description": {
                  "content": "Creates a new inbound address. Forward a real mailbox to the returned `address`, and every message sent there arrives as a received email.\n\nThe address works as soon as it is returned and requires no verification step.\n\nAn optional `label` records which source mailbox the address maps to.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"label\": \"Support mailbox\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"a1b2c3@inbound.eu.bird.com\",\n  \"label\": \"Support mailbox\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ead5bea3-989b-8135-8f4a-02fba336117b",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create an inbound address",
                "description": {
                  "content": "Creates a new inbound address. Forward a real mailbox to the returned `address`, and every message sent there arrives as a received email.\n\nThe address works as soon as it is returned and requires no verification step.\n\nAn optional `label` records which source mailbox the address maps to.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"label\": \"Support mailbox\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"a1b2c3@inbound.eu.bird.com\",\n  \"label\": \"Support mailbox\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3290a90c-a4b6-86c7-84d9-dd952b59c999",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create an inbound address",
                "description": {
                  "content": "Creates a new inbound address. Forward a real mailbox to the returned `address`, and every message sent there arrives as a received email.\n\nThe address works as soon as it is returned and requires no verification step.\n\nAn optional `label` records which source mailbox the address maps to.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"label\": \"Support mailbox\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"a1b2c3@inbound.eu.bird.com\",\n  \"label\": \"Support mailbox\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cfdbaa52-1499-802c-8be3-61f47b310978",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create an inbound address",
                "description": {
                  "content": "Creates a new inbound address. Forward a real mailbox to the returned `address`, and every message sent there arrives as a received email.\n\nThe address works as soon as it is returned and requires no verification step.\n\nAn optional `label` records which source mailbox the address maps to.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"label\": \"Support mailbox\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"a1b2c3@inbound.eu.bird.com\",\n  \"label\": \"Support mailbox\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7ea79336-7283-8e04-8c03-fcfe246ed459",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create an inbound address",
                "description": {
                  "content": "Creates a new inbound address. Forward a real mailbox to the returned `address`, and every message sent there arrives as a received email.\n\nThe address works as soon as it is returned and requires no verification step.\n\nAn optional `label` records which source mailbox the address maps to.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"label\": \"Support mailbox\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 201,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"a1b2c3@inbound.eu.bird.com\",\n  \"label\": \"Support mailbox\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dd97de18-57c7-8753-8f3b-7f05acd4151e",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create an inbound address",
                "description": {
                  "content": "Creates a new inbound address. Forward a real mailbox to the returned `address`, and every message sent there arrives as a received email.\n\nThe address works as soon as it is returned and requires no verification step.\n\nAn optional `label` records which source mailbox the address maps to.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"label\": \"Support mailbox\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"a1b2c3@inbound.eu.bird.com\",\n  \"label\": \"Support mailbox\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "f924427f-b55a-871c-8677-d5743a47543b",
          "name": "Get an inbound address",
          "request": {
            "name": "Get an inbound address",
            "description": {
              "content": "Returns a single inbound address: the `address` you forward a mailbox to, and the `label` you gave it. Use [List inbound addresses](https://bird.com/docs/api/reference/list-inbound-addresses) to find IDs. A deleted or unknown address returns `404`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "inbound-addresses",
                ":inbound_address_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "inbound_address_id",
                  "description": "(Required) Inbound address identifier. Starts with `ina_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "882b083e-d5d9-8069-800a-a6143993cb9b",
              "name": "Inbound address object.",
              "originalRequest": {
                "name": "Get an inbound address",
                "description": {
                  "content": "Returns a single inbound address: the `address` you forward a mailbox to, and the `label` you gave it. Use [List inbound addresses](https://bird.com/docs/api/reference/list-inbound-addresses) to find IDs. A deleted or unknown address returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses",
                    ":inbound_address_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_address_id",
                      "description": "(Required) Inbound address identifier. Starts with `ina_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"a1b2c3@inbound.eu.bird.com\",\n  \"label\": \"Support mailbox\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e4fddfac-af42-8667-8f76-305203aaac88",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get an inbound address",
                "description": {
                  "content": "Returns a single inbound address: the `address` you forward a mailbox to, and the `label` you gave it. Use [List inbound addresses](https://bird.com/docs/api/reference/list-inbound-addresses) to find IDs. A deleted or unknown address returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses",
                    ":inbound_address_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_address_id",
                      "description": "(Required) Inbound address identifier. Starts with `ina_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"a1b2c3@inbound.eu.bird.com\",\n  \"label\": \"Support mailbox\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3958eae8-3769-8b6d-8bd8-cc4a696fb0c5",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get an inbound address",
                "description": {
                  "content": "Returns a single inbound address: the `address` you forward a mailbox to, and the `label` you gave it. Use [List inbound addresses](https://bird.com/docs/api/reference/list-inbound-addresses) to find IDs. A deleted or unknown address returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses",
                    ":inbound_address_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_address_id",
                      "description": "(Required) Inbound address identifier. Starts with `ina_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"a1b2c3@inbound.eu.bird.com\",\n  \"label\": \"Support mailbox\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "59e55b5c-4108-8b7e-8d04-803533f71a70",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get an inbound address",
                "description": {
                  "content": "Returns a single inbound address: the `address` you forward a mailbox to, and the `label` you gave it. Use [List inbound addresses](https://bird.com/docs/api/reference/list-inbound-addresses) to find IDs. A deleted or unknown address returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses",
                    ":inbound_address_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_address_id",
                      "description": "(Required) Inbound address identifier. Starts with `ina_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"a1b2c3@inbound.eu.bird.com\",\n  \"label\": \"Support mailbox\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9dfa34f6-5c76-867a-89eb-f3547446d889",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get an inbound address",
                "description": {
                  "content": "Returns a single inbound address: the `address` you forward a mailbox to, and the `label` you gave it. Use [List inbound addresses](https://bird.com/docs/api/reference/list-inbound-addresses) to find IDs. A deleted or unknown address returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses",
                    ":inbound_address_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_address_id",
                      "description": "(Required) Inbound address identifier. Starts with `ina_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"a1b2c3@inbound.eu.bird.com\",\n  \"label\": \"Support mailbox\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "89c0d64f-d6ec-859c-8347-4f87937102e8",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get an inbound address",
                "description": {
                  "content": "Returns a single inbound address: the `address` you forward a mailbox to, and the `label` you gave it. Use [List inbound addresses](https://bird.com/docs/api/reference/list-inbound-addresses) to find IDs. A deleted or unknown address returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses",
                    ":inbound_address_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_address_id",
                      "description": "(Required) Inbound address identifier. Starts with `ina_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"a1b2c3@inbound.eu.bird.com\",\n  \"label\": \"Support mailbox\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "76f1b26d-5fb8-8c58-81b2-f6ea67ae6691",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get an inbound address",
                "description": {
                  "content": "Returns a single inbound address: the `address` you forward a mailbox to, and the `label` you gave it. Use [List inbound addresses](https://bird.com/docs/api/reference/list-inbound-addresses) to find IDs. A deleted or unknown address returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses",
                    ":inbound_address_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_address_id",
                      "description": "(Required) Inbound address identifier. Starts with `ina_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"a1b2c3@inbound.eu.bird.com\",\n  \"label\": \"Support mailbox\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "3bfc72f1-6e9c-8f1e-81fc-3fe708dd1222",
          "name": "Update an inbound address",
          "request": {
            "name": "Update an inbound address",
            "description": {
              "content": "Updates the label on an inbound address. The address itself is fixed and cannot be changed.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "inbound-addresses",
                ":inbound_address_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "inbound_address_id",
                  "description": "(Required) Inbound address identifier. Starts with `ina_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "PATCH",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"label\": \"Sales mailbox\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "022e2432-f3f4-8083-83c4-a00bd92f80ec",
              "name": "Inbound address updated.",
              "originalRequest": {
                "name": "Update an inbound address",
                "description": {
                  "content": "Updates the label on an inbound address. The address itself is fixed and cannot be changed.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses",
                    ":inbound_address_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_address_id",
                      "description": "(Required) Inbound address identifier. Starts with `ina_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"label\": \"Sales mailbox\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"a1b2c3@inbound.eu.bird.com\",\n  \"label\": \"Support mailbox\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1bd36b4b-c34d-8440-85ac-1f73d300d6f8",
              "name": "Bad request",
              "originalRequest": {
                "name": "Update an inbound address",
                "description": {
                  "content": "Updates the label on an inbound address. The address itself is fixed and cannot be changed.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses",
                    ":inbound_address_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_address_id",
                      "description": "(Required) Inbound address identifier. Starts with `ina_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"label\": \"Sales mailbox\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"a1b2c3@inbound.eu.bird.com\",\n  \"label\": \"Support mailbox\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dea431c2-beac-88b1-874d-2706d0320064",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Update an inbound address",
                "description": {
                  "content": "Updates the label on an inbound address. The address itself is fixed and cannot be changed.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses",
                    ":inbound_address_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_address_id",
                      "description": "(Required) Inbound address identifier. Starts with `ina_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"label\": \"Sales mailbox\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"a1b2c3@inbound.eu.bird.com\",\n  \"label\": \"Support mailbox\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "241c2d13-974f-85bc-8ffb-9d0e7797937a",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Update an inbound address",
                "description": {
                  "content": "Updates the label on an inbound address. The address itself is fixed and cannot be changed.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses",
                    ":inbound_address_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_address_id",
                      "description": "(Required) Inbound address identifier. Starts with `ina_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"label\": \"Sales mailbox\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"a1b2c3@inbound.eu.bird.com\",\n  \"label\": \"Support mailbox\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2d821e35-a9bd-8f04-8fba-9949b5f020c3",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Update an inbound address",
                "description": {
                  "content": "Updates the label on an inbound address. The address itself is fixed and cannot be changed.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses",
                    ":inbound_address_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_address_id",
                      "description": "(Required) Inbound address identifier. Starts with `ina_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"label\": \"Sales mailbox\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"a1b2c3@inbound.eu.bird.com\",\n  \"label\": \"Support mailbox\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4814ded2-a5f9-8b34-8576-1c132d42b054",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Update an inbound address",
                "description": {
                  "content": "Updates the label on an inbound address. The address itself is fixed and cannot be changed.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses",
                    ":inbound_address_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_address_id",
                      "description": "(Required) Inbound address identifier. Starts with `ina_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"label\": \"Sales mailbox\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"a1b2c3@inbound.eu.bird.com\",\n  \"label\": \"Support mailbox\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "704c6eca-05e3-8a78-87a9-ea7ed805158c",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Update an inbound address",
                "description": {
                  "content": "Updates the label on an inbound address. The address itself is fixed and cannot be changed.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses",
                    ":inbound_address_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_address_id",
                      "description": "(Required) Inbound address identifier. Starts with `ina_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"label\": \"Sales mailbox\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"a1b2c3@inbound.eu.bird.com\",\n  \"label\": \"Support mailbox\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f5278ce0-2265-8ec6-84a7-b9f70599a9de",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Update an inbound address",
                "description": {
                  "content": "Updates the label on an inbound address. The address itself is fixed and cannot be changed.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses",
                    ":inbound_address_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_address_id",
                      "description": "(Required) Inbound address identifier. Starts with `ina_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"label\": \"Sales mailbox\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"a1b2c3@inbound.eu.bird.com\",\n  \"label\": \"Support mailbox\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "e9374a71-dd2c-8bf6-8eb0-ee32c0a8859e",
          "name": "Delete an inbound address",
          "request": {
            "name": "Delete an inbound address",
            "description": {
              "content": "Deletes an inbound address. Mail forwarded to the address after deletion is no longer received. Previously received messages are unaffected.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "inbound-addresses",
                ":inbound_address_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "inbound_address_id",
                  "description": "(Required) Inbound address identifier. Starts with `ina_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "DELETE"
          },
          "response": [
            {
              "id": "60d3a56f-c9f6-856d-832c-0d08b9bd16b3",
              "name": "Inbound address deleted.",
              "originalRequest": {
                "name": "Delete an inbound address",
                "description": {
                  "content": "Deletes an inbound address. Mail forwarded to the address after deletion is no longer received. Previously received messages are unaffected.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses",
                    ":inbound_address_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_address_id",
                      "description": "(Required) Inbound address identifier. Starts with `ina_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "55b8904e-0f8d-8234-8013-8201883fd409",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Delete an inbound address",
                "description": {
                  "content": "Deletes an inbound address. Mail forwarded to the address after deletion is no longer received. Previously received messages are unaffected.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses",
                    ":inbound_address_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_address_id",
                      "description": "(Required) Inbound address identifier. Starts with `ina_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cf115b7d-9e80-8dba-8578-d39fa0f0fea7",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Delete an inbound address",
                "description": {
                  "content": "Deletes an inbound address. Mail forwarded to the address after deletion is no longer received. Previously received messages are unaffected.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses",
                    ":inbound_address_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_address_id",
                      "description": "(Required) Inbound address identifier. Starts with `ina_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a1305f15-f104-8c9c-8f67-1c9753bef396",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Delete an inbound address",
                "description": {
                  "content": "Deletes an inbound address. Mail forwarded to the address after deletion is no longer received. Previously received messages are unaffected.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses",
                    ":inbound_address_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_address_id",
                      "description": "(Required) Inbound address identifier. Starts with `ina_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "60dd4691-0a77-8b37-8681-e5152f45f258",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Delete an inbound address",
                "description": {
                  "content": "Deletes an inbound address. Mail forwarded to the address after deletion is no longer received. Previously received messages are unaffected.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses",
                    ":inbound_address_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_address_id",
                      "description": "(Required) Inbound address identifier. Starts with `ina_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8db81111-d07a-8bef-8b4b-638fb423fae8",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Delete an inbound address",
                "description": {
                  "content": "Deletes an inbound address. Mail forwarded to the address after deletion is no longer received. Previously received messages are unaffected.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses",
                    ":inbound_address_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_address_id",
                      "description": "(Required) Inbound address identifier. Starts with `ina_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c14ce356-0574-8bec-81b4-56f8e12e3f31",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Delete an inbound address",
                "description": {
                  "content": "Deletes an inbound address. Mail forwarded to the address after deletion is no longer received. Previously received messages are unaffected.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-addresses",
                    ":inbound_address_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_address_id",
                      "description": "(Required) Inbound address identifier. Starts with `ina_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "d3e977a0-9cac-8468-87b8-2b927a9b05f7",
      "name": "email-inbound-messages",
      "description": {
        "content": "Emails received on your behalf, including each parsed message, its body, raw MIME content, and attachments.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "3608aa4e-dc82-8394-89c0-fa4633d118c2",
          "name": "List received emails",
          "request": {
            "name": "List received emails",
            "description": {
              "content": "Returns a paginated list of received emails for the workspace, newest first. Filter by sender address, by the inbound address that received the mail, or by a received-time range. Received emails are retained for 30 days.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "inbound-messages"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "alice@example.com",
                  "description": "Filter to messages whose sender address matches this value exactly. Sender addresses are stored lowercase, so pass the address in lowercase to match reliably."
                },
                {
                  "disabled": true,
                  "key": "inbound_address_id",
                  "value": "",
                  "description": "Filter to messages received on a specific inbound address."
                },
                {
                  "disabled": true,
                  "key": "received_after",
                  "value": "",
                  "description": "Filter to messages received at or after this time."
                },
                {
                  "disabled": true,
                  "key": "received_before",
                  "value": "",
                  "description": "Filter to messages received at or before this time."
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "bfd3b8e6-dfee-8344-814d-db87c0cea873",
              "name": "Paginated list of received emails.",
              "originalRequest": {
                "name": "List received emails",
                "description": {
                  "content": "Returns a paginated list of received emails for the workspace, newest first. Filter by sender address, by the inbound address that received the mail, or by a received-time range. Received emails are retained for 30 days.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "alice@example.com",
                      "description": "Filter to messages whose sender address matches this value exactly. Sender addresses are stored lowercase, so pass the address in lowercase to match reliably."
                    },
                    {
                      "disabled": true,
                      "key": "inbound_address_id",
                      "value": "",
                      "description": "Filter to messages received on a specific inbound address."
                    },
                    {
                      "disabled": true,
                      "key": "received_after",
                      "value": "",
                      "description": "Filter to messages received at or after this time."
                    },
                    {
                      "disabled": true,
                      "key": "received_before",
                      "value": "",
                      "description": "Filter to messages received at or before this time."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"from\": {\n        \"email\": \"jane@acme.com\",\n        \"name\": \"Jane Doe\"\n      },\n      \"to\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"cc\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"subject\": \"Re: Your receipt\",\n      \"message_id\": \"<CAH+T8d5...@mail.gmail.com>\",\n      \"in_reply_to\": \"<previous-message@example.com>\",\n      \"authentication\": \"pass\",\n      \"attachments\": [\n        {\n          \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\",\n          \"size\": 215432\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b15cceca-405e-84d9-86f0-b2f83cf39a0c",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List received emails",
                "description": {
                  "content": "Returns a paginated list of received emails for the workspace, newest first. Filter by sender address, by the inbound address that received the mail, or by a received-time range. Received emails are retained for 30 days.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "alice@example.com",
                      "description": "Filter to messages whose sender address matches this value exactly. Sender addresses are stored lowercase, so pass the address in lowercase to match reliably."
                    },
                    {
                      "disabled": true,
                      "key": "inbound_address_id",
                      "value": "",
                      "description": "Filter to messages received on a specific inbound address."
                    },
                    {
                      "disabled": true,
                      "key": "received_after",
                      "value": "",
                      "description": "Filter to messages received at or after this time."
                    },
                    {
                      "disabled": true,
                      "key": "received_before",
                      "value": "",
                      "description": "Filter to messages received at or before this time."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"from\": {\n        \"email\": \"jane@acme.com\",\n        \"name\": \"Jane Doe\"\n      },\n      \"to\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"cc\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"subject\": \"Re: Your receipt\",\n      \"message_id\": \"<CAH+T8d5...@mail.gmail.com>\",\n      \"in_reply_to\": \"<previous-message@example.com>\",\n      \"authentication\": \"pass\",\n      \"attachments\": [\n        {\n          \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\",\n          \"size\": 215432\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "57e06882-b67b-83bd-8191-a6c570cd7590",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List received emails",
                "description": {
                  "content": "Returns a paginated list of received emails for the workspace, newest first. Filter by sender address, by the inbound address that received the mail, or by a received-time range. Received emails are retained for 30 days.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "alice@example.com",
                      "description": "Filter to messages whose sender address matches this value exactly. Sender addresses are stored lowercase, so pass the address in lowercase to match reliably."
                    },
                    {
                      "disabled": true,
                      "key": "inbound_address_id",
                      "value": "",
                      "description": "Filter to messages received on a specific inbound address."
                    },
                    {
                      "disabled": true,
                      "key": "received_after",
                      "value": "",
                      "description": "Filter to messages received at or after this time."
                    },
                    {
                      "disabled": true,
                      "key": "received_before",
                      "value": "",
                      "description": "Filter to messages received at or before this time."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"from\": {\n        \"email\": \"jane@acme.com\",\n        \"name\": \"Jane Doe\"\n      },\n      \"to\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"cc\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"subject\": \"Re: Your receipt\",\n      \"message_id\": \"<CAH+T8d5...@mail.gmail.com>\",\n      \"in_reply_to\": \"<previous-message@example.com>\",\n      \"authentication\": \"pass\",\n      \"attachments\": [\n        {\n          \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\",\n          \"size\": 215432\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "38871543-af61-8c24-87f9-1440355f0320",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List received emails",
                "description": {
                  "content": "Returns a paginated list of received emails for the workspace, newest first. Filter by sender address, by the inbound address that received the mail, or by a received-time range. Received emails are retained for 30 days.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "alice@example.com",
                      "description": "Filter to messages whose sender address matches this value exactly. Sender addresses are stored lowercase, so pass the address in lowercase to match reliably."
                    },
                    {
                      "disabled": true,
                      "key": "inbound_address_id",
                      "value": "",
                      "description": "Filter to messages received on a specific inbound address."
                    },
                    {
                      "disabled": true,
                      "key": "received_after",
                      "value": "",
                      "description": "Filter to messages received at or after this time."
                    },
                    {
                      "disabled": true,
                      "key": "received_before",
                      "value": "",
                      "description": "Filter to messages received at or before this time."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"from\": {\n        \"email\": \"jane@acme.com\",\n        \"name\": \"Jane Doe\"\n      },\n      \"to\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"cc\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"subject\": \"Re: Your receipt\",\n      \"message_id\": \"<CAH+T8d5...@mail.gmail.com>\",\n      \"in_reply_to\": \"<previous-message@example.com>\",\n      \"authentication\": \"pass\",\n      \"attachments\": [\n        {\n          \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\",\n          \"size\": 215432\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c32edac0-71b8-870e-880a-293126078ed4",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List received emails",
                "description": {
                  "content": "Returns a paginated list of received emails for the workspace, newest first. Filter by sender address, by the inbound address that received the mail, or by a received-time range. Received emails are retained for 30 days.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "alice@example.com",
                      "description": "Filter to messages whose sender address matches this value exactly. Sender addresses are stored lowercase, so pass the address in lowercase to match reliably."
                    },
                    {
                      "disabled": true,
                      "key": "inbound_address_id",
                      "value": "",
                      "description": "Filter to messages received on a specific inbound address."
                    },
                    {
                      "disabled": true,
                      "key": "received_after",
                      "value": "",
                      "description": "Filter to messages received at or after this time."
                    },
                    {
                      "disabled": true,
                      "key": "received_before",
                      "value": "",
                      "description": "Filter to messages received at or before this time."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"from\": {\n        \"email\": \"jane@acme.com\",\n        \"name\": \"Jane Doe\"\n      },\n      \"to\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"cc\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"subject\": \"Re: Your receipt\",\n      \"message_id\": \"<CAH+T8d5...@mail.gmail.com>\",\n      \"in_reply_to\": \"<previous-message@example.com>\",\n      \"authentication\": \"pass\",\n      \"attachments\": [\n        {\n          \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\",\n          \"size\": 215432\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a7a23e63-3e56-82d5-8ecd-a17db70487ee",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List received emails",
                "description": {
                  "content": "Returns a paginated list of received emails for the workspace, newest first. Filter by sender address, by the inbound address that received the mail, or by a received-time range. Received emails are retained for 30 days.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "alice@example.com",
                      "description": "Filter to messages whose sender address matches this value exactly. Sender addresses are stored lowercase, so pass the address in lowercase to match reliably."
                    },
                    {
                      "disabled": true,
                      "key": "inbound_address_id",
                      "value": "",
                      "description": "Filter to messages received on a specific inbound address."
                    },
                    {
                      "disabled": true,
                      "key": "received_after",
                      "value": "",
                      "description": "Filter to messages received at or after this time."
                    },
                    {
                      "disabled": true,
                      "key": "received_before",
                      "value": "",
                      "description": "Filter to messages received at or before this time."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"from\": {\n        \"email\": \"jane@acme.com\",\n        \"name\": \"Jane Doe\"\n      },\n      \"to\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"cc\": [\n        {\n          \"email\": \"jane@acme.com\",\n          \"name\": \"Jane Doe\"\n        }\n      ],\n      \"subject\": \"Re: Your receipt\",\n      \"message_id\": \"<CAH+T8d5...@mail.gmail.com>\",\n      \"in_reply_to\": \"<previous-message@example.com>\",\n      \"authentication\": \"pass\",\n      \"attachments\": [\n        {\n          \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\",\n          \"size\": 215432\n        }\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "a0200dfb-f48e-84ef-8372-71d6ab580239",
          "name": "Get a received email",
          "request": {
            "name": "Get a received email",
            "description": {
              "content": "Returns the parsed metadata for a received email:\n\n- Addresses.\n- Subject.\n- Threading headers.\n- Authentication results.\n- The attachment manifest.\n\nContent is fetched separately:\n\n- Get the parsed body from [Get a received email's body](https://bird.com/docs/api/reference/get-inbound-message-body).\n- Get the original MIME from [Get a received email's raw content](https://bird.com/docs/api/reference/get-inbound-message-raw).\n- Get attachment bytes from [Get a received email's attachment](https://bird.com/docs/api/reference/get-inbound-message-attachment).\n\nReceived emails are retained for 30 days. An unknown or expired message returns `404`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "inbound-messages",
                ":inbound_message_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "inbound_message_id",
                  "description": "(Required) Received email identifier. Starts with `rem_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "8ccfde34-9484-8d4f-84da-b870045d84f5",
              "name": "Received email object.",
              "originalRequest": {
                "name": "Get a received email",
                "description": {
                  "content": "Returns the parsed metadata for a received email:\n\n- Addresses.\n- Subject.\n- Threading headers.\n- Authentication results.\n- The attachment manifest.\n\nContent is fetched separately:\n\n- Get the parsed body from [Get a received email's body](https://bird.com/docs/api/reference/get-inbound-message-body).\n- Get the original MIME from [Get a received email's raw content](https://bird.com/docs/api/reference/get-inbound-message-raw).\n- Get attachment bytes from [Get a received email's attachment](https://bird.com/docs/api/reference/get-inbound-message-attachment).\n\nReceived emails are retained for 30 days. An unknown or expired message returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"from\": {\n    \"email\": \"jane@acme.com\",\n    \"name\": \"Jane Doe\"\n  },\n  \"to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"subject\": \"Re: Your receipt\",\n  \"message_id\": \"<CAH+T8d5...@mail.gmail.com>\",\n  \"in_reply_to\": \"<previous-message@example.com>\",\n  \"authentication\": \"pass\",\n  \"attachments\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "744a4b64-0b64-8dd7-8ea4-1ce941074dea",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a received email",
                "description": {
                  "content": "Returns the parsed metadata for a received email:\n\n- Addresses.\n- Subject.\n- Threading headers.\n- Authentication results.\n- The attachment manifest.\n\nContent is fetched separately:\n\n- Get the parsed body from [Get a received email's body](https://bird.com/docs/api/reference/get-inbound-message-body).\n- Get the original MIME from [Get a received email's raw content](https://bird.com/docs/api/reference/get-inbound-message-raw).\n- Get attachment bytes from [Get a received email's attachment](https://bird.com/docs/api/reference/get-inbound-message-attachment).\n\nReceived emails are retained for 30 days. An unknown or expired message returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"from\": {\n    \"email\": \"jane@acme.com\",\n    \"name\": \"Jane Doe\"\n  },\n  \"to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"subject\": \"Re: Your receipt\",\n  \"message_id\": \"<CAH+T8d5...@mail.gmail.com>\",\n  \"in_reply_to\": \"<previous-message@example.com>\",\n  \"authentication\": \"pass\",\n  \"attachments\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c044d757-015c-8e29-8fcb-1f983c7f25e2",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a received email",
                "description": {
                  "content": "Returns the parsed metadata for a received email:\n\n- Addresses.\n- Subject.\n- Threading headers.\n- Authentication results.\n- The attachment manifest.\n\nContent is fetched separately:\n\n- Get the parsed body from [Get a received email's body](https://bird.com/docs/api/reference/get-inbound-message-body).\n- Get the original MIME from [Get a received email's raw content](https://bird.com/docs/api/reference/get-inbound-message-raw).\n- Get attachment bytes from [Get a received email's attachment](https://bird.com/docs/api/reference/get-inbound-message-attachment).\n\nReceived emails are retained for 30 days. An unknown or expired message returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"from\": {\n    \"email\": \"jane@acme.com\",\n    \"name\": \"Jane Doe\"\n  },\n  \"to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"subject\": \"Re: Your receipt\",\n  \"message_id\": \"<CAH+T8d5...@mail.gmail.com>\",\n  \"in_reply_to\": \"<previous-message@example.com>\",\n  \"authentication\": \"pass\",\n  \"attachments\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6118fdd5-e04d-86cf-8d74-7ce239aefccd",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a received email",
                "description": {
                  "content": "Returns the parsed metadata for a received email:\n\n- Addresses.\n- Subject.\n- Threading headers.\n- Authentication results.\n- The attachment manifest.\n\nContent is fetched separately:\n\n- Get the parsed body from [Get a received email's body](https://bird.com/docs/api/reference/get-inbound-message-body).\n- Get the original MIME from [Get a received email's raw content](https://bird.com/docs/api/reference/get-inbound-message-raw).\n- Get attachment bytes from [Get a received email's attachment](https://bird.com/docs/api/reference/get-inbound-message-attachment).\n\nReceived emails are retained for 30 days. An unknown or expired message returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"from\": {\n    \"email\": \"jane@acme.com\",\n    \"name\": \"Jane Doe\"\n  },\n  \"to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"subject\": \"Re: Your receipt\",\n  \"message_id\": \"<CAH+T8d5...@mail.gmail.com>\",\n  \"in_reply_to\": \"<previous-message@example.com>\",\n  \"authentication\": \"pass\",\n  \"attachments\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "28b245f6-ef2e-86f7-8468-126a513a5007",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a received email",
                "description": {
                  "content": "Returns the parsed metadata for a received email:\n\n- Addresses.\n- Subject.\n- Threading headers.\n- Authentication results.\n- The attachment manifest.\n\nContent is fetched separately:\n\n- Get the parsed body from [Get a received email's body](https://bird.com/docs/api/reference/get-inbound-message-body).\n- Get the original MIME from [Get a received email's raw content](https://bird.com/docs/api/reference/get-inbound-message-raw).\n- Get attachment bytes from [Get a received email's attachment](https://bird.com/docs/api/reference/get-inbound-message-attachment).\n\nReceived emails are retained for 30 days. An unknown or expired message returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"from\": {\n    \"email\": \"jane@acme.com\",\n    \"name\": \"Jane Doe\"\n  },\n  \"to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"subject\": \"Re: Your receipt\",\n  \"message_id\": \"<CAH+T8d5...@mail.gmail.com>\",\n  \"in_reply_to\": \"<previous-message@example.com>\",\n  \"authentication\": \"pass\",\n  \"attachments\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b94ca8b3-b58e-8ece-81af-94d805cfb083",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a received email",
                "description": {
                  "content": "Returns the parsed metadata for a received email:\n\n- Addresses.\n- Subject.\n- Threading headers.\n- Authentication results.\n- The attachment manifest.\n\nContent is fetched separately:\n\n- Get the parsed body from [Get a received email's body](https://bird.com/docs/api/reference/get-inbound-message-body).\n- Get the original MIME from [Get a received email's raw content](https://bird.com/docs/api/reference/get-inbound-message-raw).\n- Get attachment bytes from [Get a received email's attachment](https://bird.com/docs/api/reference/get-inbound-message-attachment).\n\nReceived emails are retained for 30 days. An unknown or expired message returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"from\": {\n    \"email\": \"jane@acme.com\",\n    \"name\": \"Jane Doe\"\n  },\n  \"to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"subject\": \"Re: Your receipt\",\n  \"message_id\": \"<CAH+T8d5...@mail.gmail.com>\",\n  \"in_reply_to\": \"<previous-message@example.com>\",\n  \"authentication\": \"pass\",\n  \"attachments\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "21cf84c5-9495-8ffb-8497-4da23f1f356d",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a received email",
                "description": {
                  "content": "Returns the parsed metadata for a received email:\n\n- Addresses.\n- Subject.\n- Threading headers.\n- Authentication results.\n- The attachment manifest.\n\nContent is fetched separately:\n\n- Get the parsed body from [Get a received email's body](https://bird.com/docs/api/reference/get-inbound-message-body).\n- Get the original MIME from [Get a received email's raw content](https://bird.com/docs/api/reference/get-inbound-message-raw).\n- Get attachment bytes from [Get a received email's attachment](https://bird.com/docs/api/reference/get-inbound-message-attachment).\n\nReceived emails are retained for 30 days. An unknown or expired message returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"from\": {\n    \"email\": \"jane@acme.com\",\n    \"name\": \"Jane Doe\"\n  },\n  \"to\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"cc\": [\n    {\n      \"email\": \"jane@acme.com\",\n      \"name\": \"Jane Doe\"\n    }\n  ],\n  \"subject\": \"Re: Your receipt\",\n  \"message_id\": \"<CAH+T8d5...@mail.gmail.com>\",\n  \"in_reply_to\": \"<previous-message@example.com>\",\n  \"authentication\": \"pass\",\n  \"attachments\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "1eb2fad0-d0f4-8529-8ca9-f136b5a8dc80",
          "name": "Get a received email's body",
          "request": {
            "name": "Get a received email's body",
            "description": {
              "content": "Returns the parsed, decoded body of a received email as JSON: the `html` and `text` parts, each `null` when the message had no such part. This is the reading-friendly form. For the exact original bytes (headers, signatures, full MIME structure) use [Get a received email's raw content](https://bird.com/docs/api/reference/get-inbound-message-raw). An unknown or expired message returns `404`. A message that exists but has no stored content returns both parts `null`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "inbound-messages",
                ":inbound_message_id",
                "body"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "inbound_message_id",
                  "description": "(Required) Received email identifier. Starts with `rem_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "a8e453bd-2089-8ab4-82e1-594d39d56142",
              "name": "Parsed message body.",
              "originalRequest": {
                "name": "Get a received email's body",
                "description": {
                  "content": "Returns the parsed, decoded body of a received email as JSON: the `html` and `text` parts, each `null` when the message had no such part. This is the reading-friendly form. For the exact original bytes (headers, signatures, full MIME structure) use [Get a received email's raw content](https://bird.com/docs/api/reference/get-inbound-message-raw). An unknown or expired message returns `404`. A message that exists but has no stored content returns both parts `null`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "body"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4eda9d43-6313-8de3-8380-655ece36a3d0",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a received email's body",
                "description": {
                  "content": "Returns the parsed, decoded body of a received email as JSON: the `html` and `text` parts, each `null` when the message had no such part. This is the reading-friendly form. For the exact original bytes (headers, signatures, full MIME structure) use [Get a received email's raw content](https://bird.com/docs/api/reference/get-inbound-message-raw). An unknown or expired message returns `404`. A message that exists but has no stored content returns both parts `null`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "body"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0608fd1a-8553-88a6-86f7-70884d9de125",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a received email's body",
                "description": {
                  "content": "Returns the parsed, decoded body of a received email as JSON: the `html` and `text` parts, each `null` when the message had no such part. This is the reading-friendly form. For the exact original bytes (headers, signatures, full MIME structure) use [Get a received email's raw content](https://bird.com/docs/api/reference/get-inbound-message-raw). An unknown or expired message returns `404`. A message that exists but has no stored content returns both parts `null`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "body"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "bf8f1b6b-d0ab-85c3-8cba-b8940268d9fd",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a received email's body",
                "description": {
                  "content": "Returns the parsed, decoded body of a received email as JSON: the `html` and `text` parts, each `null` when the message had no such part. This is the reading-friendly form. For the exact original bytes (headers, signatures, full MIME structure) use [Get a received email's raw content](https://bird.com/docs/api/reference/get-inbound-message-raw). An unknown or expired message returns `404`. A message that exists but has no stored content returns both parts `null`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "body"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6b270efe-755c-8d9b-86de-a667a74ef173",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a received email's body",
                "description": {
                  "content": "Returns the parsed, decoded body of a received email as JSON: the `html` and `text` parts, each `null` when the message had no such part. This is the reading-friendly form. For the exact original bytes (headers, signatures, full MIME structure) use [Get a received email's raw content](https://bird.com/docs/api/reference/get-inbound-message-raw). An unknown or expired message returns `404`. A message that exists but has no stored content returns both parts `null`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "body"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a4bceda4-23ec-8015-8e99-bbcd3cb66348",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a received email's body",
                "description": {
                  "content": "Returns the parsed, decoded body of a received email as JSON: the `html` and `text` parts, each `null` when the message had no such part. This is the reading-friendly form. For the exact original bytes (headers, signatures, full MIME structure) use [Get a received email's raw content](https://bird.com/docs/api/reference/get-inbound-message-raw). An unknown or expired message returns `404`. A message that exists but has no stored content returns both parts `null`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "body"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c4956a01-4d35-8fe4-8df3-d2ea35dd87e0",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a received email's body",
                "description": {
                  "content": "Returns the parsed, decoded body of a received email as JSON: the `html` and `text` parts, each `null` when the message had no such part. This is the reading-friendly form. For the exact original bytes (headers, signatures, full MIME structure) use [Get a received email's raw content](https://bird.com/docs/api/reference/get-inbound-message-raw). An unknown or expired message returns `404`. A message that exists but has no stored content returns both parts `null`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "body"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "d36cf0c2-b004-81f7-806e-a0d1ea0b66de",
          "name": "Get a received email's raw content",
          "request": {
            "name": "Get a received email's raw content",
            "description": {
              "content": "Returns the original message exactly as received, in RFC 5322 (MIME) format, as a `message/rfc822` download. Use it when you need the exact bytes:\n\n- Full headers.\n- Signatures.\n- Your own MIME parsing.\n\nFor parsed fields use [Get a received email](https://bird.com/docs/api/reference/get-inbound-message) and [Get a received email's body](https://bird.com/docs/api/reference/get-inbound-message-body).\n\nReturns `404` when the message is unknown or its stored content has expired (received emails are retained for 30 days). A received message, including its attachments, cannot exceed 25 MB.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "inbound-messages",
                ":inbound_message_id",
                "raw"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "inbound_message_id",
                  "description": "(Required) Received email identifier. Starts with `rem_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "438c8453-c8be-8a2b-8a62-40f8c00ff88d",
              "name": "The original message in RFC 5322 (MIME) format.",
              "originalRequest": {
                "name": "Get a received email's raw content",
                "description": {
                  "content": "Returns the original message exactly as received, in RFC 5322 (MIME) format, as a `message/rfc822` download. Use it when you need the exact bytes:\n\n- Full headers.\n- Signatures.\n- Your own MIME parsing.\n\nFor parsed fields use [Get a received email](https://bird.com/docs/api/reference/get-inbound-message) and [Get a received email's body](https://bird.com/docs/api/reference/get-inbound-message-body).\n\nReturns `404` when the message is unknown or its stored content has expired (received emails are retained for 30 days). A received message, including its attachments, cannot exceed 25 MB.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "raw"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "message/rfc822"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "f8e92b1f-d0f9-8855-8ce4-59fcfdfea777",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a received email's raw content",
                "description": {
                  "content": "Returns the original message exactly as received, in RFC 5322 (MIME) format, as a `message/rfc822` download. Use it when you need the exact bytes:\n\n- Full headers.\n- Signatures.\n- Your own MIME parsing.\n\nFor parsed fields use [Get a received email](https://bird.com/docs/api/reference/get-inbound-message) and [Get a received email's body](https://bird.com/docs/api/reference/get-inbound-message-body).\n\nReturns `404` when the message is unknown or its stored content has expired (received emails are retained for 30 days). A received message, including its attachments, cannot exceed 25 MB.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "raw"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6ce9ea40-eab4-801c-8c73-3f7c955eba4e",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a received email's raw content",
                "description": {
                  "content": "Returns the original message exactly as received, in RFC 5322 (MIME) format, as a `message/rfc822` download. Use it when you need the exact bytes:\n\n- Full headers.\n- Signatures.\n- Your own MIME parsing.\n\nFor parsed fields use [Get a received email](https://bird.com/docs/api/reference/get-inbound-message) and [Get a received email's body](https://bird.com/docs/api/reference/get-inbound-message-body).\n\nReturns `404` when the message is unknown or its stored content has expired (received emails are retained for 30 days). A received message, including its attachments, cannot exceed 25 MB.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "raw"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e95c26c2-2ab7-8abb-80f4-ca98198e0fa8",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a received email's raw content",
                "description": {
                  "content": "Returns the original message exactly as received, in RFC 5322 (MIME) format, as a `message/rfc822` download. Use it when you need the exact bytes:\n\n- Full headers.\n- Signatures.\n- Your own MIME parsing.\n\nFor parsed fields use [Get a received email](https://bird.com/docs/api/reference/get-inbound-message) and [Get a received email's body](https://bird.com/docs/api/reference/get-inbound-message-body).\n\nReturns `404` when the message is unknown or its stored content has expired (received emails are retained for 30 days). A received message, including its attachments, cannot exceed 25 MB.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "raw"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2e191cc0-6d7b-8ca5-8023-4c563d1e2638",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a received email's raw content",
                "description": {
                  "content": "Returns the original message exactly as received, in RFC 5322 (MIME) format, as a `message/rfc822` download. Use it when you need the exact bytes:\n\n- Full headers.\n- Signatures.\n- Your own MIME parsing.\n\nFor parsed fields use [Get a received email](https://bird.com/docs/api/reference/get-inbound-message) and [Get a received email's body](https://bird.com/docs/api/reference/get-inbound-message-body).\n\nReturns `404` when the message is unknown or its stored content has expired (received emails are retained for 30 days). A received message, including its attachments, cannot exceed 25 MB.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "raw"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ef723723-13bf-85e0-8ad3-941ebf1e2f6f",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a received email's raw content",
                "description": {
                  "content": "Returns the original message exactly as received, in RFC 5322 (MIME) format, as a `message/rfc822` download. Use it when you need the exact bytes:\n\n- Full headers.\n- Signatures.\n- Your own MIME parsing.\n\nFor parsed fields use [Get a received email](https://bird.com/docs/api/reference/get-inbound-message) and [Get a received email's body](https://bird.com/docs/api/reference/get-inbound-message-body).\n\nReturns `404` when the message is unknown or its stored content has expired (received emails are retained for 30 days). A received message, including its attachments, cannot exceed 25 MB.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "raw"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a9cd3f03-5d51-898a-8361-d286ff3a36c2",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a received email's raw content",
                "description": {
                  "content": "Returns the original message exactly as received, in RFC 5322 (MIME) format, as a `message/rfc822` download. Use it when you need the exact bytes:\n\n- Full headers.\n- Signatures.\n- Your own MIME parsing.\n\nFor parsed fields use [Get a received email](https://bird.com/docs/api/reference/get-inbound-message) and [Get a received email's body](https://bird.com/docs/api/reference/get-inbound-message-body).\n\nReturns `404` when the message is unknown or its stored content has expired (received emails are retained for 30 days). A received message, including its attachments, cannot exceed 25 MB.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "raw"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "2a96cf8b-0308-8466-82f0-f6d0e7f25347",
          "name": "List a received email's attachments",
          "request": {
            "name": "List a received email's attachments",
            "description": {
              "content": "Returns metadata for each attachment on a received email:\n\n- The `attachment_id`.\n- The declared filename.\n- The MIME type.\n- The size.\n\nThe same manifest is embedded in [Get a received email](https://bird.com/docs/api/reference/get-inbound-message). Fetch an individual attachment's bytes with [Get a received email's attachment](https://bird.com/docs/api/reference/get-inbound-message-attachment).\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "inbound-messages",
                ":inbound_message_id",
                "attachments"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "inbound_message_id",
                  "description": "(Required) Received email identifier. Starts with `rem_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "dca6e291-912e-843b-80ed-349a690eb208",
              "name": "The attachments on the received email.",
              "originalRequest": {
                "name": "List a received email's attachments",
                "description": {
                  "content": "Returns metadata for each attachment on a received email:\n\n- The `attachment_id`.\n- The declared filename.\n- The MIME type.\n- The size.\n\nThe same manifest is embedded in [Get a received email](https://bird.com/docs/api/reference/get-inbound-message). Fetch an individual attachment's bytes with [Get a received email's attachment](https://bird.com/docs/api/reference/get-inbound-message-attachment).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "attachments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "83060372-e7f4-8d39-8787-fd554163429c",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List a received email's attachments",
                "description": {
                  "content": "Returns metadata for each attachment on a received email:\n\n- The `attachment_id`.\n- The declared filename.\n- The MIME type.\n- The size.\n\nThe same manifest is embedded in [Get a received email](https://bird.com/docs/api/reference/get-inbound-message). Fetch an individual attachment's bytes with [Get a received email's attachment](https://bird.com/docs/api/reference/get-inbound-message-attachment).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "attachments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "bc4080e6-dd12-84d7-8210-9b29a24b5843",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List a received email's attachments",
                "description": {
                  "content": "Returns metadata for each attachment on a received email:\n\n- The `attachment_id`.\n- The declared filename.\n- The MIME type.\n- The size.\n\nThe same manifest is embedded in [Get a received email](https://bird.com/docs/api/reference/get-inbound-message). Fetch an individual attachment's bytes with [Get a received email's attachment](https://bird.com/docs/api/reference/get-inbound-message-attachment).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "attachments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dad1be65-7b39-80aa-8323-1abbd68841a4",
              "name": "Resource not found",
              "originalRequest": {
                "name": "List a received email's attachments",
                "description": {
                  "content": "Returns metadata for each attachment on a received email:\n\n- The `attachment_id`.\n- The declared filename.\n- The MIME type.\n- The size.\n\nThe same manifest is embedded in [Get a received email](https://bird.com/docs/api/reference/get-inbound-message). Fetch an individual attachment's bytes with [Get a received email's attachment](https://bird.com/docs/api/reference/get-inbound-message-attachment).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "attachments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e7c97ebb-d74f-8300-8cd7-0c2918a2a683",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List a received email's attachments",
                "description": {
                  "content": "Returns metadata for each attachment on a received email:\n\n- The `attachment_id`.\n- The declared filename.\n- The MIME type.\n- The size.\n\nThe same manifest is embedded in [Get a received email](https://bird.com/docs/api/reference/get-inbound-message). Fetch an individual attachment's bytes with [Get a received email's attachment](https://bird.com/docs/api/reference/get-inbound-message-attachment).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "attachments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8fdcdd01-6e9a-83f3-821a-8aef84e50f21",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List a received email's attachments",
                "description": {
                  "content": "Returns metadata for each attachment on a received email:\n\n- The `attachment_id`.\n- The declared filename.\n- The MIME type.\n- The size.\n\nThe same manifest is embedded in [Get a received email](https://bird.com/docs/api/reference/get-inbound-message). Fetch an individual attachment's bytes with [Get a received email's attachment](https://bird.com/docs/api/reference/get-inbound-message-attachment).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "attachments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2272a30b-8606-812f-8633-62fffa823837",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List a received email's attachments",
                "description": {
                  "content": "Returns metadata for each attachment on a received email:\n\n- The `attachment_id`.\n- The declared filename.\n- The MIME type.\n- The size.\n\nThe same manifest is embedded in [Get a received email](https://bird.com/docs/api/reference/get-inbound-message). Fetch an individual attachment's bytes with [Get a received email's attachment](https://bird.com/docs/api/reference/get-inbound-message-attachment).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "attachments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\",\n      \"size\": 215432\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "0b2444a4-d414-8022-80d6-7f91e740eeb6",
          "name": "Get a received email's attachment",
          "request": {
            "name": "Get a received email's attachment",
            "description": {
              "content": "Returns the raw bytes of a single attachment on a received email, served as `application/octet-stream`. The attachment's declared MIME type and filename are in its metadata, from [List a received email's attachments](https://bird.com/docs/api/reference/list-inbound-message-attachments), which is also where you find the `attachment_id`. Returns `404` when the attachment is not part of the message or its stored bytes have expired. A received message, including its attachments, cannot exceed 25 MB.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "inbound-messages",
                ":inbound_message_id",
                "attachments",
                ":attachment_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "inbound_message_id",
                  "description": "(Required) Received email identifier. Starts with `rem_`."
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "attachment_id",
                  "description": "(Required) Inbound attachment identifier. Starts with `rea_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "2bdee065-3bc3-8381-82d9-c86a632757e8",
              "name": "The raw attachment bytes.",
              "originalRequest": {
                "name": "Get a received email's attachment",
                "description": {
                  "content": "Returns the raw bytes of a single attachment on a received email, served as `application/octet-stream`. The attachment's declared MIME type and filename are in its metadata, from [List a received email's attachments](https://bird.com/docs/api/reference/list-inbound-message-attachments), which is also where you find the `attachment_id`. Returns `404` when the attachment is not part of the message or its stored bytes have expired. A received message, including its attachments, cannot exceed 25 MB.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Inbound attachment identifier. Starts with `rea_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/octet-stream"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "65ffce53-7ca2-8abc-82cc-dc5e3c4a9f6d",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a received email's attachment",
                "description": {
                  "content": "Returns the raw bytes of a single attachment on a received email, served as `application/octet-stream`. The attachment's declared MIME type and filename are in its metadata, from [List a received email's attachments](https://bird.com/docs/api/reference/list-inbound-message-attachments), which is also where you find the `attachment_id`. Returns `404` when the attachment is not part of the message or its stored bytes have expired. A received message, including its attachments, cannot exceed 25 MB.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Inbound attachment identifier. Starts with `rea_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c6f66186-d83b-83ac-8099-613877b59742",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a received email's attachment",
                "description": {
                  "content": "Returns the raw bytes of a single attachment on a received email, served as `application/octet-stream`. The attachment's declared MIME type and filename are in its metadata, from [List a received email's attachments](https://bird.com/docs/api/reference/list-inbound-message-attachments), which is also where you find the `attachment_id`. Returns `404` when the attachment is not part of the message or its stored bytes have expired. A received message, including its attachments, cannot exceed 25 MB.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Inbound attachment identifier. Starts with `rea_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5473fa52-5449-84f4-8d53-b1e02b3e4001",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a received email's attachment",
                "description": {
                  "content": "Returns the raw bytes of a single attachment on a received email, served as `application/octet-stream`. The attachment's declared MIME type and filename are in its metadata, from [List a received email's attachments](https://bird.com/docs/api/reference/list-inbound-message-attachments), which is also where you find the `attachment_id`. Returns `404` when the attachment is not part of the message or its stored bytes have expired. A received message, including its attachments, cannot exceed 25 MB.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Inbound attachment identifier. Starts with `rea_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "25388a72-4e4d-88b9-8c4c-6913f0f6c2b9",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a received email's attachment",
                "description": {
                  "content": "Returns the raw bytes of a single attachment on a received email, served as `application/octet-stream`. The attachment's declared MIME type and filename are in its metadata, from [List a received email's attachments](https://bird.com/docs/api/reference/list-inbound-message-attachments), which is also where you find the `attachment_id`. Returns `404` when the attachment is not part of the message or its stored bytes have expired. A received message, including its attachments, cannot exceed 25 MB.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Inbound attachment identifier. Starts with `rea_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "19d1d2ff-14c7-8feb-8adc-ceb4f552e3a6",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a received email's attachment",
                "description": {
                  "content": "Returns the raw bytes of a single attachment on a received email, served as `application/octet-stream`. The attachment's declared MIME type and filename are in its metadata, from [List a received email's attachments](https://bird.com/docs/api/reference/list-inbound-message-attachments), which is also where you find the `attachment_id`. Returns `404` when the attachment is not part of the message or its stored bytes have expired. A received message, including its attachments, cannot exceed 25 MB.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Inbound attachment identifier. Starts with `rea_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "41ce6668-93e7-8427-80d2-ced026826292",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a received email's attachment",
                "description": {
                  "content": "Returns the raw bytes of a single attachment on a received email, served as `application/octet-stream`. The attachment's declared MIME type and filename are in its metadata, from [List a received email's attachments](https://bird.com/docs/api/reference/list-inbound-message-attachments), which is also where you find the `attachment_id`. Returns `404` when the attachment is not part of the message or its stored bytes have expired. A received message, including its attachments, cannot exceed 25 MB.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-messages",
                    ":inbound_message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "inbound_message_id",
                      "description": "(Required) Received email identifier. Starts with `rem_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Inbound attachment identifier. Starts with `rea_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "03bd3564-f4fb-8ebc-8a2c-41fef8f12b70",
      "name": "email-mailboxes",
      "description": {
        "content": "Durable mailbox identities for agents. A mailbox owns an address, applies receive policy through allow/block rules, and remembers conversations for its retention tier.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "4185dc19-9cf3-89b7-8e54-85c29bc487bb",
          "name": "List mailboxes",
          "request": {
            "name": "List mailboxes",
            "description": {
              "content": "Returns a paginated list of the workspace's mailboxes, newest first. Search across addresses and display names with `q`, look a mailbox up by its exact address, or filter by lifecycle state or domain.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "mailboxes"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "address",
                  "value": "concierge@inbox.ai",
                  "description": "Filter to the mailbox with exactly this address."
                },
                {
                  "disabled": false,
                  "key": "q",
                  "value": "concierge",
                  "description": "Case-insensitive search matching the mailbox's address or display name (substring)."
                },
                {
                  "disabled": true,
                  "key": "state",
                  "value": "",
                  "description": "Return only `active` or `suspended` mailboxes. Use `include_deleted` for restorable deleted mailboxes."
                },
                {
                  "disabled": false,
                  "key": "domain",
                  "value": "inbox.ai",
                  "description": "Filter to mailboxes whose address is on this domain."
                },
                {
                  "disabled": false,
                  "key": "include_deleted",
                  "value": "false",
                  "description": "Include mailboxes deleted within their 30-day restore window. Defaults to false, so only active and suspended mailboxes are returned. A deleted mailbox has `deleted_at` set."
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "eed9c8d6-71f4-8177-840e-b69c970842e3",
              "name": "Paginated list of mailboxes.",
              "originalRequest": {
                "name": "List mailboxes",
                "description": {
                  "content": "Returns a paginated list of the workspace's mailboxes, newest first. Search across addresses and display names with `q`, look a mailbox up by its exact address, or filter by lifecycle state or domain.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "address",
                      "value": "concierge@inbox.ai",
                      "description": "Filter to the mailbox with exactly this address."
                    },
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "concierge",
                      "description": "Case-insensitive search matching the mailbox's address or display name (substring)."
                    },
                    {
                      "disabled": true,
                      "key": "state",
                      "value": "",
                      "description": "Return only `active` or `suspended` mailboxes. Use `include_deleted` for restorable deleted mailboxes."
                    },
                    {
                      "disabled": false,
                      "key": "domain",
                      "value": "inbox.ai",
                      "description": "Filter to mailboxes whose address is on this domain."
                    },
                    {
                      "disabled": false,
                      "key": "include_deleted",
                      "value": "false",
                      "description": "Include mailboxes deleted within their 30-day restore window. Defaults to false, so only active and suspended mailboxes are returned. A deleted mailbox has `deleted_at` set."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"address\": \"concierge@inbox.ai\",\n      \"display_name\": \"Acme Concierge\",\n      \"receive_policy\": \"open\",\n      \"state\": \"active\",\n      \"channel\": \"email\",\n      \"owner\": {\n        \"type\": \"workspace\",\n        \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n      },\n      \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"retention_tier\": \"30d\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1c986bf4-6049-8cec-8ecd-c7d43812c879",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List mailboxes",
                "description": {
                  "content": "Returns a paginated list of the workspace's mailboxes, newest first. Search across addresses and display names with `q`, look a mailbox up by its exact address, or filter by lifecycle state or domain.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "address",
                      "value": "concierge@inbox.ai",
                      "description": "Filter to the mailbox with exactly this address."
                    },
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "concierge",
                      "description": "Case-insensitive search matching the mailbox's address or display name (substring)."
                    },
                    {
                      "disabled": true,
                      "key": "state",
                      "value": "",
                      "description": "Return only `active` or `suspended` mailboxes. Use `include_deleted` for restorable deleted mailboxes."
                    },
                    {
                      "disabled": false,
                      "key": "domain",
                      "value": "inbox.ai",
                      "description": "Filter to mailboxes whose address is on this domain."
                    },
                    {
                      "disabled": false,
                      "key": "include_deleted",
                      "value": "false",
                      "description": "Include mailboxes deleted within their 30-day restore window. Defaults to false, so only active and suspended mailboxes are returned. A deleted mailbox has `deleted_at` set."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"address\": \"concierge@inbox.ai\",\n      \"display_name\": \"Acme Concierge\",\n      \"receive_policy\": \"open\",\n      \"state\": \"active\",\n      \"channel\": \"email\",\n      \"owner\": {\n        \"type\": \"workspace\",\n        \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n      },\n      \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"retention_tier\": \"30d\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "eb208a79-63b4-8fd8-8398-1eeec506960e",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List mailboxes",
                "description": {
                  "content": "Returns a paginated list of the workspace's mailboxes, newest first. Search across addresses and display names with `q`, look a mailbox up by its exact address, or filter by lifecycle state or domain.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "address",
                      "value": "concierge@inbox.ai",
                      "description": "Filter to the mailbox with exactly this address."
                    },
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "concierge",
                      "description": "Case-insensitive search matching the mailbox's address or display name (substring)."
                    },
                    {
                      "disabled": true,
                      "key": "state",
                      "value": "",
                      "description": "Return only `active` or `suspended` mailboxes. Use `include_deleted` for restorable deleted mailboxes."
                    },
                    {
                      "disabled": false,
                      "key": "domain",
                      "value": "inbox.ai",
                      "description": "Filter to mailboxes whose address is on this domain."
                    },
                    {
                      "disabled": false,
                      "key": "include_deleted",
                      "value": "false",
                      "description": "Include mailboxes deleted within their 30-day restore window. Defaults to false, so only active and suspended mailboxes are returned. A deleted mailbox has `deleted_at` set."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"address\": \"concierge@inbox.ai\",\n      \"display_name\": \"Acme Concierge\",\n      \"receive_policy\": \"open\",\n      \"state\": \"active\",\n      \"channel\": \"email\",\n      \"owner\": {\n        \"type\": \"workspace\",\n        \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n      },\n      \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"retention_tier\": \"30d\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f892256e-5f93-8947-8338-9f1595a885bf",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List mailboxes",
                "description": {
                  "content": "Returns a paginated list of the workspace's mailboxes, newest first. Search across addresses and display names with `q`, look a mailbox up by its exact address, or filter by lifecycle state or domain.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "address",
                      "value": "concierge@inbox.ai",
                      "description": "Filter to the mailbox with exactly this address."
                    },
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "concierge",
                      "description": "Case-insensitive search matching the mailbox's address or display name (substring)."
                    },
                    {
                      "disabled": true,
                      "key": "state",
                      "value": "",
                      "description": "Return only `active` or `suspended` mailboxes. Use `include_deleted` for restorable deleted mailboxes."
                    },
                    {
                      "disabled": false,
                      "key": "domain",
                      "value": "inbox.ai",
                      "description": "Filter to mailboxes whose address is on this domain."
                    },
                    {
                      "disabled": false,
                      "key": "include_deleted",
                      "value": "false",
                      "description": "Include mailboxes deleted within their 30-day restore window. Defaults to false, so only active and suspended mailboxes are returned. A deleted mailbox has `deleted_at` set."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"address\": \"concierge@inbox.ai\",\n      \"display_name\": \"Acme Concierge\",\n      \"receive_policy\": \"open\",\n      \"state\": \"active\",\n      \"channel\": \"email\",\n      \"owner\": {\n        \"type\": \"workspace\",\n        \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n      },\n      \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"retention_tier\": \"30d\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7cdecde0-9de0-88e2-8ce9-01ff407110fe",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List mailboxes",
                "description": {
                  "content": "Returns a paginated list of the workspace's mailboxes, newest first. Search across addresses and display names with `q`, look a mailbox up by its exact address, or filter by lifecycle state or domain.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "address",
                      "value": "concierge@inbox.ai",
                      "description": "Filter to the mailbox with exactly this address."
                    },
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "concierge",
                      "description": "Case-insensitive search matching the mailbox's address or display name (substring)."
                    },
                    {
                      "disabled": true,
                      "key": "state",
                      "value": "",
                      "description": "Return only `active` or `suspended` mailboxes. Use `include_deleted` for restorable deleted mailboxes."
                    },
                    {
                      "disabled": false,
                      "key": "domain",
                      "value": "inbox.ai",
                      "description": "Filter to mailboxes whose address is on this domain."
                    },
                    {
                      "disabled": false,
                      "key": "include_deleted",
                      "value": "false",
                      "description": "Include mailboxes deleted within their 30-day restore window. Defaults to false, so only active and suspended mailboxes are returned. A deleted mailbox has `deleted_at` set."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"address\": \"concierge@inbox.ai\",\n      \"display_name\": \"Acme Concierge\",\n      \"receive_policy\": \"open\",\n      \"state\": \"active\",\n      \"channel\": \"email\",\n      \"owner\": {\n        \"type\": \"workspace\",\n        \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n      },\n      \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"retention_tier\": \"30d\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3eb3c514-7f8d-8a7d-8ef4-af20818ca45d",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List mailboxes",
                "description": {
                  "content": "Returns a paginated list of the workspace's mailboxes, newest first. Search across addresses and display names with `q`, look a mailbox up by its exact address, or filter by lifecycle state or domain.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "address",
                      "value": "concierge@inbox.ai",
                      "description": "Filter to the mailbox with exactly this address."
                    },
                    {
                      "disabled": false,
                      "key": "q",
                      "value": "concierge",
                      "description": "Case-insensitive search matching the mailbox's address or display name (substring)."
                    },
                    {
                      "disabled": true,
                      "key": "state",
                      "value": "",
                      "description": "Return only `active` or `suspended` mailboxes. Use `include_deleted` for restorable deleted mailboxes."
                    },
                    {
                      "disabled": false,
                      "key": "domain",
                      "value": "inbox.ai",
                      "description": "Filter to mailboxes whose address is on this domain."
                    },
                    {
                      "disabled": false,
                      "key": "include_deleted",
                      "value": "false",
                      "description": "Include mailboxes deleted within their 30-day restore window. Defaults to false, so only active and suspended mailboxes are returned. A deleted mailbox has `deleted_at` set."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"address\": \"concierge@inbox.ai\",\n      \"display_name\": \"Acme Concierge\",\n      \"receive_policy\": \"open\",\n      \"state\": \"active\",\n      \"channel\": \"email\",\n      \"owner\": {\n        \"type\": \"workspace\",\n        \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n      },\n      \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"retention_tier\": \"30d\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "8a19ccef-e298-8c52-8f50-1491a227a3ef",
          "name": "Create a mailbox",
          "request": {
            "name": "Create a mailbox",
            "description": {
              "content": "Creates a mailbox. The address is `local_part@domain`. The domain defaults to `inbox.ai`, Bird's shared mailbox domain, where creating the mailbox claims the address for your organization. It is first come, first served, and reserved to your organization even after the mailbox is deleted. You may instead name one of your own domains that is enabled for receiving email. An omitted local part is generated. On a custom domain, addresses of deleted mailboxes are quarantined for 30 days and remain reserved for your workspace.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "mailboxes"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"local_part\": \"concierge\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"retention_tier\": \"30d\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "3c3fe169-bf06-819f-8c75-b52a340c0673",
              "name": "Mailbox created.",
              "originalRequest": {
                "name": "Create a mailbox",
                "description": {
                  "content": "Creates a mailbox. The address is `local_part@domain`. The domain defaults to `inbox.ai`, Bird's shared mailbox domain, where creating the mailbox claims the address for your organization. It is first come, first served, and reserved to your organization even after the mailbox is deleted. You may instead name one of your own domains that is enabled for receiving email. An omitted local part is generated. On a custom domain, addresses of deleted mailboxes are quarantined for 30 days and remain reserved for your workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"local_part\": \"concierge\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"retention_tier\": \"30d\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3514bd46-840d-89ca-8d25-d4ded4181d72",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create a mailbox",
                "description": {
                  "content": "Creates a mailbox. The address is `local_part@domain`. The domain defaults to `inbox.ai`, Bird's shared mailbox domain, where creating the mailbox claims the address for your organization. It is first come, first served, and reserved to your organization even after the mailbox is deleted. You may instead name one of your own domains that is enabled for receiving email. An omitted local part is generated. On a custom domain, addresses of deleted mailboxes are quarantined for 30 days and remain reserved for your workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"local_part\": \"concierge\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"retention_tier\": \"30d\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e6a54612-e320-892b-8524-e2033a5c25ad",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create a mailbox",
                "description": {
                  "content": "Creates a mailbox. The address is `local_part@domain`. The domain defaults to `inbox.ai`, Bird's shared mailbox domain, where creating the mailbox claims the address for your organization. It is first come, first served, and reserved to your organization even after the mailbox is deleted. You may instead name one of your own domains that is enabled for receiving email. An omitted local part is generated. On a custom domain, addresses of deleted mailboxes are quarantined for 30 days and remain reserved for your workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"local_part\": \"concierge\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"retention_tier\": \"30d\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "bdeefc26-d709-89de-8b1a-c3c019e82d43",
              "name": "Insufficient balance",
              "originalRequest": {
                "name": "Create a mailbox",
                "description": {
                  "content": "Creates a mailbox. The address is `local_part@domain`. The domain defaults to `inbox.ai`, Bird's shared mailbox domain, where creating the mailbox claims the address for your organization. It is first come, first served, and reserved to your organization even after the mailbox is deleted. You may instead name one of your own domains that is enabled for receiving email. An omitted local part is generated. On a custom domain, addresses of deleted mailboxes are quarantined for 30 days and remain reserved for your workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"local_part\": \"concierge\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"retention_tier\": \"30d\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Payment Required",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "99ea925d-fd00-84a2-8d94-0d96b468fe4a",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create a mailbox",
                "description": {
                  "content": "Creates a mailbox. The address is `local_part@domain`. The domain defaults to `inbox.ai`, Bird's shared mailbox domain, where creating the mailbox claims the address for your organization. It is first come, first served, and reserved to your organization even after the mailbox is deleted. You may instead name one of your own domains that is enabled for receiving email. An omitted local part is generated. On a custom domain, addresses of deleted mailboxes are quarantined for 30 days and remain reserved for your workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"local_part\": \"concierge\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"retention_tier\": \"30d\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5e9b8e69-cf13-815b-898e-1107ab9f252c",
              "name": "Resource conflict",
              "originalRequest": {
                "name": "Create a mailbox",
                "description": {
                  "content": "Creates a mailbox. The address is `local_part@domain`. The domain defaults to `inbox.ai`, Bird's shared mailbox domain, where creating the mailbox claims the address for your organization. It is first come, first served, and reserved to your organization even after the mailbox is deleted. You may instead name one of your own domains that is enabled for receiving email. An omitted local part is generated. On a custom domain, addresses of deleted mailboxes are quarantined for 30 days and remain reserved for your workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"local_part\": \"concierge\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"retention_tier\": \"30d\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e0e6a88e-5b8b-893e-8c03-28658c30bdae",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create a mailbox",
                "description": {
                  "content": "Creates a mailbox. The address is `local_part@domain`. The domain defaults to `inbox.ai`, Bird's shared mailbox domain, where creating the mailbox claims the address for your organization. It is first come, first served, and reserved to your organization even after the mailbox is deleted. You may instead name one of your own domains that is enabled for receiving email. An omitted local part is generated. On a custom domain, addresses of deleted mailboxes are quarantined for 30 days and remain reserved for your workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"local_part\": \"concierge\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"retention_tier\": \"30d\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ef99e4c3-f061-8829-80dc-0d4f20ffe378",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create a mailbox",
                "description": {
                  "content": "Creates a mailbox. The address is `local_part@domain`. The domain defaults to `inbox.ai`, Bird's shared mailbox domain, where creating the mailbox claims the address for your organization. It is first come, first served, and reserved to your organization even after the mailbox is deleted. You may instead name one of your own domains that is enabled for receiving email. An omitted local part is generated. On a custom domain, addresses of deleted mailboxes are quarantined for 30 days and remain reserved for your workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"local_part\": \"concierge\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"retention_tier\": \"30d\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 201,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fd39cb1d-eb88-81ae-8153-5eea44b71ef3",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create a mailbox",
                "description": {
                  "content": "Creates a mailbox. The address is `local_part@domain`. The domain defaults to `inbox.ai`, Bird's shared mailbox domain, where creating the mailbox claims the address for your organization. It is first come, first served, and reserved to your organization even after the mailbox is deleted. You may instead name one of your own domains that is enabled for receiving email. An omitted local part is generated. On a custom domain, addresses of deleted mailboxes are quarantined for 30 days and remain reserved for your workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"local_part\": \"concierge\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"retention_tier\": \"30d\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "84f5940d-f2b9-8717-8704-c16b29d313c0",
          "name": "Get a mailbox",
          "request": {
            "name": "Get a mailbox",
            "description": {
              "content": "Returns a single mailbox by ID. A mailbox deleted within its 30-day restore window is still returned, with `deleted_at` set. Once the window closes it is permanently removed and returns `404`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "mailboxes",
                ":mailbox_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "mailbox_id",
                  "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "57a8de6d-6b91-86dd-879b-9acf55757ca2",
              "name": "Mailbox object.",
              "originalRequest": {
                "name": "Get a mailbox",
                "description": {
                  "content": "Returns a single mailbox by ID. A mailbox deleted within its 30-day restore window is still returned, with `deleted_at` set. Once the window closes it is permanently removed and returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fea73ae0-108e-8349-84d7-e9ee43c77674",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a mailbox",
                "description": {
                  "content": "Returns a single mailbox by ID. A mailbox deleted within its 30-day restore window is still returned, with `deleted_at` set. Once the window closes it is permanently removed and returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1fdfdf1c-bb04-8f36-87fa-d38ca9328ccf",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a mailbox",
                "description": {
                  "content": "Returns a single mailbox by ID. A mailbox deleted within its 30-day restore window is still returned, with `deleted_at` set. Once the window closes it is permanently removed and returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "83ba44ca-aa4c-8cd3-84a4-c30e202193bb",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a mailbox",
                "description": {
                  "content": "Returns a single mailbox by ID. A mailbox deleted within its 30-day restore window is still returned, with `deleted_at` set. Once the window closes it is permanently removed and returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7bb0504c-8e43-89aa-81c6-12d2a1f81200",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a mailbox",
                "description": {
                  "content": "Returns a single mailbox by ID. A mailbox deleted within its 30-day restore window is still returned, with `deleted_at` set. Once the window closes it is permanently removed and returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8be36aa2-d8b7-87fb-8593-47b887140504",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a mailbox",
                "description": {
                  "content": "Returns a single mailbox by ID. A mailbox deleted within its 30-day restore window is still returned, with `deleted_at` set. Once the window closes it is permanently removed and returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "707dfb2e-b28e-8821-8139-6d48f58b5d54",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a mailbox",
                "description": {
                  "content": "Returns a single mailbox by ID. A mailbox deleted within its 30-day restore window is still returned, with `deleted_at` set. Once the window closes it is permanently removed and returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "96239044-1d36-81df-8f42-506627b9a70c",
          "name": "Update a mailbox",
          "request": {
            "name": "Update a mailbox",
            "description": {
              "content": "Updates a mailbox. The address and domain are immutable. Lowering the retention tier makes remembered messages older than the new cutoff eligible for deletion. If any exist, the request requires `confirm=true`. A tier change is applied to the mailbox's stored messages in the background; lowering the tier again while that is still being applied is refused with `E17050`. You can still raise it to a tier your plan permits.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "mailboxes",
                ":mailbox_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "confirm",
                  "value": "false",
                  "description": "Set to `true` when lowering `retention_tier` would make remembered messages older than the new cutoff eligible for deletion. The request is rejected without it in that case."
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "mailbox_id",
                  "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "PATCH",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"display_name\": \"Acme Concierge\",\n  \"retention_tier\": \"30d\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "4c751b98-d5d3-8e66-8b77-b7dae0c0a9c4",
              "name": "Mailbox updated.",
              "originalRequest": {
                "name": "Update a mailbox",
                "description": {
                  "content": "Updates a mailbox. The address and domain are immutable. Lowering the retention tier makes remembered messages older than the new cutoff eligible for deletion. If any exist, the request requires `confirm=true`. A tier change is applied to the mailbox's stored messages in the background; lowering the tier again while that is still being applied is refused with `E17050`. You can still raise it to a tier your plan permits.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "confirm",
                      "value": "false",
                      "description": "Set to `true` when lowering `retention_tier` would make remembered messages older than the new cutoff eligible for deletion. The request is rejected without it in that case."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"display_name\": \"Acme Concierge\",\n  \"retention_tier\": \"30d\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4a8165c5-5601-88bb-8010-602f74053d0e",
              "name": "Bad request",
              "originalRequest": {
                "name": "Update a mailbox",
                "description": {
                  "content": "Updates a mailbox. The address and domain are immutable. Lowering the retention tier makes remembered messages older than the new cutoff eligible for deletion. If any exist, the request requires `confirm=true`. A tier change is applied to the mailbox's stored messages in the background; lowering the tier again while that is still being applied is refused with `E17050`. You can still raise it to a tier your plan permits.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "confirm",
                      "value": "false",
                      "description": "Set to `true` when lowering `retention_tier` would make remembered messages older than the new cutoff eligible for deletion. The request is rejected without it in that case."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"display_name\": \"Acme Concierge\",\n  \"retention_tier\": \"30d\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ebd94c92-2a47-8ac4-816b-e2e2d7ebeb4b",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Update a mailbox",
                "description": {
                  "content": "Updates a mailbox. The address and domain are immutable. Lowering the retention tier makes remembered messages older than the new cutoff eligible for deletion. If any exist, the request requires `confirm=true`. A tier change is applied to the mailbox's stored messages in the background; lowering the tier again while that is still being applied is refused with `E17050`. You can still raise it to a tier your plan permits.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "confirm",
                      "value": "false",
                      "description": "Set to `true` when lowering `retention_tier` would make remembered messages older than the new cutoff eligible for deletion. The request is rejected without it in that case."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"display_name\": \"Acme Concierge\",\n  \"retention_tier\": \"30d\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "87d92d23-c43d-8b6e-8d4f-234f7c5e7b33",
              "name": "Insufficient balance",
              "originalRequest": {
                "name": "Update a mailbox",
                "description": {
                  "content": "Updates a mailbox. The address and domain are immutable. Lowering the retention tier makes remembered messages older than the new cutoff eligible for deletion. If any exist, the request requires `confirm=true`. A tier change is applied to the mailbox's stored messages in the background; lowering the tier again while that is still being applied is refused with `E17050`. You can still raise it to a tier your plan permits.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "confirm",
                      "value": "false",
                      "description": "Set to `true` when lowering `retention_tier` would make remembered messages older than the new cutoff eligible for deletion. The request is rejected without it in that case."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"display_name\": \"Acme Concierge\",\n  \"retention_tier\": \"30d\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Payment Required",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "46901eda-ea79-8341-8b6a-b3ffe1c29594",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Update a mailbox",
                "description": {
                  "content": "Updates a mailbox. The address and domain are immutable. Lowering the retention tier makes remembered messages older than the new cutoff eligible for deletion. If any exist, the request requires `confirm=true`. A tier change is applied to the mailbox's stored messages in the background; lowering the tier again while that is still being applied is refused with `E17050`. You can still raise it to a tier your plan permits.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "confirm",
                      "value": "false",
                      "description": "Set to `true` when lowering `retention_tier` would make remembered messages older than the new cutoff eligible for deletion. The request is rejected without it in that case."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"display_name\": \"Acme Concierge\",\n  \"retention_tier\": \"30d\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "eb4e65f6-1b1e-8421-8c35-99e451565b0f",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Update a mailbox",
                "description": {
                  "content": "Updates a mailbox. The address and domain are immutable. Lowering the retention tier makes remembered messages older than the new cutoff eligible for deletion. If any exist, the request requires `confirm=true`. A tier change is applied to the mailbox's stored messages in the background; lowering the tier again while that is still being applied is refused with `E17050`. You can still raise it to a tier your plan permits.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "confirm",
                      "value": "false",
                      "description": "Set to `true` when lowering `retention_tier` would make remembered messages older than the new cutoff eligible for deletion. The request is rejected without it in that case."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"display_name\": \"Acme Concierge\",\n  \"retention_tier\": \"30d\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2dad1610-1b55-8312-8239-3f49c45ab515",
              "name": "Resource conflict",
              "originalRequest": {
                "name": "Update a mailbox",
                "description": {
                  "content": "Updates a mailbox. The address and domain are immutable. Lowering the retention tier makes remembered messages older than the new cutoff eligible for deletion. If any exist, the request requires `confirm=true`. A tier change is applied to the mailbox's stored messages in the background; lowering the tier again while that is still being applied is refused with `E17050`. You can still raise it to a tier your plan permits.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "confirm",
                      "value": "false",
                      "description": "Set to `true` when lowering `retention_tier` would make remembered messages older than the new cutoff eligible for deletion. The request is rejected without it in that case."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"display_name\": \"Acme Concierge\",\n  \"retention_tier\": \"30d\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3912a191-fa0f-8cee-825f-b5ea60160d9f",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Update a mailbox",
                "description": {
                  "content": "Updates a mailbox. The address and domain are immutable. Lowering the retention tier makes remembered messages older than the new cutoff eligible for deletion. If any exist, the request requires `confirm=true`. A tier change is applied to the mailbox's stored messages in the background; lowering the tier again while that is still being applied is refused with `E17050`. You can still raise it to a tier your plan permits.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "confirm",
                      "value": "false",
                      "description": "Set to `true` when lowering `retention_tier` would make remembered messages older than the new cutoff eligible for deletion. The request is rejected without it in that case."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"display_name\": \"Acme Concierge\",\n  \"retention_tier\": \"30d\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "58877216-07b4-8a01-8618-f7b314a6333f",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Update a mailbox",
                "description": {
                  "content": "Updates a mailbox. The address and domain are immutable. Lowering the retention tier makes remembered messages older than the new cutoff eligible for deletion. If any exist, the request requires `confirm=true`. A tier change is applied to the mailbox's stored messages in the background; lowering the tier again while that is still being applied is refused with `E17050`. You can still raise it to a tier your plan permits.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "confirm",
                      "value": "false",
                      "description": "Set to `true` when lowering `retention_tier` would make remembered messages older than the new cutoff eligible for deletion. The request is rejected without it in that case."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"display_name\": \"Acme Concierge\",\n  \"retention_tier\": \"30d\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "00ceea60-38ec-818d-8404-a97da678de54",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Update a mailbox",
                "description": {
                  "content": "Updates a mailbox. The address and domain are immutable. Lowering the retention tier makes remembered messages older than the new cutoff eligible for deletion. If any exist, the request requires `confirm=true`. A tier change is applied to the mailbox's stored messages in the background; lowering the tier again while that is still being applied is refused with `E17050`. You can still raise it to a tier your plan permits.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "confirm",
                      "value": "false",
                      "description": "Set to `true` when lowering `retention_tier` would make remembered messages older than the new cutoff eligible for deletion. The request is rejected without it in that case."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"display_name\": \"Acme Concierge\",\n  \"retention_tier\": \"30d\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "5c99b441-431c-8209-8224-e7361b1cbf06",
          "name": "Delete a mailbox",
          "request": {
            "name": "Delete a mailbox",
            "description": {
              "content": "Deletes a mailbox. The address stops receiving mail immediately and enters quarantine. After 30 days, your workspace can bind the address to a new mailbox; the address remains reserved to your workspace. You can restore the mailbox for 30 days with `POST /email/mailboxes/{mailbox_id}/restore`. Normal message-retention expiry continues during that period. After 30 days, the mailbox and its remaining messages are permanently deleted.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "mailboxes",
                ":mailbox_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "mailbox_id",
                  "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "DELETE"
          },
          "response": [
            {
              "id": "4716bfdd-59f3-8e82-8fac-93ea2b4b8651",
              "name": "Mailbox deleted.",
              "originalRequest": {
                "name": "Delete a mailbox",
                "description": {
                  "content": "Deletes a mailbox. The address stops receiving mail immediately and enters quarantine. After 30 days, your workspace can bind the address to a new mailbox; the address remains reserved to your workspace. You can restore the mailbox for 30 days with `POST /email/mailboxes/{mailbox_id}/restore`. Normal message-retention expiry continues during that period. After 30 days, the mailbox and its remaining messages are permanently deleted.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "7564f4c7-fab0-8e76-8c3a-a338ab7cb4fc",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Delete a mailbox",
                "description": {
                  "content": "Deletes a mailbox. The address stops receiving mail immediately and enters quarantine. After 30 days, your workspace can bind the address to a new mailbox; the address remains reserved to your workspace. You can restore the mailbox for 30 days with `POST /email/mailboxes/{mailbox_id}/restore`. Normal message-retention expiry continues during that period. After 30 days, the mailbox and its remaining messages are permanently deleted.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cc23a815-3cf3-8fcf-8863-86da5e5f8411",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Delete a mailbox",
                "description": {
                  "content": "Deletes a mailbox. The address stops receiving mail immediately and enters quarantine. After 30 days, your workspace can bind the address to a new mailbox; the address remains reserved to your workspace. You can restore the mailbox for 30 days with `POST /email/mailboxes/{mailbox_id}/restore`. Normal message-retention expiry continues during that period. After 30 days, the mailbox and its remaining messages are permanently deleted.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "09404587-825c-84e3-88a7-00b13f011376",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Delete a mailbox",
                "description": {
                  "content": "Deletes a mailbox. The address stops receiving mail immediately and enters quarantine. After 30 days, your workspace can bind the address to a new mailbox; the address remains reserved to your workspace. You can restore the mailbox for 30 days with `POST /email/mailboxes/{mailbox_id}/restore`. Normal message-retention expiry continues during that period. After 30 days, the mailbox and its remaining messages are permanently deleted.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "eec7cab1-8507-80a2-883f-c19f53fa9eba",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Delete a mailbox",
                "description": {
                  "content": "Deletes a mailbox. The address stops receiving mail immediately and enters quarantine. After 30 days, your workspace can bind the address to a new mailbox; the address remains reserved to your workspace. You can restore the mailbox for 30 days with `POST /email/mailboxes/{mailbox_id}/restore`. Normal message-retention expiry continues during that period. After 30 days, the mailbox and its remaining messages are permanently deleted.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4e5b8d33-8898-8b8b-815a-8584709d34d5",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Delete a mailbox",
                "description": {
                  "content": "Deletes a mailbox. The address stops receiving mail immediately and enters quarantine. After 30 days, your workspace can bind the address to a new mailbox; the address remains reserved to your workspace. You can restore the mailbox for 30 days with `POST /email/mailboxes/{mailbox_id}/restore`. Normal message-retention expiry continues during that period. After 30 days, the mailbox and its remaining messages are permanently deleted.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7781729c-e223-8202-871e-e303e1d1b8e2",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Delete a mailbox",
                "description": {
                  "content": "Deletes a mailbox. The address stops receiving mail immediately and enters quarantine. After 30 days, your workspace can bind the address to a new mailbox; the address remains reserved to your workspace. You can restore the mailbox for 30 days with `POST /email/mailboxes/{mailbox_id}/restore`. Normal message-retention expiry continues during that period. After 30 days, the mailbox and its remaining messages are permanently deleted.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "53dbd266-306b-811b-8d92-897f30b01eaa",
          "name": "Restore a deleted mailbox",
          "request": {
            "name": "Restore a deleted mailbox",
            "description": {
              "content": "Restores receiving and access to unexpired messages. Returns `404` if deletion was 30 or more days ago or permanent erasure has started, and `409` if the mailbox is not deleted or its address is unavailable.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "mailboxes",
                ":mailbox_id",
                "restore"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "mailbox_id",
                  "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST"
          },
          "response": [
            {
              "id": "daadcfe0-11a9-8809-8ba2-38b538ece0c3",
              "name": "Mailbox restored.",
              "originalRequest": {
                "name": "Restore a deleted mailbox",
                "description": {
                  "content": "Restores receiving and access to unexpired messages. Returns `404` if deletion was 30 or more days ago or permanent erasure has started, and `409` if the mailbox is not deleted or its address is unavailable.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "restore"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a0eee4f2-111d-8975-84e3-24adde8fe426",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Restore a deleted mailbox",
                "description": {
                  "content": "Restores receiving and access to unexpired messages. Returns `404` if deletion was 30 or more days ago or permanent erasure has started, and `409` if the mailbox is not deleted or its address is unavailable.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "restore"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "32a00eda-1f66-8505-8cfc-ac702307b01f",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Restore a deleted mailbox",
                "description": {
                  "content": "Restores receiving and access to unexpired messages. Returns `404` if deletion was 30 or more days ago or permanent erasure has started, and `409` if the mailbox is not deleted or its address is unavailable.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "restore"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "19c174eb-f7c1-8452-8c36-bd7949597494",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Restore a deleted mailbox",
                "description": {
                  "content": "Restores receiving and access to unexpired messages. Returns `404` if deletion was 30 or more days ago or permanent erasure has started, and `409` if the mailbox is not deleted or its address is unavailable.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "restore"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e9aac110-4fb5-8521-8775-dba316d2a7de",
              "name": "Resource conflict",
              "originalRequest": {
                "name": "Restore a deleted mailbox",
                "description": {
                  "content": "Restores receiving and access to unexpired messages. Returns `404` if deletion was 30 or more days ago or permanent erasure has started, and `409` if the mailbox is not deleted or its address is unavailable.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "restore"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Conflict",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9ec50ee8-459c-87a5-8b4e-ab1a47cdb06d",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Restore a deleted mailbox",
                "description": {
                  "content": "Restores receiving and access to unexpired messages. Returns `404` if deletion was 30 or more days ago or permanent erasure has started, and `409` if the mailbox is not deleted or its address is unavailable.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "restore"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2d4afb18-e4a6-8f67-8e67-4d527e18ee92",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Restore a deleted mailbox",
                "description": {
                  "content": "Restores receiving and access to unexpired messages. Returns `404` if deletion was 30 or more days ago or permanent erasure has started, and `409` if the mailbox is not deleted or its address is unavailable.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "restore"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "871abafa-2145-81aa-80b5-947e7e44e777",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Restore a deleted mailbox",
                "description": {
                  "content": "Restores receiving and access to unexpired messages. Returns `404` if deletion was 30 or more days ago or permanent erasure has started, and `409` if the mailbox is not deleted or its address is unavailable.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "restore"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "9a956a47-cdfe-8423-8330-fec8f7e2f1e4",
          "name": "Get mailbox email statistics",
          "request": {
            "name": "Get mailbox email statistics",
            "description": {
              "content": "Returns the mailbox's sent and received email statistics over a time window: a period-wide summary plus a bucketed series. Sent-mail metrics have the same delivery, engagement, and latency breakdowns as the email stats endpoints. `received` counts mail that arrived at the mailbox.\n\nRows are bucketed by the time the event happened rather than the time the message was sent, so engagement that arrived during the period for a message sent earlier is counted here. Statistics start when the mailbox starts sending and receiving; the mailbox's all-time `message_count` and `thread_count` live on the mailbox resource itself.\n\n`from` and `to` accept either calendar days (`YYYY-MM-DD`, `day` granularity only) or RFC 3339 instants (`hour` granularity only). Both bounds must use the same form. Window caps depend on `granularity`: 365 days at `day`, 30 days at `hour`. Set `timezone` to report in a local zone instead of UTC.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "mailboxes",
                ":mailbox_id",
                "stats"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "from",
                  "value": "2026-07-01",
                  "description": "Inclusive start of the window: a calendar day (`YYYY-MM-DD`, `day` granularity only) or an RFC 3339 instant rounded down to the hour (`hour` granularity only). Interpreted in `timezone`, or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `to`. Defaults to 30 days before `to` at `day` granularity and 7 days before `to` at `hour`, when omitted.\n"
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "2026-07-21",
                  "description": "Inclusive end of the window: a calendar day (`YYYY-MM-DD`, `day` granularity only) or an RFC 3339 instant rounded down to the hour (`hour` granularity only). Interpreted in `timezone`, or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `from`. Defaults to today (day) or the current hour (hour) in that timezone when omitted. Window may not exceed 365 days at `day` or 30 days at `hour` granularity.\n"
                },
                {
                  "disabled": false,
                  "key": "timezone",
                  "value": "Asia/Kathmandu",
                  "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                },
                {
                  "disabled": false,
                  "key": "granularity",
                  "value": "day",
                  "description": "Granularity of the series: `day` (default) or `hour`. Echoed back as `period.grain`.\n"
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "mailbox_id",
                  "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "d6bfe9e8-717e-8f8f-88c7-3886e74b1b4a",
              "name": "The mailbox's sent and received email statistics for the requested period.",
              "originalRequest": {
                "name": "Get mailbox email statistics",
                "description": {
                  "content": "Returns the mailbox's sent and received email statistics over a time window: a period-wide summary plus a bucketed series. Sent-mail metrics have the same delivery, engagement, and latency breakdowns as the email stats endpoints. `received` counts mail that arrived at the mailbox.\n\nRows are bucketed by the time the event happened rather than the time the message was sent, so engagement that arrived during the period for a message sent earlier is counted here. Statistics start when the mailbox starts sending and receiving; the mailbox's all-time `message_count` and `thread_count` live on the mailbox resource itself.\n\n`from` and `to` accept either calendar days (`YYYY-MM-DD`, `day` granularity only) or RFC 3339 instants (`hour` granularity only). Both bounds must use the same form. Window caps depend on `granularity`: 365 days at `day`, 30 days at `hour`. Set `timezone` to report in a local zone instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "stats"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-07-01",
                      "description": "Inclusive start of the window: a calendar day (`YYYY-MM-DD`, `day` granularity only) or an RFC 3339 instant rounded down to the hour (`hour` granularity only). Interpreted in `timezone`, or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `to`. Defaults to 30 days before `to` at `day` granularity and 7 days before `to` at `hour`, when omitted.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-07-21",
                      "description": "Inclusive end of the window: a calendar day (`YYYY-MM-DD`, `day` granularity only) or an RFC 3339 instant rounded down to the hour (`hour` granularity only). Interpreted in `timezone`, or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `from`. Defaults to today (day) or the current hour (hour) in that timezone when omitted. Window may not exceed 365 days at `day` or 30 days at `hour` granularity.\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "granularity",
                      "value": "day",
                      "description": "Granularity of the series: `day` (default) or `hour`. Echoed back as `period.grain`.\n"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"summary\": {\n    \"sends_accepted\": 231,\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"processed\": 14810,\n      \"delivered\": 14720,\n      \"bounced\": 90,\n      \"bounces\": {\n        \"hard\": 12410,\n        \"soft\": 14290,\n        \"admin\": 410,\n        \"block\": 920,\n        \"undetermined\": 80,\n        \"hard_rate\": 0.454,\n        \"soft_rate\": 0.523,\n        \"admin_rate\": 0.015,\n        \"block_rate\": 0.0337,\n        \"undetermined_rate\": 0.0029\n      },\n      \"complained\": 3,\n      \"deferred\": 14,\n      \"rejected\": 10,\n      \"oob_bounces\": 2,\n      \"effective_delivered\": 14718,\n      \"all_bounces\": 92,\n      \"oob_rate\": 0.00014,\n      \"delivery_rate\": 0.9939,\n      \"bounce_rate\": 0.0061,\n      \"complaint_rate\": 0.0002\n    },\n    \"engagement\": {\n      \"opens\": 5420,\n      \"opens_non_prefetched\": 3210,\n      \"unique_opens\": 3640,\n      \"unique_opens_non_prefetched\": 2480,\n      \"clicks\": 924,\n      \"unique_clicks\": 621,\n      \"unsubscribes\": 12,\n      \"open_rate\": 0.1683,\n      \"click_rate\": 0.0422,\n      \"unsubscribe_rate\": 0.0009\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"received\": 519\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-07-21\",\n      \"sends_accepted\": 12,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"received\": 34\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "997c1af6-ea08-8d4d-8686-30b200e127b4",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get mailbox email statistics",
                "description": {
                  "content": "Returns the mailbox's sent and received email statistics over a time window: a period-wide summary plus a bucketed series. Sent-mail metrics have the same delivery, engagement, and latency breakdowns as the email stats endpoints. `received` counts mail that arrived at the mailbox.\n\nRows are bucketed by the time the event happened rather than the time the message was sent, so engagement that arrived during the period for a message sent earlier is counted here. Statistics start when the mailbox starts sending and receiving; the mailbox's all-time `message_count` and `thread_count` live on the mailbox resource itself.\n\n`from` and `to` accept either calendar days (`YYYY-MM-DD`, `day` granularity only) or RFC 3339 instants (`hour` granularity only). Both bounds must use the same form. Window caps depend on `granularity`: 365 days at `day`, 30 days at `hour`. Set `timezone` to report in a local zone instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "stats"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-07-01",
                      "description": "Inclusive start of the window: a calendar day (`YYYY-MM-DD`, `day` granularity only) or an RFC 3339 instant rounded down to the hour (`hour` granularity only). Interpreted in `timezone`, or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `to`. Defaults to 30 days before `to` at `day` granularity and 7 days before `to` at `hour`, when omitted.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-07-21",
                      "description": "Inclusive end of the window: a calendar day (`YYYY-MM-DD`, `day` granularity only) or an RFC 3339 instant rounded down to the hour (`hour` granularity only). Interpreted in `timezone`, or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `from`. Defaults to today (day) or the current hour (hour) in that timezone when omitted. Window may not exceed 365 days at `day` or 30 days at `hour` granularity.\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "granularity",
                      "value": "day",
                      "description": "Granularity of the series: `day` (default) or `hour`. Echoed back as `period.grain`.\n"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"summary\": {\n    \"sends_accepted\": 231,\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"processed\": 14810,\n      \"delivered\": 14720,\n      \"bounced\": 90,\n      \"bounces\": {\n        \"hard\": 12410,\n        \"soft\": 14290,\n        \"admin\": 410,\n        \"block\": 920,\n        \"undetermined\": 80,\n        \"hard_rate\": 0.454,\n        \"soft_rate\": 0.523,\n        \"admin_rate\": 0.015,\n        \"block_rate\": 0.0337,\n        \"undetermined_rate\": 0.0029\n      },\n      \"complained\": 3,\n      \"deferred\": 14,\n      \"rejected\": 10,\n      \"oob_bounces\": 2,\n      \"effective_delivered\": 14718,\n      \"all_bounces\": 92,\n      \"oob_rate\": 0.00014,\n      \"delivery_rate\": 0.9939,\n      \"bounce_rate\": 0.0061,\n      \"complaint_rate\": 0.0002\n    },\n    \"engagement\": {\n      \"opens\": 5420,\n      \"opens_non_prefetched\": 3210,\n      \"unique_opens\": 3640,\n      \"unique_opens_non_prefetched\": 2480,\n      \"clicks\": 924,\n      \"unique_clicks\": 621,\n      \"unsubscribes\": 12,\n      \"open_rate\": 0.1683,\n      \"click_rate\": 0.0422,\n      \"unsubscribe_rate\": 0.0009\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"received\": 519\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-07-21\",\n      \"sends_accepted\": 12,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"received\": 34\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f16bd94a-14d3-8593-86a2-bf24380598a3",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get mailbox email statistics",
                "description": {
                  "content": "Returns the mailbox's sent and received email statistics over a time window: a period-wide summary plus a bucketed series. Sent-mail metrics have the same delivery, engagement, and latency breakdowns as the email stats endpoints. `received` counts mail that arrived at the mailbox.\n\nRows are bucketed by the time the event happened rather than the time the message was sent, so engagement that arrived during the period for a message sent earlier is counted here. Statistics start when the mailbox starts sending and receiving; the mailbox's all-time `message_count` and `thread_count` live on the mailbox resource itself.\n\n`from` and `to` accept either calendar days (`YYYY-MM-DD`, `day` granularity only) or RFC 3339 instants (`hour` granularity only). Both bounds must use the same form. Window caps depend on `granularity`: 365 days at `day`, 30 days at `hour`. Set `timezone` to report in a local zone instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "stats"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-07-01",
                      "description": "Inclusive start of the window: a calendar day (`YYYY-MM-DD`, `day` granularity only) or an RFC 3339 instant rounded down to the hour (`hour` granularity only). Interpreted in `timezone`, or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `to`. Defaults to 30 days before `to` at `day` granularity and 7 days before `to` at `hour`, when omitted.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-07-21",
                      "description": "Inclusive end of the window: a calendar day (`YYYY-MM-DD`, `day` granularity only) or an RFC 3339 instant rounded down to the hour (`hour` granularity only). Interpreted in `timezone`, or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `from`. Defaults to today (day) or the current hour (hour) in that timezone when omitted. Window may not exceed 365 days at `day` or 30 days at `hour` granularity.\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "granularity",
                      "value": "day",
                      "description": "Granularity of the series: `day` (default) or `hour`. Echoed back as `period.grain`.\n"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"summary\": {\n    \"sends_accepted\": 231,\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"processed\": 14810,\n      \"delivered\": 14720,\n      \"bounced\": 90,\n      \"bounces\": {\n        \"hard\": 12410,\n        \"soft\": 14290,\n        \"admin\": 410,\n        \"block\": 920,\n        \"undetermined\": 80,\n        \"hard_rate\": 0.454,\n        \"soft_rate\": 0.523,\n        \"admin_rate\": 0.015,\n        \"block_rate\": 0.0337,\n        \"undetermined_rate\": 0.0029\n      },\n      \"complained\": 3,\n      \"deferred\": 14,\n      \"rejected\": 10,\n      \"oob_bounces\": 2,\n      \"effective_delivered\": 14718,\n      \"all_bounces\": 92,\n      \"oob_rate\": 0.00014,\n      \"delivery_rate\": 0.9939,\n      \"bounce_rate\": 0.0061,\n      \"complaint_rate\": 0.0002\n    },\n    \"engagement\": {\n      \"opens\": 5420,\n      \"opens_non_prefetched\": 3210,\n      \"unique_opens\": 3640,\n      \"unique_opens_non_prefetched\": 2480,\n      \"clicks\": 924,\n      \"unique_clicks\": 621,\n      \"unsubscribes\": 12,\n      \"open_rate\": 0.1683,\n      \"click_rate\": 0.0422,\n      \"unsubscribe_rate\": 0.0009\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"received\": 519\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-07-21\",\n      \"sends_accepted\": 12,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"received\": 34\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3d3ed5f5-df2d-8f8a-8ee1-7a074ee2348c",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get mailbox email statistics",
                "description": {
                  "content": "Returns the mailbox's sent and received email statistics over a time window: a period-wide summary plus a bucketed series. Sent-mail metrics have the same delivery, engagement, and latency breakdowns as the email stats endpoints. `received` counts mail that arrived at the mailbox.\n\nRows are bucketed by the time the event happened rather than the time the message was sent, so engagement that arrived during the period for a message sent earlier is counted here. Statistics start when the mailbox starts sending and receiving; the mailbox's all-time `message_count` and `thread_count` live on the mailbox resource itself.\n\n`from` and `to` accept either calendar days (`YYYY-MM-DD`, `day` granularity only) or RFC 3339 instants (`hour` granularity only). Both bounds must use the same form. Window caps depend on `granularity`: 365 days at `day`, 30 days at `hour`. Set `timezone` to report in a local zone instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "stats"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-07-01",
                      "description": "Inclusive start of the window: a calendar day (`YYYY-MM-DD`, `day` granularity only) or an RFC 3339 instant rounded down to the hour (`hour` granularity only). Interpreted in `timezone`, or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `to`. Defaults to 30 days before `to` at `day` granularity and 7 days before `to` at `hour`, when omitted.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-07-21",
                      "description": "Inclusive end of the window: a calendar day (`YYYY-MM-DD`, `day` granularity only) or an RFC 3339 instant rounded down to the hour (`hour` granularity only). Interpreted in `timezone`, or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `from`. Defaults to today (day) or the current hour (hour) in that timezone when omitted. Window may not exceed 365 days at `day` or 30 days at `hour` granularity.\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "granularity",
                      "value": "day",
                      "description": "Granularity of the series: `day` (default) or `hour`. Echoed back as `period.grain`.\n"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"summary\": {\n    \"sends_accepted\": 231,\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"processed\": 14810,\n      \"delivered\": 14720,\n      \"bounced\": 90,\n      \"bounces\": {\n        \"hard\": 12410,\n        \"soft\": 14290,\n        \"admin\": 410,\n        \"block\": 920,\n        \"undetermined\": 80,\n        \"hard_rate\": 0.454,\n        \"soft_rate\": 0.523,\n        \"admin_rate\": 0.015,\n        \"block_rate\": 0.0337,\n        \"undetermined_rate\": 0.0029\n      },\n      \"complained\": 3,\n      \"deferred\": 14,\n      \"rejected\": 10,\n      \"oob_bounces\": 2,\n      \"effective_delivered\": 14718,\n      \"all_bounces\": 92,\n      \"oob_rate\": 0.00014,\n      \"delivery_rate\": 0.9939,\n      \"bounce_rate\": 0.0061,\n      \"complaint_rate\": 0.0002\n    },\n    \"engagement\": {\n      \"opens\": 5420,\n      \"opens_non_prefetched\": 3210,\n      \"unique_opens\": 3640,\n      \"unique_opens_non_prefetched\": 2480,\n      \"clicks\": 924,\n      \"unique_clicks\": 621,\n      \"unsubscribes\": 12,\n      \"open_rate\": 0.1683,\n      \"click_rate\": 0.0422,\n      \"unsubscribe_rate\": 0.0009\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"received\": 519\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-07-21\",\n      \"sends_accepted\": 12,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"received\": 34\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "43e41586-557b-8a5f-886a-2e5461c431e9",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get mailbox email statistics",
                "description": {
                  "content": "Returns the mailbox's sent and received email statistics over a time window: a period-wide summary plus a bucketed series. Sent-mail metrics have the same delivery, engagement, and latency breakdowns as the email stats endpoints. `received` counts mail that arrived at the mailbox.\n\nRows are bucketed by the time the event happened rather than the time the message was sent, so engagement that arrived during the period for a message sent earlier is counted here. Statistics start when the mailbox starts sending and receiving; the mailbox's all-time `message_count` and `thread_count` live on the mailbox resource itself.\n\n`from` and `to` accept either calendar days (`YYYY-MM-DD`, `day` granularity only) or RFC 3339 instants (`hour` granularity only). Both bounds must use the same form. Window caps depend on `granularity`: 365 days at `day`, 30 days at `hour`. Set `timezone` to report in a local zone instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "stats"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-07-01",
                      "description": "Inclusive start of the window: a calendar day (`YYYY-MM-DD`, `day` granularity only) or an RFC 3339 instant rounded down to the hour (`hour` granularity only). Interpreted in `timezone`, or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `to`. Defaults to 30 days before `to` at `day` granularity and 7 days before `to` at `hour`, when omitted.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-07-21",
                      "description": "Inclusive end of the window: a calendar day (`YYYY-MM-DD`, `day` granularity only) or an RFC 3339 instant rounded down to the hour (`hour` granularity only). Interpreted in `timezone`, or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `from`. Defaults to today (day) or the current hour (hour) in that timezone when omitted. Window may not exceed 365 days at `day` or 30 days at `hour` granularity.\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "granularity",
                      "value": "day",
                      "description": "Granularity of the series: `day` (default) or `hour`. Echoed back as `period.grain`.\n"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"summary\": {\n    \"sends_accepted\": 231,\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"processed\": 14810,\n      \"delivered\": 14720,\n      \"bounced\": 90,\n      \"bounces\": {\n        \"hard\": 12410,\n        \"soft\": 14290,\n        \"admin\": 410,\n        \"block\": 920,\n        \"undetermined\": 80,\n        \"hard_rate\": 0.454,\n        \"soft_rate\": 0.523,\n        \"admin_rate\": 0.015,\n        \"block_rate\": 0.0337,\n        \"undetermined_rate\": 0.0029\n      },\n      \"complained\": 3,\n      \"deferred\": 14,\n      \"rejected\": 10,\n      \"oob_bounces\": 2,\n      \"effective_delivered\": 14718,\n      \"all_bounces\": 92,\n      \"oob_rate\": 0.00014,\n      \"delivery_rate\": 0.9939,\n      \"bounce_rate\": 0.0061,\n      \"complaint_rate\": 0.0002\n    },\n    \"engagement\": {\n      \"opens\": 5420,\n      \"opens_non_prefetched\": 3210,\n      \"unique_opens\": 3640,\n      \"unique_opens_non_prefetched\": 2480,\n      \"clicks\": 924,\n      \"unique_clicks\": 621,\n      \"unsubscribes\": 12,\n      \"open_rate\": 0.1683,\n      \"click_rate\": 0.0422,\n      \"unsubscribe_rate\": 0.0009\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"received\": 519\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-07-21\",\n      \"sends_accepted\": 12,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"received\": 34\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "36e95013-03c2-8530-8290-d9e1dc46f244",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get mailbox email statistics",
                "description": {
                  "content": "Returns the mailbox's sent and received email statistics over a time window: a period-wide summary plus a bucketed series. Sent-mail metrics have the same delivery, engagement, and latency breakdowns as the email stats endpoints. `received` counts mail that arrived at the mailbox.\n\nRows are bucketed by the time the event happened rather than the time the message was sent, so engagement that arrived during the period for a message sent earlier is counted here. Statistics start when the mailbox starts sending and receiving; the mailbox's all-time `message_count` and `thread_count` live on the mailbox resource itself.\n\n`from` and `to` accept either calendar days (`YYYY-MM-DD`, `day` granularity only) or RFC 3339 instants (`hour` granularity only). Both bounds must use the same form. Window caps depend on `granularity`: 365 days at `day`, 30 days at `hour`. Set `timezone` to report in a local zone instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "stats"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-07-01",
                      "description": "Inclusive start of the window: a calendar day (`YYYY-MM-DD`, `day` granularity only) or an RFC 3339 instant rounded down to the hour (`hour` granularity only). Interpreted in `timezone`, or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `to`. Defaults to 30 days before `to` at `day` granularity and 7 days before `to` at `hour`, when omitted.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-07-21",
                      "description": "Inclusive end of the window: a calendar day (`YYYY-MM-DD`, `day` granularity only) or an RFC 3339 instant rounded down to the hour (`hour` granularity only). Interpreted in `timezone`, or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `from`. Defaults to today (day) or the current hour (hour) in that timezone when omitted. Window may not exceed 365 days at `day` or 30 days at `hour` granularity.\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "granularity",
                      "value": "day",
                      "description": "Granularity of the series: `day` (default) or `hour`. Echoed back as `period.grain`.\n"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"summary\": {\n    \"sends_accepted\": 231,\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"processed\": 14810,\n      \"delivered\": 14720,\n      \"bounced\": 90,\n      \"bounces\": {\n        \"hard\": 12410,\n        \"soft\": 14290,\n        \"admin\": 410,\n        \"block\": 920,\n        \"undetermined\": 80,\n        \"hard_rate\": 0.454,\n        \"soft_rate\": 0.523,\n        \"admin_rate\": 0.015,\n        \"block_rate\": 0.0337,\n        \"undetermined_rate\": 0.0029\n      },\n      \"complained\": 3,\n      \"deferred\": 14,\n      \"rejected\": 10,\n      \"oob_bounces\": 2,\n      \"effective_delivered\": 14718,\n      \"all_bounces\": 92,\n      \"oob_rate\": 0.00014,\n      \"delivery_rate\": 0.9939,\n      \"bounce_rate\": 0.0061,\n      \"complaint_rate\": 0.0002\n    },\n    \"engagement\": {\n      \"opens\": 5420,\n      \"opens_non_prefetched\": 3210,\n      \"unique_opens\": 3640,\n      \"unique_opens_non_prefetched\": 2480,\n      \"clicks\": 924,\n      \"unique_clicks\": 621,\n      \"unsubscribes\": 12,\n      \"open_rate\": 0.1683,\n      \"click_rate\": 0.0422,\n      \"unsubscribe_rate\": 0.0009\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"received\": 519\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-07-21\",\n      \"sends_accepted\": 12,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"received\": 34\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5eda962c-62c0-8691-8be2-906fe66d6c7d",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get mailbox email statistics",
                "description": {
                  "content": "Returns the mailbox's sent and received email statistics over a time window: a period-wide summary plus a bucketed series. Sent-mail metrics have the same delivery, engagement, and latency breakdowns as the email stats endpoints. `received` counts mail that arrived at the mailbox.\n\nRows are bucketed by the time the event happened rather than the time the message was sent, so engagement that arrived during the period for a message sent earlier is counted here. Statistics start when the mailbox starts sending and receiving; the mailbox's all-time `message_count` and `thread_count` live on the mailbox resource itself.\n\n`from` and `to` accept either calendar days (`YYYY-MM-DD`, `day` granularity only) or RFC 3339 instants (`hour` granularity only). Both bounds must use the same form. Window caps depend on `granularity`: 365 days at `day`, 30 days at `hour`. Set `timezone` to report in a local zone instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "stats"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-07-01",
                      "description": "Inclusive start of the window: a calendar day (`YYYY-MM-DD`, `day` granularity only) or an RFC 3339 instant rounded down to the hour (`hour` granularity only). Interpreted in `timezone`, or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `to`. Defaults to 30 days before `to` at `day` granularity and 7 days before `to` at `hour`, when omitted.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-07-21",
                      "description": "Inclusive end of the window: a calendar day (`YYYY-MM-DD`, `day` granularity only) or an RFC 3339 instant rounded down to the hour (`hour` granularity only). Interpreted in `timezone`, or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `from`. Defaults to today (day) or the current hour (hour) in that timezone when omitted. Window may not exceed 365 days at `day` or 30 days at `hour` granularity.\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "granularity",
                      "value": "day",
                      "description": "Granularity of the series: `day` (default) or `hour`. Echoed back as `period.grain`.\n"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"summary\": {\n    \"sends_accepted\": 231,\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"processed\": 14810,\n      \"delivered\": 14720,\n      \"bounced\": 90,\n      \"bounces\": {\n        \"hard\": 12410,\n        \"soft\": 14290,\n        \"admin\": 410,\n        \"block\": 920,\n        \"undetermined\": 80,\n        \"hard_rate\": 0.454,\n        \"soft_rate\": 0.523,\n        \"admin_rate\": 0.015,\n        \"block_rate\": 0.0337,\n        \"undetermined_rate\": 0.0029\n      },\n      \"complained\": 3,\n      \"deferred\": 14,\n      \"rejected\": 10,\n      \"oob_bounces\": 2,\n      \"effective_delivered\": 14718,\n      \"all_bounces\": 92,\n      \"oob_rate\": 0.00014,\n      \"delivery_rate\": 0.9939,\n      \"bounce_rate\": 0.0061,\n      \"complaint_rate\": 0.0002\n    },\n    \"engagement\": {\n      \"opens\": 5420,\n      \"opens_non_prefetched\": 3210,\n      \"unique_opens\": 3640,\n      \"unique_opens_non_prefetched\": 2480,\n      \"clicks\": 924,\n      \"unique_clicks\": 621,\n      \"unsubscribes\": 12,\n      \"open_rate\": 0.1683,\n      \"click_rate\": 0.0422,\n      \"unsubscribe_rate\": 0.0009\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"received\": 519\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-07-21\",\n      \"sends_accepted\": 12,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"received\": 34\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f054f79d-225a-8360-8f22-6e6056048d3a",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get mailbox email statistics",
                "description": {
                  "content": "Returns the mailbox's sent and received email statistics over a time window: a period-wide summary plus a bucketed series. Sent-mail metrics have the same delivery, engagement, and latency breakdowns as the email stats endpoints. `received` counts mail that arrived at the mailbox.\n\nRows are bucketed by the time the event happened rather than the time the message was sent, so engagement that arrived during the period for a message sent earlier is counted here. Statistics start when the mailbox starts sending and receiving; the mailbox's all-time `message_count` and `thread_count` live on the mailbox resource itself.\n\n`from` and `to` accept either calendar days (`YYYY-MM-DD`, `day` granularity only) or RFC 3339 instants (`hour` granularity only). Both bounds must use the same form. Window caps depend on `granularity`: 365 days at `day`, 30 days at `hour`. Set `timezone` to report in a local zone instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "stats"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-07-01",
                      "description": "Inclusive start of the window: a calendar day (`YYYY-MM-DD`, `day` granularity only) or an RFC 3339 instant rounded down to the hour (`hour` granularity only). Interpreted in `timezone`, or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `to`. Defaults to 30 days before `to` at `day` granularity and 7 days before `to` at `hour`, when omitted.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-07-21",
                      "description": "Inclusive end of the window: a calendar day (`YYYY-MM-DD`, `day` granularity only) or an RFC 3339 instant rounded down to the hour (`hour` granularity only). Interpreted in `timezone`, or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `from`. Defaults to today (day) or the current hour (hour) in that timezone when omitted. Window may not exceed 365 days at `day` or 30 days at `hour` granularity.\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "granularity",
                      "value": "day",
                      "description": "Granularity of the series: `day` (default) or `hour`. Echoed back as `period.grain`.\n"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"summary\": {\n    \"sends_accepted\": 231,\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"processed\": 14810,\n      \"delivered\": 14720,\n      \"bounced\": 90,\n      \"bounces\": {\n        \"hard\": 12410,\n        \"soft\": 14290,\n        \"admin\": 410,\n        \"block\": 920,\n        \"undetermined\": 80,\n        \"hard_rate\": 0.454,\n        \"soft_rate\": 0.523,\n        \"admin_rate\": 0.015,\n        \"block_rate\": 0.0337,\n        \"undetermined_rate\": 0.0029\n      },\n      \"complained\": 3,\n      \"deferred\": 14,\n      \"rejected\": 10,\n      \"oob_bounces\": 2,\n      \"effective_delivered\": 14718,\n      \"all_bounces\": 92,\n      \"oob_rate\": 0.00014,\n      \"delivery_rate\": 0.9939,\n      \"bounce_rate\": 0.0061,\n      \"complaint_rate\": 0.0002\n    },\n    \"engagement\": {\n      \"opens\": 5420,\n      \"opens_non_prefetched\": 3210,\n      \"unique_opens\": 3640,\n      \"unique_opens_non_prefetched\": 2480,\n      \"clicks\": 924,\n      \"unique_clicks\": 621,\n      \"unsubscribes\": 12,\n      \"open_rate\": 0.1683,\n      \"click_rate\": 0.0422,\n      \"unsubscribe_rate\": 0.0009\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"received\": 519\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-07-21\",\n      \"sends_accepted\": 12,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"received\": 34\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8be1bec5-95ba-8b39-85c7-47d444522eec",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get mailbox email statistics",
                "description": {
                  "content": "Returns the mailbox's sent and received email statistics over a time window: a period-wide summary plus a bucketed series. Sent-mail metrics have the same delivery, engagement, and latency breakdowns as the email stats endpoints. `received` counts mail that arrived at the mailbox.\n\nRows are bucketed by the time the event happened rather than the time the message was sent, so engagement that arrived during the period for a message sent earlier is counted here. Statistics start when the mailbox starts sending and receiving; the mailbox's all-time `message_count` and `thread_count` live on the mailbox resource itself.\n\n`from` and `to` accept either calendar days (`YYYY-MM-DD`, `day` granularity only) or RFC 3339 instants (`hour` granularity only). Both bounds must use the same form. Window caps depend on `granularity`: 365 days at `day`, 30 days at `hour`. Set `timezone` to report in a local zone instead of UTC.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "stats"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "2026-07-01",
                      "description": "Inclusive start of the window: a calendar day (`YYYY-MM-DD`, `day` granularity only) or an RFC 3339 instant rounded down to the hour (`hour` granularity only). Interpreted in `timezone`, or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `to`. Defaults to 30 days before `to` at `day` granularity and 7 days before `to` at `hour`, when omitted.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "2026-07-21",
                      "description": "Inclusive end of the window: a calendar day (`YYYY-MM-DD`, `day` granularity only) or an RFC 3339 instant rounded down to the hour (`hour` granularity only). Interpreted in `timezone`, or in UTC when `timezone` is omitted. A numeric UTC offset is rejected when `timezone` is set; use a calendar day or a `Z` (UTC) instant. Must use the same form as `from`. Defaults to today (day) or the current hour (hour) in that timezone when omitted. Window may not exceed 365 days at `day` or 30 days at `hour` granularity.\n"
                    },
                    {
                      "disabled": false,
                      "key": "timezone",
                      "value": "Asia/Kathmandu",
                      "description": "IANA timezone identifier used to group statistics, for example `Asia/Kathmandu`. The default is UTC. Day and hour boundaries, including the default window when `from` and `to` are omitted, follow this timezone. When this parameter is set, pass `from` and `to` as calendar days or `Z` instants instead of timestamps with explicit UTC offsets.\n"
                    },
                    {
                      "disabled": false,
                      "key": "granularity",
                      "value": "day",
                      "description": "Granularity of the series: `day` (default) or `hour`. Echoed back as `period.grain`.\n"
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"period\": {\n    \"from\": \"2026-05-01\",\n    \"to\": \"2026-05-31\",\n    \"grain\": \"day\",\n    \"data_as_of\": \"2026-05-25T14:03:10Z\"\n  },\n  \"summary\": {\n    \"sends_accepted\": 231,\n    \"delivery\": {\n      \"accepted\": 14820,\n      \"processed\": 14810,\n      \"delivered\": 14720,\n      \"bounced\": 90,\n      \"bounces\": {\n        \"hard\": 12410,\n        \"soft\": 14290,\n        \"admin\": 410,\n        \"block\": 920,\n        \"undetermined\": 80,\n        \"hard_rate\": 0.454,\n        \"soft_rate\": 0.523,\n        \"admin_rate\": 0.015,\n        \"block_rate\": 0.0337,\n        \"undetermined_rate\": 0.0029\n      },\n      \"complained\": 3,\n      \"deferred\": 14,\n      \"rejected\": 10,\n      \"oob_bounces\": 2,\n      \"effective_delivered\": 14718,\n      \"all_bounces\": 92,\n      \"oob_rate\": 0.00014,\n      \"delivery_rate\": 0.9939,\n      \"bounce_rate\": 0.0061,\n      \"complaint_rate\": 0.0002\n    },\n    \"engagement\": {\n      \"opens\": 5420,\n      \"opens_non_prefetched\": 3210,\n      \"unique_opens\": 3640,\n      \"unique_opens_non_prefetched\": 2480,\n      \"clicks\": 924,\n      \"unique_clicks\": 621,\n      \"unsubscribes\": 12,\n      \"open_rate\": 0.1683,\n      \"click_rate\": 0.0422,\n      \"unsubscribe_rate\": 0.0009\n    },\n    \"latency\": {\n      \"processing\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"delivery\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      },\n      \"total\": {\n        \"p50_ms\": 420,\n        \"p95_ms\": 1820,\n        \"p99_ms\": 4920\n      }\n    },\n    \"received\": 519\n  },\n  \"data\": [\n    {\n      \"bucket\": \"2026-07-21\",\n      \"sends_accepted\": 12,\n      \"delivery\": {\n        \"accepted\": 14820,\n        \"processed\": 14810,\n        \"delivered\": 14720,\n        \"bounced\": 90,\n        \"bounces\": {\n          \"hard\": 12410,\n          \"soft\": 14290,\n          \"admin\": 410,\n          \"block\": 920,\n          \"undetermined\": 80,\n          \"hard_rate\": 0.454,\n          \"soft_rate\": 0.523,\n          \"admin_rate\": 0.015,\n          \"block_rate\": 0.0337,\n          \"undetermined_rate\": 0.0029\n        },\n        \"complained\": 3,\n        \"deferred\": 14,\n        \"rejected\": 10,\n        \"oob_bounces\": 2,\n        \"effective_delivered\": 14718,\n        \"all_bounces\": 92,\n        \"oob_rate\": 0.00014,\n        \"delivery_rate\": 0.9939,\n        \"bounce_rate\": 0.0061,\n        \"complaint_rate\": 0.0002\n      },\n      \"engagement\": {\n        \"opens\": 5420,\n        \"opens_non_prefetched\": 3210,\n        \"unique_opens\": 3640,\n        \"unique_opens_non_prefetched\": 2480,\n        \"clicks\": 924,\n        \"unique_clicks\": 621,\n        \"unsubscribes\": 12,\n        \"open_rate\": 0.1683,\n        \"click_rate\": 0.0422,\n        \"unsubscribe_rate\": 0.0009\n      },\n      \"latency\": {\n        \"processing\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"delivery\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        },\n        \"total\": {\n          \"p50_ms\": 420,\n          \"p95_ms\": 1820,\n          \"p99_ms\": 4920\n        }\n      },\n      \"received\": 34\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "a3f89c30-ef4a-8aef-83d0-05317192d34c",
          "name": "Resume a suspended mailbox",
          "request": {
            "name": "Resume a suspended mailbox",
            "description": {
              "content": "Resumes a mailbox that was suspended because the organization dropped below the plan needed to keep it active. The mailbox can send and receive again and its conversations and messages become visible. Resuming is refused when the organization has no room for another active mailbox, or for another custom inbox.ai handle, on its current plan. Free up a slot by deleting an active mailbox, or move to a bigger plan. Resuming a mailbox that is not suspended returns a conflict.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "mailboxes",
                ":mailbox_id",
                "resume"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "mailbox_id",
                  "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST"
          },
          "response": [
            {
              "id": "d0041a51-070f-86a3-89b4-19f41731c9ee",
              "name": "Mailbox activated.",
              "originalRequest": {
                "name": "Resume a suspended mailbox",
                "description": {
                  "content": "Resumes a mailbox that was suspended because the organization dropped below the plan needed to keep it active. The mailbox can send and receive again and its conversations and messages become visible. Resuming is refused when the organization has no room for another active mailbox, or for another custom inbox.ai handle, on its current plan. Free up a slot by deleting an active mailbox, or move to a bigger plan. Resuming a mailbox that is not suspended returns a conflict.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "resume"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "15a66092-b9a6-8ae4-8c4d-37863602218f",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Resume a suspended mailbox",
                "description": {
                  "content": "Resumes a mailbox that was suspended because the organization dropped below the plan needed to keep it active. The mailbox can send and receive again and its conversations and messages become visible. Resuming is refused when the organization has no room for another active mailbox, or for another custom inbox.ai handle, on its current plan. Free up a slot by deleting an active mailbox, or move to a bigger plan. Resuming a mailbox that is not suspended returns a conflict.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "resume"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "227d1961-8274-8527-81d4-27cd9fc30d74",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Resume a suspended mailbox",
                "description": {
                  "content": "Resumes a mailbox that was suspended because the organization dropped below the plan needed to keep it active. The mailbox can send and receive again and its conversations and messages become visible. Resuming is refused when the organization has no room for another active mailbox, or for another custom inbox.ai handle, on its current plan. Free up a slot by deleting an active mailbox, or move to a bigger plan. Resuming a mailbox that is not suspended returns a conflict.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "resume"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e919a61f-1687-8739-80b7-e7599ffbb473",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Resume a suspended mailbox",
                "description": {
                  "content": "Resumes a mailbox that was suspended because the organization dropped below the plan needed to keep it active. The mailbox can send and receive again and its conversations and messages become visible. Resuming is refused when the organization has no room for another active mailbox, or for another custom inbox.ai handle, on its current plan. Free up a slot by deleting an active mailbox, or move to a bigger plan. Resuming a mailbox that is not suspended returns a conflict.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "resume"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7f06cea4-8c2b-88c7-823d-720e88cb5010",
              "name": "Resource conflict",
              "originalRequest": {
                "name": "Resume a suspended mailbox",
                "description": {
                  "content": "Resumes a mailbox that was suspended because the organization dropped below the plan needed to keep it active. The mailbox can send and receive again and its conversations and messages become visible. Resuming is refused when the organization has no room for another active mailbox, or for another custom inbox.ai handle, on its current plan. Free up a slot by deleting an active mailbox, or move to a bigger plan. Resuming a mailbox that is not suspended returns a conflict.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "resume"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Conflict",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "091b1ddf-6dbf-8bbc-89df-126db53ce2c9",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Resume a suspended mailbox",
                "description": {
                  "content": "Resumes a mailbox that was suspended because the organization dropped below the plan needed to keep it active. The mailbox can send and receive again and its conversations and messages become visible. Resuming is refused when the organization has no room for another active mailbox, or for another custom inbox.ai handle, on its current plan. Free up a slot by deleting an active mailbox, or move to a bigger plan. Resuming a mailbox that is not suspended returns a conflict.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "resume"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "221a9bf3-1ad9-8fe3-8d0d-5444b98c8413",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Resume a suspended mailbox",
                "description": {
                  "content": "Resumes a mailbox that was suspended because the organization dropped below the plan needed to keep it active. The mailbox can send and receive again and its conversations and messages become visible. Resuming is refused when the organization has no room for another active mailbox, or for another custom inbox.ai handle, on its current plan. Free up a slot by deleting an active mailbox, or move to a bigger plan. Resuming a mailbox that is not suspended returns a conflict.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "resume"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "17a6ed74-edfc-834c-8b70-f1c85262a9d7",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Resume a suspended mailbox",
                "description": {
                  "content": "Resumes a mailbox that was suspended because the organization dropped below the plan needed to keep it active. The mailbox can send and receive again and its conversations and messages become visible. Resuming is refused when the organization has no room for another active mailbox, or for another custom inbox.ai handle, on its current plan. Free up a slot by deleting an active mailbox, or move to a bigger plan. Resuming a mailbox that is not suspended returns a conflict.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "resume"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"address\": \"concierge@inbox.ai\",\n  \"display_name\": \"Acme Concierge\",\n  \"receive_policy\": \"open\",\n  \"state\": \"active\",\n  \"channel\": \"email\",\n  \"owner\": {\n    \"type\": \"workspace\",\n    \"id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\"\n  },\n  \"inbound_address_id\": \"ina_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"retention_tier\": \"30d\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "af3cdcfa-3ecd-8591-81c9-f554d629c8e4",
          "name": "List receive rules",
          "request": {
            "name": "List receive rules",
            "description": {
              "content": "Returns a paginated list of the mailbox's receive rules, oldest first. Filter by action to see only allow or only block entries.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "mailboxes",
                ":mailbox_id",
                "receive-rules"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "action",
                  "value": "",
                  "description": "Return only `allow` or `block` rules; omit to return both actions."
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "mailbox_id",
                  "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "9e3004da-875c-8631-8fdf-846b09cce225",
              "name": "Paginated list of receive rules.",
              "originalRequest": {
                "name": "List receive rules",
                "description": {
                  "content": "Returns a paginated list of the mailbox's receive rules, oldest first. Filter by action to see only allow or only block entries.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "receive-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "action",
                      "value": "",
                      "description": "Return only `allow` or `block` rules; omit to return both actions."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"erl_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"action\": \"allow\",\n      \"entry\": \"partner.example.com\",\n      \"entry_type\": \"address\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "63987913-a8f4-8020-844a-227359d98c26",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List receive rules",
                "description": {
                  "content": "Returns a paginated list of the mailbox's receive rules, oldest first. Filter by action to see only allow or only block entries.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "receive-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "action",
                      "value": "",
                      "description": "Return only `allow` or `block` rules; omit to return both actions."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"erl_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"action\": \"allow\",\n      \"entry\": \"partner.example.com\",\n      \"entry_type\": \"address\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2d5977cc-88f2-8134-8fc6-b027ef35ba22",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List receive rules",
                "description": {
                  "content": "Returns a paginated list of the mailbox's receive rules, oldest first. Filter by action to see only allow or only block entries.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "receive-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "action",
                      "value": "",
                      "description": "Return only `allow` or `block` rules; omit to return both actions."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"erl_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"action\": \"allow\",\n      \"entry\": \"partner.example.com\",\n      \"entry_type\": \"address\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ea9e0055-2014-85b3-8ff7-4d67e01003e5",
              "name": "Resource not found",
              "originalRequest": {
                "name": "List receive rules",
                "description": {
                  "content": "Returns a paginated list of the mailbox's receive rules, oldest first. Filter by action to see only allow or only block entries.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "receive-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "action",
                      "value": "",
                      "description": "Return only `allow` or `block` rules; omit to return both actions."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"erl_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"action\": \"allow\",\n      \"entry\": \"partner.example.com\",\n      \"entry_type\": \"address\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "939f28c5-a425-8d35-81db-c22ab9ce1fcb",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List receive rules",
                "description": {
                  "content": "Returns a paginated list of the mailbox's receive rules, oldest first. Filter by action to see only allow or only block entries.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "receive-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "action",
                      "value": "",
                      "description": "Return only `allow` or `block` rules; omit to return both actions."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"erl_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"action\": \"allow\",\n      \"entry\": \"partner.example.com\",\n      \"entry_type\": \"address\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ab0403a9-98d5-8b4a-86f7-b67b1f55a01d",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List receive rules",
                "description": {
                  "content": "Returns a paginated list of the mailbox's receive rules, oldest first. Filter by action to see only allow or only block entries.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "receive-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "action",
                      "value": "",
                      "description": "Return only `allow` or `block` rules; omit to return both actions."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"erl_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"action\": \"allow\",\n      \"entry\": \"partner.example.com\",\n      \"entry_type\": \"address\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b91dcdd4-8493-8d3e-85ca-cf3d73d909b5",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List receive rules",
                "description": {
                  "content": "Returns a paginated list of the mailbox's receive rules, oldest first. Filter by action to see only allow or only block entries.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "receive-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "action",
                      "value": "",
                      "description": "Return only `allow` or `block` rules; omit to return both actions."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"erl_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"action\": \"allow\",\n      \"entry\": \"partner.example.com\",\n      \"entry_type\": \"address\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "afcc2fb0-5bde-8bed-898a-e29ded08ab8a",
          "name": "Create a receive rule",
          "request": {
            "name": "Create a receive rule",
            "description": {
              "content": "Adds an allow or block rule to the mailbox. Rules match the message's envelope sender. Domain entries also match subdomains. Block rules always win, both over allow rules and over the reply admission on allowlist mailboxes. An entry is either allow or block. Rules have no update operation, so a rule that needs the other action is a new rule and the old one is removed. A mailbox holds up to 200 rules.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "mailboxes",
                ":mailbox_id",
                "receive-rules"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "mailbox_id",
                  "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"action\": \"allow\",\n  \"entry\": \"partner.example.com\",\n  \"note\": \"Approved partner senders\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "9445af08-b63e-8b4c-8fbb-8fea915874c5",
              "name": "Receive rule created.",
              "originalRequest": {
                "name": "Create a receive rule",
                "description": {
                  "content": "Adds an allow or block rule to the mailbox. Rules match the message's envelope sender. Domain entries also match subdomains. Block rules always win, both over allow rules and over the reply admission on allowlist mailboxes. An entry is either allow or block. Rules have no update operation, so a rule that needs the other action is a new rule and the old one is removed. A mailbox holds up to 200 rules.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "receive-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"action\": \"allow\",\n  \"entry\": \"partner.example.com\",\n  \"note\": \"Approved partner senders\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"erl_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"action\": \"allow\",\n  \"entry\": \"partner.example.com\",\n  \"entry_type\": \"address\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "604ca126-5c29-869e-8e09-fa0afbdda36f",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create a receive rule",
                "description": {
                  "content": "Adds an allow or block rule to the mailbox. Rules match the message's envelope sender. Domain entries also match subdomains. Block rules always win, both over allow rules and over the reply admission on allowlist mailboxes. An entry is either allow or block. Rules have no update operation, so a rule that needs the other action is a new rule and the old one is removed. A mailbox holds up to 200 rules.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "receive-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"action\": \"allow\",\n  \"entry\": \"partner.example.com\",\n  \"note\": \"Approved partner senders\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"erl_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"action\": \"allow\",\n  \"entry\": \"partner.example.com\",\n  \"entry_type\": \"address\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3eea29be-6ddb-8c7d-8a90-68cd88c14898",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create a receive rule",
                "description": {
                  "content": "Adds an allow or block rule to the mailbox. Rules match the message's envelope sender. Domain entries also match subdomains. Block rules always win, both over allow rules and over the reply admission on allowlist mailboxes. An entry is either allow or block. Rules have no update operation, so a rule that needs the other action is a new rule and the old one is removed. A mailbox holds up to 200 rules.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "receive-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"action\": \"allow\",\n  \"entry\": \"partner.example.com\",\n  \"note\": \"Approved partner senders\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"erl_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"action\": \"allow\",\n  \"entry\": \"partner.example.com\",\n  \"entry_type\": \"address\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "433384e5-1692-8bb3-8a19-a1ff5300b78f",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create a receive rule",
                "description": {
                  "content": "Adds an allow or block rule to the mailbox. Rules match the message's envelope sender. Domain entries also match subdomains. Block rules always win, both over allow rules and over the reply admission on allowlist mailboxes. An entry is either allow or block. Rules have no update operation, so a rule that needs the other action is a new rule and the old one is removed. A mailbox holds up to 200 rules.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "receive-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"action\": \"allow\",\n  \"entry\": \"partner.example.com\",\n  \"note\": \"Approved partner senders\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"erl_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"action\": \"allow\",\n  \"entry\": \"partner.example.com\",\n  \"entry_type\": \"address\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e4b7f95d-4f36-8e11-8118-5b50606d57e6",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Create a receive rule",
                "description": {
                  "content": "Adds an allow or block rule to the mailbox. Rules match the message's envelope sender. Domain entries also match subdomains. Block rules always win, both over allow rules and over the reply admission on allowlist mailboxes. An entry is either allow or block. Rules have no update operation, so a rule that needs the other action is a new rule and the old one is removed. A mailbox holds up to 200 rules.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "receive-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"action\": \"allow\",\n  \"entry\": \"partner.example.com\",\n  \"note\": \"Approved partner senders\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"erl_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"action\": \"allow\",\n  \"entry\": \"partner.example.com\",\n  \"entry_type\": \"address\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a867e6a3-2ea7-81ec-873f-6be1e614c826",
              "name": "Resource conflict",
              "originalRequest": {
                "name": "Create a receive rule",
                "description": {
                  "content": "Adds an allow or block rule to the mailbox. Rules match the message's envelope sender. Domain entries also match subdomains. Block rules always win, both over allow rules and over the reply admission on allowlist mailboxes. An entry is either allow or block. Rules have no update operation, so a rule that needs the other action is a new rule and the old one is removed. A mailbox holds up to 200 rules.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "receive-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"action\": \"allow\",\n  \"entry\": \"partner.example.com\",\n  \"note\": \"Approved partner senders\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"erl_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"action\": \"allow\",\n  \"entry\": \"partner.example.com\",\n  \"entry_type\": \"address\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "bff4ee2e-6590-883a-8cbe-8c90c238f0a7",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create a receive rule",
                "description": {
                  "content": "Adds an allow or block rule to the mailbox. Rules match the message's envelope sender. Domain entries also match subdomains. Block rules always win, both over allow rules and over the reply admission on allowlist mailboxes. An entry is either allow or block. Rules have no update operation, so a rule that needs the other action is a new rule and the old one is removed. A mailbox holds up to 200 rules.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "receive-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"action\": \"allow\",\n  \"entry\": \"partner.example.com\",\n  \"note\": \"Approved partner senders\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"erl_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"action\": \"allow\",\n  \"entry\": \"partner.example.com\",\n  \"entry_type\": \"address\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e7af65a3-59d4-8964-8ddd-8c89c20c8bce",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create a receive rule",
                "description": {
                  "content": "Adds an allow or block rule to the mailbox. Rules match the message's envelope sender. Domain entries also match subdomains. Block rules always win, both over allow rules and over the reply admission on allowlist mailboxes. An entry is either allow or block. Rules have no update operation, so a rule that needs the other action is a new rule and the old one is removed. A mailbox holds up to 200 rules.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "receive-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"action\": \"allow\",\n  \"entry\": \"partner.example.com\",\n  \"note\": \"Approved partner senders\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 201,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"erl_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"action\": \"allow\",\n  \"entry\": \"partner.example.com\",\n  \"entry_type\": \"address\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4e27e157-2502-8f32-8d98-bc8f7f7adcd1",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create a receive rule",
                "description": {
                  "content": "Adds an allow or block rule to the mailbox. Rules match the message's envelope sender. Domain entries also match subdomains. Block rules always win, both over allow rules and over the reply admission on allowlist mailboxes. An entry is either allow or block. Rules have no update operation, so a rule that needs the other action is a new rule and the old one is removed. A mailbox holds up to 200 rules.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "receive-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"action\": \"allow\",\n  \"entry\": \"partner.example.com\",\n  \"note\": \"Approved partner senders\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"erl_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"action\": \"allow\",\n  \"entry\": \"partner.example.com\",\n  \"entry_type\": \"address\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "91410ea1-0f0f-87ff-8f29-f9a75484ff27",
          "name": "Delete a receive rule",
          "request": {
            "name": "Delete a receive rule",
            "description": {
              "content": "Removes a receive rule from the mailbox. A rule's allow or block action cannot be changed after creation; delete it and create a replacement.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "mailboxes",
                ":mailbox_id",
                "receive-rules",
                ":rule_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "mailbox_id",
                  "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "rule_id",
                  "description": "(Required) Receive-rule identifier. Starts with `erl_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "DELETE"
          },
          "response": [
            {
              "id": "6879417c-d00d-8068-8a68-af88b5d8be0c",
              "name": "Receive rule deleted.",
              "originalRequest": {
                "name": "Delete a receive rule",
                "description": {
                  "content": "Removes a receive rule from the mailbox. A rule's allow or block action cannot be changed after creation; delete it and create a replacement.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "receive-rules",
                    ":rule_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "rule_id",
                      "description": "(Required) Receive-rule identifier. Starts with `erl_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "24dfe042-7074-82d7-86f7-f397d2b80189",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Delete a receive rule",
                "description": {
                  "content": "Removes a receive rule from the mailbox. A rule's allow or block action cannot be changed after creation; delete it and create a replacement.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "receive-rules",
                    ":rule_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "rule_id",
                      "description": "(Required) Receive-rule identifier. Starts with `erl_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cd94ad73-c983-8902-8a75-8d3c05a686ed",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Delete a receive rule",
                "description": {
                  "content": "Removes a receive rule from the mailbox. A rule's allow or block action cannot be changed after creation; delete it and create a replacement.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "receive-rules",
                    ":rule_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "rule_id",
                      "description": "(Required) Receive-rule identifier. Starts with `erl_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7d5f9246-97bb-8e8f-8363-53b5089de8d5",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Delete a receive rule",
                "description": {
                  "content": "Removes a receive rule from the mailbox. A rule's allow or block action cannot be changed after creation; delete it and create a replacement.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "receive-rules",
                    ":rule_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "rule_id",
                      "description": "(Required) Receive-rule identifier. Starts with `erl_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2c775aa9-8120-8935-87be-9a31e640db5c",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Delete a receive rule",
                "description": {
                  "content": "Removes a receive rule from the mailbox. A rule's allow or block action cannot be changed after creation; delete it and create a replacement.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "receive-rules",
                    ":rule_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "rule_id",
                      "description": "(Required) Receive-rule identifier. Starts with `erl_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b455aa80-4cba-84c9-88f3-cf427c972958",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Delete a receive rule",
                "description": {
                  "content": "Removes a receive rule from the mailbox. A rule's allow or block action cannot be changed after creation; delete it and create a replacement.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "receive-rules",
                    ":rule_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "rule_id",
                      "description": "(Required) Receive-rule identifier. Starts with `erl_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d4fa9cb1-b176-8564-8548-86b6362c289a",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Delete a receive rule",
                "description": {
                  "content": "Removes a receive rule from the mailbox. A rule's allow or block action cannot be changed after creation; delete it and create a replacement.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "receive-rules",
                    ":rule_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "rule_id",
                      "description": "(Required) Receive-rule identifier. Starts with `erl_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "abf06d2d-42a7-8170-8bf2-3823ef3a1fe1",
      "name": "email-inbound-routes",
      "description": {
        "content": "Routing rules that direct inbound mail on your domains into mailboxes, or drop it, in priority order.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "2db42710-5a24-8b8a-8f31-8d06e796ca22",
          "name": "List inbound routes",
          "request": {
            "name": "List inbound routes",
            "description": {
              "content": "Returns a paginated list of the workspace's inbound routes in evaluation order, lowest priority number first. Filter by domain or by enabled state.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "inbound-routes"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "domain",
                  "value": "mail.acme.com",
                  "description": "Filter to routes on this domain."
                },
                {
                  "disabled": true,
                  "key": "enabled",
                  "value": "",
                  "description": "Set to `true` for active routes or `false` for routes skipped during evaluation."
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "96a2f875-69fb-883f-8aa7-e95cc603c5d1",
              "name": "Paginated list of inbound routes.",
              "originalRequest": {
                "name": "List inbound routes",
                "description": {
                  "content": "Returns a paginated list of the workspace's inbound routes in evaluation order, lowest priority number first. Filter by domain or by enabled state.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "domain",
                      "value": "mail.acme.com",
                      "description": "Filter to routes on this domain."
                    },
                    {
                      "disabled": true,
                      "key": "enabled",
                      "value": "",
                      "description": "Set to `true` for active routes or `false` for routes skipped during evaluation."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"domain\": \"mail.acme.com\",\n      \"match_type\": \"address\",\n      \"match_value\": \"refunds\",\n      \"action\": \"deliver_to_mailbox\",\n      \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e9b5601b-c6c0-8603-8ca2-6a19e2cb2a33",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List inbound routes",
                "description": {
                  "content": "Returns a paginated list of the workspace's inbound routes in evaluation order, lowest priority number first. Filter by domain or by enabled state.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "domain",
                      "value": "mail.acme.com",
                      "description": "Filter to routes on this domain."
                    },
                    {
                      "disabled": true,
                      "key": "enabled",
                      "value": "",
                      "description": "Set to `true` for active routes or `false` for routes skipped during evaluation."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"domain\": \"mail.acme.com\",\n      \"match_type\": \"address\",\n      \"match_value\": \"refunds\",\n      \"action\": \"deliver_to_mailbox\",\n      \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7650041b-54b7-8341-85c3-836e0fdc4dfa",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List inbound routes",
                "description": {
                  "content": "Returns a paginated list of the workspace's inbound routes in evaluation order, lowest priority number first. Filter by domain or by enabled state.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "domain",
                      "value": "mail.acme.com",
                      "description": "Filter to routes on this domain."
                    },
                    {
                      "disabled": true,
                      "key": "enabled",
                      "value": "",
                      "description": "Set to `true` for active routes or `false` for routes skipped during evaluation."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"domain\": \"mail.acme.com\",\n      \"match_type\": \"address\",\n      \"match_value\": \"refunds\",\n      \"action\": \"deliver_to_mailbox\",\n      \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c5664f42-b13a-88e2-85b1-01bdd49f2d41",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List inbound routes",
                "description": {
                  "content": "Returns a paginated list of the workspace's inbound routes in evaluation order, lowest priority number first. Filter by domain or by enabled state.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "domain",
                      "value": "mail.acme.com",
                      "description": "Filter to routes on this domain."
                    },
                    {
                      "disabled": true,
                      "key": "enabled",
                      "value": "",
                      "description": "Set to `true` for active routes or `false` for routes skipped during evaluation."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"domain\": \"mail.acme.com\",\n      \"match_type\": \"address\",\n      \"match_value\": \"refunds\",\n      \"action\": \"deliver_to_mailbox\",\n      \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c21548f4-d8ee-8ad3-897b-8c5efb359517",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List inbound routes",
                "description": {
                  "content": "Returns a paginated list of the workspace's inbound routes in evaluation order, lowest priority number first. Filter by domain or by enabled state.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "domain",
                      "value": "mail.acme.com",
                      "description": "Filter to routes on this domain."
                    },
                    {
                      "disabled": true,
                      "key": "enabled",
                      "value": "",
                      "description": "Set to `true` for active routes or `false` for routes skipped during evaluation."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"domain\": \"mail.acme.com\",\n      \"match_type\": \"address\",\n      \"match_value\": \"refunds\",\n      \"action\": \"deliver_to_mailbox\",\n      \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8a05b8bc-91ba-8adc-82b6-babbc519c1a4",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List inbound routes",
                "description": {
                  "content": "Returns a paginated list of the workspace's inbound routes in evaluation order, lowest priority number first. Filter by domain or by enabled state.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "domain",
                      "value": "mail.acme.com",
                      "description": "Filter to routes on this domain."
                    },
                    {
                      "disabled": true,
                      "key": "enabled",
                      "value": "",
                      "description": "Set to `true` for active routes or `false` for routes skipped during evaluation."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"domain\": \"mail.acme.com\",\n      \"match_type\": \"address\",\n      \"match_value\": \"refunds\",\n      \"action\": \"deliver_to_mailbox\",\n      \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "05c80d81-0428-8dfe-855a-3e804fb356d1",
          "name": "Create an inbound route",
          "request": {
            "name": "Create an inbound route",
            "description": {
              "content": "Creates a routing rule that delivers matching inbound mail on one of your domains to a mailbox, or drops it. Routes are evaluated in order, lowest `priority` first, and a mailbox's own address always matches ahead of any route you create. Mail that no route matches is still received as a plain received email. The `domain` must be one of your workspace's inbound-enabled domains. Some fields depend on each other, and that dependency is described on the field itself. Breaking one of those rules returns `422`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "inbound-routes"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "8c88ca10-06db-8587-8088-bcfed89eac01",
              "name": "Inbound route created.",
              "originalRequest": {
                "name": "Create an inbound route",
                "description": {
                  "content": "Creates a routing rule that delivers matching inbound mail on one of your domains to a mailbox, or drops it. Routes are evaluated in order, lowest `priority` first, and a mailbox's own address always matches ahead of any route you create. Mail that no route matches is still received as a plain received email. The `domain` must be one of your workspace's inbound-enabled domains. Some fields depend on each other, and that dependency is described on the field itself. Breaking one of those rules returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "404cee9a-048e-8333-8ccb-998aa1c85fe5",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create an inbound route",
                "description": {
                  "content": "Creates a routing rule that delivers matching inbound mail on one of your domains to a mailbox, or drops it. Routes are evaluated in order, lowest `priority` first, and a mailbox's own address always matches ahead of any route you create. Mail that no route matches is still received as a plain received email. The `domain` must be one of your workspace's inbound-enabled domains. Some fields depend on each other, and that dependency is described on the field itself. Breaking one of those rules returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0b1aded8-4ccb-8f39-8d68-38e97d97c66a",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create an inbound route",
                "description": {
                  "content": "Creates a routing rule that delivers matching inbound mail on one of your domains to a mailbox, or drops it. Routes are evaluated in order, lowest `priority` first, and a mailbox's own address always matches ahead of any route you create. Mail that no route matches is still received as a plain received email. The `domain` must be one of your workspace's inbound-enabled domains. Some fields depend on each other, and that dependency is described on the field itself. Breaking one of those rules returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fc4178ec-7e61-85f1-8014-facd39218ffc",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create an inbound route",
                "description": {
                  "content": "Creates a routing rule that delivers matching inbound mail on one of your domains to a mailbox, or drops it. Routes are evaluated in order, lowest `priority` first, and a mailbox's own address always matches ahead of any route you create. Mail that no route matches is still received as a plain received email. The `domain` must be one of your workspace's inbound-enabled domains. Some fields depend on each other, and that dependency is described on the field itself. Breaking one of those rules returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "35eee615-99fe-8b58-891c-c14590f1e400",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create an inbound route",
                "description": {
                  "content": "Creates a routing rule that delivers matching inbound mail on one of your domains to a mailbox, or drops it. Routes are evaluated in order, lowest `priority` first, and a mailbox's own address always matches ahead of any route you create. Mail that no route matches is still received as a plain received email. The `domain` must be one of your workspace's inbound-enabled domains. Some fields depend on each other, and that dependency is described on the field itself. Breaking one of those rules returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fbf8a6f0-8f14-8837-8171-8b1f13fc62ea",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create an inbound route",
                "description": {
                  "content": "Creates a routing rule that delivers matching inbound mail on one of your domains to a mailbox, or drops it. Routes are evaluated in order, lowest `priority` first, and a mailbox's own address always matches ahead of any route you create. Mail that no route matches is still received as a plain received email. The `domain` must be one of your workspace's inbound-enabled domains. Some fields depend on each other, and that dependency is described on the field itself. Breaking one of those rules returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 201,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "573f6ab4-166c-8051-8744-3f510c5de3e0",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create an inbound route",
                "description": {
                  "content": "Creates a routing rule that delivers matching inbound mail on one of your domains to a mailbox, or drops it. Routes are evaluated in order, lowest `priority` first, and a mailbox's own address always matches ahead of any route you create. Mail that no route matches is still received as a plain received email. The `domain` must be one of your workspace's inbound-enabled domains. Some fields depend on each other, and that dependency is described on the field itself. Breaking one of those rules returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "27077d5d-7177-88ac-8afb-caa636c774fe",
          "name": "Get an inbound route",
          "request": {
            "name": "Get an inbound route",
            "description": {
              "content": "Returns a single inbound route:\n\n- Its match rule.\n- Its action.\n- Its target mailbox.\n- Its priority.\n- Its enabled state.\n\nUse [List inbound routes](https://bird.com/docs/api/reference/list-inbound-routes) to see every route in evaluation order.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "inbound-routes",
                ":route_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "route_id",
                  "description": "(Required) Inbound route identifier. Starts with `ein_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "aa28c172-e821-8172-886c-b01ed5bab6ad",
              "name": "Inbound route object.",
              "originalRequest": {
                "name": "Get an inbound route",
                "description": {
                  "content": "Returns a single inbound route:\n\n- Its match rule.\n- Its action.\n- Its target mailbox.\n- Its priority.\n- Its enabled state.\n\nUse [List inbound routes](https://bird.com/docs/api/reference/list-inbound-routes) to see every route in evaluation order.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes",
                    ":route_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "route_id",
                      "description": "(Required) Inbound route identifier. Starts with `ein_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3af2be61-0295-862d-880f-c12fcf70bd64",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get an inbound route",
                "description": {
                  "content": "Returns a single inbound route:\n\n- Its match rule.\n- Its action.\n- Its target mailbox.\n- Its priority.\n- Its enabled state.\n\nUse [List inbound routes](https://bird.com/docs/api/reference/list-inbound-routes) to see every route in evaluation order.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes",
                    ":route_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "route_id",
                      "description": "(Required) Inbound route identifier. Starts with `ein_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3db78ca5-bb19-8901-8efe-b885d9eef2be",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get an inbound route",
                "description": {
                  "content": "Returns a single inbound route:\n\n- Its match rule.\n- Its action.\n- Its target mailbox.\n- Its priority.\n- Its enabled state.\n\nUse [List inbound routes](https://bird.com/docs/api/reference/list-inbound-routes) to see every route in evaluation order.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes",
                    ":route_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "route_id",
                      "description": "(Required) Inbound route identifier. Starts with `ein_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "35c88438-c28e-8495-8178-e0c23e5153e4",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get an inbound route",
                "description": {
                  "content": "Returns a single inbound route:\n\n- Its match rule.\n- Its action.\n- Its target mailbox.\n- Its priority.\n- Its enabled state.\n\nUse [List inbound routes](https://bird.com/docs/api/reference/list-inbound-routes) to see every route in evaluation order.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes",
                    ":route_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "route_id",
                      "description": "(Required) Inbound route identifier. Starts with `ein_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3b1c5b49-d9d9-8b15-8b63-9c391333b80e",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get an inbound route",
                "description": {
                  "content": "Returns a single inbound route:\n\n- Its match rule.\n- Its action.\n- Its target mailbox.\n- Its priority.\n- Its enabled state.\n\nUse [List inbound routes](https://bird.com/docs/api/reference/list-inbound-routes) to see every route in evaluation order.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes",
                    ":route_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "route_id",
                      "description": "(Required) Inbound route identifier. Starts with `ein_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5463a176-883c-88bb-8b56-f1a1de27531b",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get an inbound route",
                "description": {
                  "content": "Returns a single inbound route:\n\n- Its match rule.\n- Its action.\n- Its target mailbox.\n- Its priority.\n- Its enabled state.\n\nUse [List inbound routes](https://bird.com/docs/api/reference/list-inbound-routes) to see every route in evaluation order.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes",
                    ":route_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "route_id",
                      "description": "(Required) Inbound route identifier. Starts with `ein_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6761aa76-fa31-8cde-87a3-8bc6bc87803c",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get an inbound route",
                "description": {
                  "content": "Returns a single inbound route:\n\n- Its match rule.\n- Its action.\n- Its target mailbox.\n- Its priority.\n- Its enabled state.\n\nUse [List inbound routes](https://bird.com/docs/api/reference/list-inbound-routes) to see every route in evaluation order.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes",
                    ":route_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "route_id",
                      "description": "(Required) Inbound route identifier. Starts with `ein_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "ebfaccfa-78b0-85ab-878a-b215b7247cda",
          "name": "Update an inbound route",
          "request": {
            "name": "Update an inbound route",
            "description": {
              "content": "Updates an inbound route. Omitted fields are unchanged. The `domain` is immutable. Fields that depend on each other are checked against the updated route, so a change that leaves it inconsistent (for example `deliver_to_mailbox` without a target mailbox) returns `422`. Disabled routes are kept but skipped during evaluation.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "inbound-routes",
                ":route_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "route_id",
                  "description": "(Required) Inbound route identifier. Starts with `ein_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "PATCH",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"priority\": 50,\n  \"enabled\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "840750b5-7d26-8ec1-89b8-c71073e18b56",
              "name": "Inbound route updated.",
              "originalRequest": {
                "name": "Update an inbound route",
                "description": {
                  "content": "Updates an inbound route. Omitted fields are unchanged. The `domain` is immutable. Fields that depend on each other are checked against the updated route, so a change that leaves it inconsistent (for example `deliver_to_mailbox` without a target mailbox) returns `422`. Disabled routes are kept but skipped during evaluation.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes",
                    ":route_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "route_id",
                      "description": "(Required) Inbound route identifier. Starts with `ein_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"priority\": 50,\n  \"enabled\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "be914d23-540b-81fd-89fe-ccd377b9dc73",
              "name": "Bad request",
              "originalRequest": {
                "name": "Update an inbound route",
                "description": {
                  "content": "Updates an inbound route. Omitted fields are unchanged. The `domain` is immutable. Fields that depend on each other are checked against the updated route, so a change that leaves it inconsistent (for example `deliver_to_mailbox` without a target mailbox) returns `422`. Disabled routes are kept but skipped during evaluation.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes",
                    ":route_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "route_id",
                      "description": "(Required) Inbound route identifier. Starts with `ein_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"priority\": 50,\n  \"enabled\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d3ade4d1-4632-8b95-86ea-ea6bc09f27e4",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Update an inbound route",
                "description": {
                  "content": "Updates an inbound route. Omitted fields are unchanged. The `domain` is immutable. Fields that depend on each other are checked against the updated route, so a change that leaves it inconsistent (for example `deliver_to_mailbox` without a target mailbox) returns `422`. Disabled routes are kept but skipped during evaluation.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes",
                    ":route_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "route_id",
                      "description": "(Required) Inbound route identifier. Starts with `ein_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"priority\": 50,\n  \"enabled\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "16d6e89c-3097-8e73-80cd-936f62b55c12",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Update an inbound route",
                "description": {
                  "content": "Updates an inbound route. Omitted fields are unchanged. The `domain` is immutable. Fields that depend on each other are checked against the updated route, so a change that leaves it inconsistent (for example `deliver_to_mailbox` without a target mailbox) returns `422`. Disabled routes are kept but skipped during evaluation.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes",
                    ":route_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "route_id",
                      "description": "(Required) Inbound route identifier. Starts with `ein_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"priority\": 50,\n  \"enabled\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2defb8c5-3055-8483-8929-c70109424186",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Update an inbound route",
                "description": {
                  "content": "Updates an inbound route. Omitted fields are unchanged. The `domain` is immutable. Fields that depend on each other are checked against the updated route, so a change that leaves it inconsistent (for example `deliver_to_mailbox` without a target mailbox) returns `422`. Disabled routes are kept but skipped during evaluation.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes",
                    ":route_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "route_id",
                      "description": "(Required) Inbound route identifier. Starts with `ein_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"priority\": 50,\n  \"enabled\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5ceab3ad-b9b7-800b-8a7a-3eb5a409de9d",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Update an inbound route",
                "description": {
                  "content": "Updates an inbound route. Omitted fields are unchanged. The `domain` is immutable. Fields that depend on each other are checked against the updated route, so a change that leaves it inconsistent (for example `deliver_to_mailbox` without a target mailbox) returns `422`. Disabled routes are kept but skipped during evaluation.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes",
                    ":route_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "route_id",
                      "description": "(Required) Inbound route identifier. Starts with `ein_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"priority\": 50,\n  \"enabled\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "90f453a6-4315-8ded-86ac-ed2da255ccd0",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Update an inbound route",
                "description": {
                  "content": "Updates an inbound route. Omitted fields are unchanged. The `domain` is immutable. Fields that depend on each other are checked against the updated route, so a change that leaves it inconsistent (for example `deliver_to_mailbox` without a target mailbox) returns `422`. Disabled routes are kept but skipped during evaluation.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes",
                    ":route_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "route_id",
                      "description": "(Required) Inbound route identifier. Starts with `ein_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"priority\": 50,\n  \"enabled\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a6882534-b813-8aa6-880a-f2048f737bfe",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Update an inbound route",
                "description": {
                  "content": "Updates an inbound route. Omitted fields are unchanged. The `domain` is immutable. Fields that depend on each other are checked against the updated route, so a change that leaves it inconsistent (for example `deliver_to_mailbox` without a target mailbox) returns `422`. Disabled routes are kept but skipped during evaluation.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes",
                    ":route_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "route_id",
                      "description": "(Required) Inbound route identifier. Starts with `ein_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"priority\": 50,\n  \"enabled\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ein_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"domain\": \"mail.acme.com\",\n  \"match_type\": \"address\",\n  \"match_value\": \"refunds\",\n  \"action\": \"deliver_to_mailbox\",\n  \"target_mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "a2285353-faf3-8854-810e-89700451e02a",
          "name": "Delete an inbound route",
          "request": {
            "name": "Delete an inbound route",
            "description": {
              "content": "Deletes an inbound route. Mail the route matched falls through to the next route in priority order, or, when nothing matches, is received as a plain received email.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "inbound-routes",
                ":route_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "route_id",
                  "description": "(Required) Inbound route identifier. Starts with `ein_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "DELETE"
          },
          "response": [
            {
              "id": "ea1c96a1-3235-850a-8184-bb3bb8f9a002",
              "name": "Inbound route deleted.",
              "originalRequest": {
                "name": "Delete an inbound route",
                "description": {
                  "content": "Deletes an inbound route. Mail the route matched falls through to the next route in priority order, or, when nothing matches, is received as a plain received email.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes",
                    ":route_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "route_id",
                      "description": "(Required) Inbound route identifier. Starts with `ein_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "d37cc165-a5e5-8992-871b-a46bbc48b597",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Delete an inbound route",
                "description": {
                  "content": "Deletes an inbound route. Mail the route matched falls through to the next route in priority order, or, when nothing matches, is received as a plain received email.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes",
                    ":route_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "route_id",
                      "description": "(Required) Inbound route identifier. Starts with `ein_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ba851ab5-bc5b-81e1-88c9-f22c4098f044",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Delete an inbound route",
                "description": {
                  "content": "Deletes an inbound route. Mail the route matched falls through to the next route in priority order, or, when nothing matches, is received as a plain received email.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes",
                    ":route_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "route_id",
                      "description": "(Required) Inbound route identifier. Starts with `ein_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "bb4968b9-28f5-86d1-82b7-c9481eda1d12",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Delete an inbound route",
                "description": {
                  "content": "Deletes an inbound route. Mail the route matched falls through to the next route in priority order, or, when nothing matches, is received as a plain received email.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes",
                    ":route_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "route_id",
                      "description": "(Required) Inbound route identifier. Starts with `ein_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d8ed147e-0ab7-8fdc-8d56-8b085331a312",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Delete an inbound route",
                "description": {
                  "content": "Deletes an inbound route. Mail the route matched falls through to the next route in priority order, or, when nothing matches, is received as a plain received email.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes",
                    ":route_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "route_id",
                      "description": "(Required) Inbound route identifier. Starts with `ein_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6fba79a4-cd51-8ee5-853f-72b665a0f041",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Delete an inbound route",
                "description": {
                  "content": "Deletes an inbound route. Mail the route matched falls through to the next route in priority order, or, when nothing matches, is received as a plain received email.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes",
                    ":route_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "route_id",
                      "description": "(Required) Inbound route identifier. Starts with `ein_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dbdda064-9d50-84fd-8242-3db93ff75222",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Delete an inbound route",
                "description": {
                  "content": "Deletes an inbound route. Mail the route matched falls through to the next route in priority order, or, when nothing matches, is received as a plain received email.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "inbound-routes",
                    ":route_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "route_id",
                      "description": "(Required) Inbound route identifier. Starts with `ein_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "4a11a3f2-e39f-8850-83b4-12d17d7e5741",
      "name": "email-threads",
      "description": {
        "content": "Conversations in a mailbox. Threads group related inbound and outbound messages and carry read state, labels, and participants.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "f20e81fc-e204-8ca8-87cf-6a48536039ac",
          "name": "List threads",
          "request": {
            "name": "List threads",
            "description": {
              "content": "Returns a paginated list of conversations across the workspace's mailboxes, most recently active first. `label` selects the view: the inbox (the default when omitted), `archive`, `spam`, `blocked`, or any custom label. You can also filter by mailbox, by linked contact, by participant address, or by a subject substring.\n\nThis listing filters; it does not search message content.\nConversations whose every message is trashed are excluded; restoring a message\nreturns the conversation to the list.\n\n`before` and `after` filter by time. To page through the results, pass the response cursors back as `starting_after` or `ending_before`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "threads"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "mailbox_id",
                  "value": "",
                  "description": "Filter to conversations in a specific mailbox."
                },
                {
                  "disabled": true,
                  "key": "contact_id",
                  "value": "",
                  "description": "Filter to conversations linked to a specific contact."
                },
                {
                  "disabled": false,
                  "key": "label",
                  "value": "urgent",
                  "description": "Filter to conversations that have this label. Repeat the parameter to ask for more than one: only conversations that have every label you list are returned.\n\nA placement label picks a folder: `inbox`, `archive`, `spam`, or `blocked`. A custom label matches a conversation in any folder. Leave this out and you get the inbox."
                },
                {
                  "disabled": true,
                  "key": "has_unread",
                  "value": "",
                  "description": "When `true`, only conversations with unread messages are returned. This filters on the conversation's unread state, so you can combine it with `label`, for example to get unread conversations in the archive. The `unread` label itself lives on individual messages; this filter uses the conversation's aggregate unread state."
                },
                {
                  "disabled": false,
                  "key": "participant",
                  "value": "billing@acme.com",
                  "description": "Conversations involving this address, matching the sender or any recipient. The match is case-insensitive and matches on any part of the address, so a fragment works as well as the whole address."
                },
                {
                  "disabled": false,
                  "key": "subject",
                  "value": "quarterly invoice",
                  "description": "Conversations whose subject contains this text (case-insensitive)."
                },
                {
                  "disabled": true,
                  "key": "after",
                  "value": "",
                  "description": "Filter to conversations whose most recent message is at or after this time. Use the response cursors for pagination."
                },
                {
                  "disabled": true,
                  "key": "before",
                  "value": "",
                  "description": "Filter to conversations whose most recent message is at or before this time. Use the response cursors for pagination."
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "63d41571-e346-8cb8-8bcd-9924acad6f08",
              "name": "Paginated list of threads.",
              "originalRequest": {
                "name": "List threads",
                "description": {
                  "content": "Returns a paginated list of conversations across the workspace's mailboxes, most recently active first. `label` selects the view: the inbox (the default when omitted), `archive`, `spam`, `blocked`, or any custom label. You can also filter by mailbox, by linked contact, by participant address, or by a subject substring.\n\nThis listing filters; it does not search message content.\nConversations whose every message is trashed are excluded; restoring a message\nreturns the conversation to the list.\n\n`before` and `after` filter by time. To page through the results, pass the response cursors back as `starting_after` or `ending_before`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "mailbox_id",
                      "value": "",
                      "description": "Filter to conversations in a specific mailbox."
                    },
                    {
                      "disabled": true,
                      "key": "contact_id",
                      "value": "",
                      "description": "Filter to conversations linked to a specific contact."
                    },
                    {
                      "disabled": false,
                      "key": "label",
                      "value": "urgent",
                      "description": "Filter to conversations that have this label. Repeat the parameter to ask for more than one: only conversations that have every label you list are returned.\n\nA placement label picks a folder: `inbox`, `archive`, `spam`, or `blocked`. A custom label matches a conversation in any folder. Leave this out and you get the inbox."
                    },
                    {
                      "disabled": true,
                      "key": "has_unread",
                      "value": "",
                      "description": "When `true`, only conversations with unread messages are returned. This filters on the conversation's unread state, so you can combine it with `label`, for example to get unread conversations in the archive. The `unread` label itself lives on individual messages; this filter uses the conversation's aggregate unread state."
                    },
                    {
                      "disabled": false,
                      "key": "participant",
                      "value": "billing@acme.com",
                      "description": "Conversations involving this address, matching the sender or any recipient. The match is case-insensitive and matches on any part of the address, so a fragment works as well as the whole address."
                    },
                    {
                      "disabled": false,
                      "key": "subject",
                      "value": "quarterly invoice",
                      "description": "Conversations whose subject contains this text (case-insensitive)."
                    },
                    {
                      "disabled": true,
                      "key": "after",
                      "value": "",
                      "description": "Filter to conversations whose most recent message is at or after this time. Use the response cursors for pagination."
                    },
                    {
                      "disabled": true,
                      "key": "before",
                      "value": "",
                      "description": "Filter to conversations whose most recent message is at or before this time. Use the response cursors for pagination."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"channel\": \"email\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"subject\": \"Re: Your order\",\n      \"last_direction\": \"inbound\",\n      \"labels\": [\n        \"inbox\",\n        \"urgent\"\n      ],\n      \"highlights\": {\n        \"subject\": [\n          \"Re: your **order** **4821**\"\n        ],\n        \"text\": [\n          \"confirming your **order** **4821** shipped\"\n        ]\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fc97ff00-1875-8423-85ae-55cdad8a514a",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List threads",
                "description": {
                  "content": "Returns a paginated list of conversations across the workspace's mailboxes, most recently active first. `label` selects the view: the inbox (the default when omitted), `archive`, `spam`, `blocked`, or any custom label. You can also filter by mailbox, by linked contact, by participant address, or by a subject substring.\n\nThis listing filters; it does not search message content.\nConversations whose every message is trashed are excluded; restoring a message\nreturns the conversation to the list.\n\n`before` and `after` filter by time. To page through the results, pass the response cursors back as `starting_after` or `ending_before`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "mailbox_id",
                      "value": "",
                      "description": "Filter to conversations in a specific mailbox."
                    },
                    {
                      "disabled": true,
                      "key": "contact_id",
                      "value": "",
                      "description": "Filter to conversations linked to a specific contact."
                    },
                    {
                      "disabled": false,
                      "key": "label",
                      "value": "urgent",
                      "description": "Filter to conversations that have this label. Repeat the parameter to ask for more than one: only conversations that have every label you list are returned.\n\nA placement label picks a folder: `inbox`, `archive`, `spam`, or `blocked`. A custom label matches a conversation in any folder. Leave this out and you get the inbox."
                    },
                    {
                      "disabled": true,
                      "key": "has_unread",
                      "value": "",
                      "description": "When `true`, only conversations with unread messages are returned. This filters on the conversation's unread state, so you can combine it with `label`, for example to get unread conversations in the archive. The `unread` label itself lives on individual messages; this filter uses the conversation's aggregate unread state."
                    },
                    {
                      "disabled": false,
                      "key": "participant",
                      "value": "billing@acme.com",
                      "description": "Conversations involving this address, matching the sender or any recipient. The match is case-insensitive and matches on any part of the address, so a fragment works as well as the whole address."
                    },
                    {
                      "disabled": false,
                      "key": "subject",
                      "value": "quarterly invoice",
                      "description": "Conversations whose subject contains this text (case-insensitive)."
                    },
                    {
                      "disabled": true,
                      "key": "after",
                      "value": "",
                      "description": "Filter to conversations whose most recent message is at or after this time. Use the response cursors for pagination."
                    },
                    {
                      "disabled": true,
                      "key": "before",
                      "value": "",
                      "description": "Filter to conversations whose most recent message is at or before this time. Use the response cursors for pagination."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"channel\": \"email\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"subject\": \"Re: Your order\",\n      \"last_direction\": \"inbound\",\n      \"labels\": [\n        \"inbox\",\n        \"urgent\"\n      ],\n      \"highlights\": {\n        \"subject\": [\n          \"Re: your **order** **4821**\"\n        ],\n        \"text\": [\n          \"confirming your **order** **4821** shipped\"\n        ]\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8b10b11c-09aa-879b-8a87-b2cc60dde426",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List threads",
                "description": {
                  "content": "Returns a paginated list of conversations across the workspace's mailboxes, most recently active first. `label` selects the view: the inbox (the default when omitted), `archive`, `spam`, `blocked`, or any custom label. You can also filter by mailbox, by linked contact, by participant address, or by a subject substring.\n\nThis listing filters; it does not search message content.\nConversations whose every message is trashed are excluded; restoring a message\nreturns the conversation to the list.\n\n`before` and `after` filter by time. To page through the results, pass the response cursors back as `starting_after` or `ending_before`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "mailbox_id",
                      "value": "",
                      "description": "Filter to conversations in a specific mailbox."
                    },
                    {
                      "disabled": true,
                      "key": "contact_id",
                      "value": "",
                      "description": "Filter to conversations linked to a specific contact."
                    },
                    {
                      "disabled": false,
                      "key": "label",
                      "value": "urgent",
                      "description": "Filter to conversations that have this label. Repeat the parameter to ask for more than one: only conversations that have every label you list are returned.\n\nA placement label picks a folder: `inbox`, `archive`, `spam`, or `blocked`. A custom label matches a conversation in any folder. Leave this out and you get the inbox."
                    },
                    {
                      "disabled": true,
                      "key": "has_unread",
                      "value": "",
                      "description": "When `true`, only conversations with unread messages are returned. This filters on the conversation's unread state, so you can combine it with `label`, for example to get unread conversations in the archive. The `unread` label itself lives on individual messages; this filter uses the conversation's aggregate unread state."
                    },
                    {
                      "disabled": false,
                      "key": "participant",
                      "value": "billing@acme.com",
                      "description": "Conversations involving this address, matching the sender or any recipient. The match is case-insensitive and matches on any part of the address, so a fragment works as well as the whole address."
                    },
                    {
                      "disabled": false,
                      "key": "subject",
                      "value": "quarterly invoice",
                      "description": "Conversations whose subject contains this text (case-insensitive)."
                    },
                    {
                      "disabled": true,
                      "key": "after",
                      "value": "",
                      "description": "Filter to conversations whose most recent message is at or after this time. Use the response cursors for pagination."
                    },
                    {
                      "disabled": true,
                      "key": "before",
                      "value": "",
                      "description": "Filter to conversations whose most recent message is at or before this time. Use the response cursors for pagination."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"channel\": \"email\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"subject\": \"Re: Your order\",\n      \"last_direction\": \"inbound\",\n      \"labels\": [\n        \"inbox\",\n        \"urgent\"\n      ],\n      \"highlights\": {\n        \"subject\": [\n          \"Re: your **order** **4821**\"\n        ],\n        \"text\": [\n          \"confirming your **order** **4821** shipped\"\n        ]\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b3b2a88f-e57e-8df7-89ad-f7e7814b1fd9",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List threads",
                "description": {
                  "content": "Returns a paginated list of conversations across the workspace's mailboxes, most recently active first. `label` selects the view: the inbox (the default when omitted), `archive`, `spam`, `blocked`, or any custom label. You can also filter by mailbox, by linked contact, by participant address, or by a subject substring.\n\nThis listing filters; it does not search message content.\nConversations whose every message is trashed are excluded; restoring a message\nreturns the conversation to the list.\n\n`before` and `after` filter by time. To page through the results, pass the response cursors back as `starting_after` or `ending_before`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "mailbox_id",
                      "value": "",
                      "description": "Filter to conversations in a specific mailbox."
                    },
                    {
                      "disabled": true,
                      "key": "contact_id",
                      "value": "",
                      "description": "Filter to conversations linked to a specific contact."
                    },
                    {
                      "disabled": false,
                      "key": "label",
                      "value": "urgent",
                      "description": "Filter to conversations that have this label. Repeat the parameter to ask for more than one: only conversations that have every label you list are returned.\n\nA placement label picks a folder: `inbox`, `archive`, `spam`, or `blocked`. A custom label matches a conversation in any folder. Leave this out and you get the inbox."
                    },
                    {
                      "disabled": true,
                      "key": "has_unread",
                      "value": "",
                      "description": "When `true`, only conversations with unread messages are returned. This filters on the conversation's unread state, so you can combine it with `label`, for example to get unread conversations in the archive. The `unread` label itself lives on individual messages; this filter uses the conversation's aggregate unread state."
                    },
                    {
                      "disabled": false,
                      "key": "participant",
                      "value": "billing@acme.com",
                      "description": "Conversations involving this address, matching the sender or any recipient. The match is case-insensitive and matches on any part of the address, so a fragment works as well as the whole address."
                    },
                    {
                      "disabled": false,
                      "key": "subject",
                      "value": "quarterly invoice",
                      "description": "Conversations whose subject contains this text (case-insensitive)."
                    },
                    {
                      "disabled": true,
                      "key": "after",
                      "value": "",
                      "description": "Filter to conversations whose most recent message is at or after this time. Use the response cursors for pagination."
                    },
                    {
                      "disabled": true,
                      "key": "before",
                      "value": "",
                      "description": "Filter to conversations whose most recent message is at or before this time. Use the response cursors for pagination."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"channel\": \"email\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"subject\": \"Re: Your order\",\n      \"last_direction\": \"inbound\",\n      \"labels\": [\n        \"inbox\",\n        \"urgent\"\n      ],\n      \"highlights\": {\n        \"subject\": [\n          \"Re: your **order** **4821**\"\n        ],\n        \"text\": [\n          \"confirming your **order** **4821** shipped\"\n        ]\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4408814a-4edf-891d-8869-04518029ceb5",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List threads",
                "description": {
                  "content": "Returns a paginated list of conversations across the workspace's mailboxes, most recently active first. `label` selects the view: the inbox (the default when omitted), `archive`, `spam`, `blocked`, or any custom label. You can also filter by mailbox, by linked contact, by participant address, or by a subject substring.\n\nThis listing filters; it does not search message content.\nConversations whose every message is trashed are excluded; restoring a message\nreturns the conversation to the list.\n\n`before` and `after` filter by time. To page through the results, pass the response cursors back as `starting_after` or `ending_before`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "mailbox_id",
                      "value": "",
                      "description": "Filter to conversations in a specific mailbox."
                    },
                    {
                      "disabled": true,
                      "key": "contact_id",
                      "value": "",
                      "description": "Filter to conversations linked to a specific contact."
                    },
                    {
                      "disabled": false,
                      "key": "label",
                      "value": "urgent",
                      "description": "Filter to conversations that have this label. Repeat the parameter to ask for more than one: only conversations that have every label you list are returned.\n\nA placement label picks a folder: `inbox`, `archive`, `spam`, or `blocked`. A custom label matches a conversation in any folder. Leave this out and you get the inbox."
                    },
                    {
                      "disabled": true,
                      "key": "has_unread",
                      "value": "",
                      "description": "When `true`, only conversations with unread messages are returned. This filters on the conversation's unread state, so you can combine it with `label`, for example to get unread conversations in the archive. The `unread` label itself lives on individual messages; this filter uses the conversation's aggregate unread state."
                    },
                    {
                      "disabled": false,
                      "key": "participant",
                      "value": "billing@acme.com",
                      "description": "Conversations involving this address, matching the sender or any recipient. The match is case-insensitive and matches on any part of the address, so a fragment works as well as the whole address."
                    },
                    {
                      "disabled": false,
                      "key": "subject",
                      "value": "quarterly invoice",
                      "description": "Conversations whose subject contains this text (case-insensitive)."
                    },
                    {
                      "disabled": true,
                      "key": "after",
                      "value": "",
                      "description": "Filter to conversations whose most recent message is at or after this time. Use the response cursors for pagination."
                    },
                    {
                      "disabled": true,
                      "key": "before",
                      "value": "",
                      "description": "Filter to conversations whose most recent message is at or before this time. Use the response cursors for pagination."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"channel\": \"email\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"subject\": \"Re: Your order\",\n      \"last_direction\": \"inbound\",\n      \"labels\": [\n        \"inbox\",\n        \"urgent\"\n      ],\n      \"highlights\": {\n        \"subject\": [\n          \"Re: your **order** **4821**\"\n        ],\n        \"text\": [\n          \"confirming your **order** **4821** shipped\"\n        ]\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "58c5a5e6-ad62-83c0-8407-f86130722921",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List threads",
                "description": {
                  "content": "Returns a paginated list of conversations across the workspace's mailboxes, most recently active first. `label` selects the view: the inbox (the default when omitted), `archive`, `spam`, `blocked`, or any custom label. You can also filter by mailbox, by linked contact, by participant address, or by a subject substring.\n\nThis listing filters; it does not search message content.\nConversations whose every message is trashed are excluded; restoring a message\nreturns the conversation to the list.\n\n`before` and `after` filter by time. To page through the results, pass the response cursors back as `starting_after` or `ending_before`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "mailbox_id",
                      "value": "",
                      "description": "Filter to conversations in a specific mailbox."
                    },
                    {
                      "disabled": true,
                      "key": "contact_id",
                      "value": "",
                      "description": "Filter to conversations linked to a specific contact."
                    },
                    {
                      "disabled": false,
                      "key": "label",
                      "value": "urgent",
                      "description": "Filter to conversations that have this label. Repeat the parameter to ask for more than one: only conversations that have every label you list are returned.\n\nA placement label picks a folder: `inbox`, `archive`, `spam`, or `blocked`. A custom label matches a conversation in any folder. Leave this out and you get the inbox."
                    },
                    {
                      "disabled": true,
                      "key": "has_unread",
                      "value": "",
                      "description": "When `true`, only conversations with unread messages are returned. This filters on the conversation's unread state, so you can combine it with `label`, for example to get unread conversations in the archive. The `unread` label itself lives on individual messages; this filter uses the conversation's aggregate unread state."
                    },
                    {
                      "disabled": false,
                      "key": "participant",
                      "value": "billing@acme.com",
                      "description": "Conversations involving this address, matching the sender or any recipient. The match is case-insensitive and matches on any part of the address, so a fragment works as well as the whole address."
                    },
                    {
                      "disabled": false,
                      "key": "subject",
                      "value": "quarterly invoice",
                      "description": "Conversations whose subject contains this text (case-insensitive)."
                    },
                    {
                      "disabled": true,
                      "key": "after",
                      "value": "",
                      "description": "Filter to conversations whose most recent message is at or after this time. Use the response cursors for pagination."
                    },
                    {
                      "disabled": true,
                      "key": "before",
                      "value": "",
                      "description": "Filter to conversations whose most recent message is at or before this time. Use the response cursors for pagination."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"channel\": \"email\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"subject\": \"Re: Your order\",\n      \"last_direction\": \"inbound\",\n      \"labels\": [\n        \"inbox\",\n        \"urgent\"\n      ],\n      \"highlights\": {\n        \"subject\": [\n          \"Re: your **order** **4821**\"\n        ],\n        \"text\": [\n          \"confirming your **order** **4821** shipped\"\n        ]\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "c4619b60-2366-80c5-8fcc-5e67a8dd8ca1",
          "name": "Get a thread",
          "request": {
            "name": "Get a thread",
            "description": {
              "content": "Returns a single conversation. Fetch the messages in the conversation with [List messages in a thread](https://bird.com/docs/api/reference/list-email-thread-messages). A thread whose retention tier has ended returns `410 Gone`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "threads",
                ":thread_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "thread_id",
                  "description": "(Required) Thread identifier. Starts with `thr_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "9a1c1007-939b-8519-8296-fd6948897fd7",
              "name": "Thread object.",
              "originalRequest": {
                "name": "Get a thread",
                "description": {
                  "content": "Returns a single conversation. Fetch the messages in the conversation with [List messages in a thread](https://bird.com/docs/api/reference/list-email-thread-messages). A thread whose retention tier has ended returns `410 Gone`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"channel\": \"email\",\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"last_direction\": \"inbound\",\n  \"labels\": [\n    \"inbox\",\n    \"urgent\"\n  ],\n  \"highlights\": {\n    \"subject\": [\n      \"Re: your **order** **4821**\"\n    ],\n    \"text\": [\n      \"confirming your **order** **4821** shipped\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d1e7ed70-015a-811a-8223-cba95278cdf0",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a thread",
                "description": {
                  "content": "Returns a single conversation. Fetch the messages in the conversation with [List messages in a thread](https://bird.com/docs/api/reference/list-email-thread-messages). A thread whose retention tier has ended returns `410 Gone`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"channel\": \"email\",\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"last_direction\": \"inbound\",\n  \"labels\": [\n    \"inbox\",\n    \"urgent\"\n  ],\n  \"highlights\": {\n    \"subject\": [\n      \"Re: your **order** **4821**\"\n    ],\n    \"text\": [\n      \"confirming your **order** **4821** shipped\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "970277b2-a331-88d0-8bd5-0c00e8d3bf2a",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a thread",
                "description": {
                  "content": "Returns a single conversation. Fetch the messages in the conversation with [List messages in a thread](https://bird.com/docs/api/reference/list-email-thread-messages). A thread whose retention tier has ended returns `410 Gone`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"channel\": \"email\",\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"last_direction\": \"inbound\",\n  \"labels\": [\n    \"inbox\",\n    \"urgent\"\n  ],\n  \"highlights\": {\n    \"subject\": [\n      \"Re: your **order** **4821**\"\n    ],\n    \"text\": [\n      \"confirming your **order** **4821** shipped\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e439a49a-54e4-8c22-8126-0b395a3dea00",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a thread",
                "description": {
                  "content": "Returns a single conversation. Fetch the messages in the conversation with [List messages in a thread](https://bird.com/docs/api/reference/list-email-thread-messages). A thread whose retention tier has ended returns `410 Gone`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"channel\": \"email\",\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"last_direction\": \"inbound\",\n  \"labels\": [\n    \"inbox\",\n    \"urgent\"\n  ],\n  \"highlights\": {\n    \"subject\": [\n      \"Re: your **order** **4821**\"\n    ],\n    \"text\": [\n      \"confirming your **order** **4821** shipped\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7caad009-2a0c-8222-89b1-7c0326254166",
              "name": "The resource existed but is no longer available.",
              "originalRequest": {
                "name": "Get a thread",
                "description": {
                  "content": "Returns a single conversation. Fetch the messages in the conversation with [List messages in a thread](https://bird.com/docs/api/reference/list-email-thread-messages). A thread whose retention tier has ended returns `410 Gone`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Gone",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"channel\": \"email\",\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"last_direction\": \"inbound\",\n  \"labels\": [\n    \"inbox\",\n    \"urgent\"\n  ],\n  \"highlights\": {\n    \"subject\": [\n      \"Re: your **order** **4821**\"\n    ],\n    \"text\": [\n      \"confirming your **order** **4821** shipped\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "31efc551-b836-8e01-8dce-93863939d0bd",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a thread",
                "description": {
                  "content": "Returns a single conversation. Fetch the messages in the conversation with [List messages in a thread](https://bird.com/docs/api/reference/list-email-thread-messages). A thread whose retention tier has ended returns `410 Gone`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"channel\": \"email\",\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"last_direction\": \"inbound\",\n  \"labels\": [\n    \"inbox\",\n    \"urgent\"\n  ],\n  \"highlights\": {\n    \"subject\": [\n      \"Re: your **order** **4821**\"\n    ],\n    \"text\": [\n      \"confirming your **order** **4821** shipped\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fc38e54f-7e79-844d-85db-daf0dd1fceba",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a thread",
                "description": {
                  "content": "Returns a single conversation. Fetch the messages in the conversation with [List messages in a thread](https://bird.com/docs/api/reference/list-email-thread-messages). A thread whose retention tier has ended returns `410 Gone`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"channel\": \"email\",\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"last_direction\": \"inbound\",\n  \"labels\": [\n    \"inbox\",\n    \"urgent\"\n  ],\n  \"highlights\": {\n    \"subject\": [\n      \"Re: your **order** **4821**\"\n    ],\n    \"text\": [\n      \"confirming your **order** **4821** shipped\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f0459174-09d3-8a28-8a82-a6bb7a5ee6f8",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a thread",
                "description": {
                  "content": "Returns a single conversation. Fetch the messages in the conversation with [List messages in a thread](https://bird.com/docs/api/reference/list-email-thread-messages). A thread whose retention tier has ended returns `410 Gone`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"channel\": \"email\",\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"last_direction\": \"inbound\",\n  \"labels\": [\n    \"inbox\",\n    \"urgent\"\n  ],\n  \"highlights\": {\n    \"subject\": [\n      \"Re: your **order** **4821**\"\n    ],\n    \"text\": [\n      \"confirming your **order** **4821** shipped\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "c36e3ee1-ccad-8aca-8d23-0e2ed0c1b151",
          "name": "Update a thread",
          "request": {
            "name": "Update a thread",
            "description": {
              "content": "Applies label changes to a conversation, and links or unlinks a contact. Adding `spam` files the conversation, and its received messages, as spam. Adding `archive` files it away without deleting it. Adding `inbox`, or removing `spam`, `blocked`, or `archive`, returns it to the inbox, and its unread count recomputes to match. An archived conversation returns to the inbox by itself when a new message arrives that isn't spam or blocked; a junk reply or an outbound send leaves it archived. To block a sender going forward, add a receive rule instead. Any field you leave out stays unchanged.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "threads",
                ":thread_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "thread_id",
                  "description": "(Required) Thread identifier. Starts with `thr_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "PATCH",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"labels\": {\n    \"add\": [\n      \"urgent\"\n    ],\n    \"remove\": [\n      \"pending\"\n    ]\n  },\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "27356b07-07cb-8e12-8fec-79052d7ae707",
              "name": "The updated thread.",
              "originalRequest": {
                "name": "Update a thread",
                "description": {
                  "content": "Applies label changes to a conversation, and links or unlinks a contact. Adding `spam` files the conversation, and its received messages, as spam. Adding `archive` files it away without deleting it. Adding `inbox`, or removing `spam`, `blocked`, or `archive`, returns it to the inbox, and its unread count recomputes to match. An archived conversation returns to the inbox by itself when a new message arrives that isn't spam or blocked; a junk reply or an outbound send leaves it archived. To block a sender going forward, add a receive rule instead. Any field you leave out stays unchanged.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"labels\": {\n    \"add\": [\n      \"urgent\"\n    ],\n    \"remove\": [\n      \"pending\"\n    ]\n  },\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"channel\": \"email\",\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"last_direction\": \"inbound\",\n  \"labels\": [\n    \"inbox\",\n    \"urgent\"\n  ],\n  \"highlights\": {\n    \"subject\": [\n      \"Re: your **order** **4821**\"\n    ],\n    \"text\": [\n      \"confirming your **order** **4821** shipped\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "32f6b8c7-434c-810b-883c-0f1d93e8163c",
              "name": "Bad request",
              "originalRequest": {
                "name": "Update a thread",
                "description": {
                  "content": "Applies label changes to a conversation, and links or unlinks a contact. Adding `spam` files the conversation, and its received messages, as spam. Adding `archive` files it away without deleting it. Adding `inbox`, or removing `spam`, `blocked`, or `archive`, returns it to the inbox, and its unread count recomputes to match. An archived conversation returns to the inbox by itself when a new message arrives that isn't spam or blocked; a junk reply or an outbound send leaves it archived. To block a sender going forward, add a receive rule instead. Any field you leave out stays unchanged.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"labels\": {\n    \"add\": [\n      \"urgent\"\n    ],\n    \"remove\": [\n      \"pending\"\n    ]\n  },\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"channel\": \"email\",\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"last_direction\": \"inbound\",\n  \"labels\": [\n    \"inbox\",\n    \"urgent\"\n  ],\n  \"highlights\": {\n    \"subject\": [\n      \"Re: your **order** **4821**\"\n    ],\n    \"text\": [\n      \"confirming your **order** **4821** shipped\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "45e7f5d0-daa6-834f-85e8-0b0e87b77bf7",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Update a thread",
                "description": {
                  "content": "Applies label changes to a conversation, and links or unlinks a contact. Adding `spam` files the conversation, and its received messages, as spam. Adding `archive` files it away without deleting it. Adding `inbox`, or removing `spam`, `blocked`, or `archive`, returns it to the inbox, and its unread count recomputes to match. An archived conversation returns to the inbox by itself when a new message arrives that isn't spam or blocked; a junk reply or an outbound send leaves it archived. To block a sender going forward, add a receive rule instead. Any field you leave out stays unchanged.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"labels\": {\n    \"add\": [\n      \"urgent\"\n    ],\n    \"remove\": [\n      \"pending\"\n    ]\n  },\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"channel\": \"email\",\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"last_direction\": \"inbound\",\n  \"labels\": [\n    \"inbox\",\n    \"urgent\"\n  ],\n  \"highlights\": {\n    \"subject\": [\n      \"Re: your **order** **4821**\"\n    ],\n    \"text\": [\n      \"confirming your **order** **4821** shipped\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9bf08032-a737-8ca8-8962-30cdb4d2d45c",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Update a thread",
                "description": {
                  "content": "Applies label changes to a conversation, and links or unlinks a contact. Adding `spam` files the conversation, and its received messages, as spam. Adding `archive` files it away without deleting it. Adding `inbox`, or removing `spam`, `blocked`, or `archive`, returns it to the inbox, and its unread count recomputes to match. An archived conversation returns to the inbox by itself when a new message arrives that isn't spam or blocked; a junk reply or an outbound send leaves it archived. To block a sender going forward, add a receive rule instead. Any field you leave out stays unchanged.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"labels\": {\n    \"add\": [\n      \"urgent\"\n    ],\n    \"remove\": [\n      \"pending\"\n    ]\n  },\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"channel\": \"email\",\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"last_direction\": \"inbound\",\n  \"labels\": [\n    \"inbox\",\n    \"urgent\"\n  ],\n  \"highlights\": {\n    \"subject\": [\n      \"Re: your **order** **4821**\"\n    ],\n    \"text\": [\n      \"confirming your **order** **4821** shipped\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f889e775-a454-8eb7-87fe-e8db529818a2",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Update a thread",
                "description": {
                  "content": "Applies label changes to a conversation, and links or unlinks a contact. Adding `spam` files the conversation, and its received messages, as spam. Adding `archive` files it away without deleting it. Adding `inbox`, or removing `spam`, `blocked`, or `archive`, returns it to the inbox, and its unread count recomputes to match. An archived conversation returns to the inbox by itself when a new message arrives that isn't spam or blocked; a junk reply or an outbound send leaves it archived. To block a sender going forward, add a receive rule instead. Any field you leave out stays unchanged.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"labels\": {\n    \"add\": [\n      \"urgent\"\n    ],\n    \"remove\": [\n      \"pending\"\n    ]\n  },\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"channel\": \"email\",\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"last_direction\": \"inbound\",\n  \"labels\": [\n    \"inbox\",\n    \"urgent\"\n  ],\n  \"highlights\": {\n    \"subject\": [\n      \"Re: your **order** **4821**\"\n    ],\n    \"text\": [\n      \"confirming your **order** **4821** shipped\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e2bd1bf4-c12b-8c23-8708-4833d63a3084",
              "name": "The resource existed but is no longer available.",
              "originalRequest": {
                "name": "Update a thread",
                "description": {
                  "content": "Applies label changes to a conversation, and links or unlinks a contact. Adding `spam` files the conversation, and its received messages, as spam. Adding `archive` files it away without deleting it. Adding `inbox`, or removing `spam`, `blocked`, or `archive`, returns it to the inbox, and its unread count recomputes to match. An archived conversation returns to the inbox by itself when a new message arrives that isn't spam or blocked; a junk reply or an outbound send leaves it archived. To block a sender going forward, add a receive rule instead. Any field you leave out stays unchanged.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"labels\": {\n    \"add\": [\n      \"urgent\"\n    ],\n    \"remove\": [\n      \"pending\"\n    ]\n  },\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Gone",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"channel\": \"email\",\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"last_direction\": \"inbound\",\n  \"labels\": [\n    \"inbox\",\n    \"urgent\"\n  ],\n  \"highlights\": {\n    \"subject\": [\n      \"Re: your **order** **4821**\"\n    ],\n    \"text\": [\n      \"confirming your **order** **4821** shipped\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b8fa37b6-7ef6-8ab9-86c2-41765de3c55b",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Update a thread",
                "description": {
                  "content": "Applies label changes to a conversation, and links or unlinks a contact. Adding `spam` files the conversation, and its received messages, as spam. Adding `archive` files it away without deleting it. Adding `inbox`, or removing `spam`, `blocked`, or `archive`, returns it to the inbox, and its unread count recomputes to match. An archived conversation returns to the inbox by itself when a new message arrives that isn't spam or blocked; a junk reply or an outbound send leaves it archived. To block a sender going forward, add a receive rule instead. Any field you leave out stays unchanged.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"labels\": {\n    \"add\": [\n      \"urgent\"\n    ],\n    \"remove\": [\n      \"pending\"\n    ]\n  },\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"channel\": \"email\",\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"last_direction\": \"inbound\",\n  \"labels\": [\n    \"inbox\",\n    \"urgent\"\n  ],\n  \"highlights\": {\n    \"subject\": [\n      \"Re: your **order** **4821**\"\n    ],\n    \"text\": [\n      \"confirming your **order** **4821** shipped\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "882f2cc1-71b4-8d12-80fc-d17fdf80b921",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Update a thread",
                "description": {
                  "content": "Applies label changes to a conversation, and links or unlinks a contact. Adding `spam` files the conversation, and its received messages, as spam. Adding `archive` files it away without deleting it. Adding `inbox`, or removing `spam`, `blocked`, or `archive`, returns it to the inbox, and its unread count recomputes to match. An archived conversation returns to the inbox by itself when a new message arrives that isn't spam or blocked; a junk reply or an outbound send leaves it archived. To block a sender going forward, add a receive rule instead. Any field you leave out stays unchanged.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"labels\": {\n    \"add\": [\n      \"urgent\"\n    ],\n    \"remove\": [\n      \"pending\"\n    ]\n  },\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"channel\": \"email\",\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"last_direction\": \"inbound\",\n  \"labels\": [\n    \"inbox\",\n    \"urgent\"\n  ],\n  \"highlights\": {\n    \"subject\": [\n      \"Re: your **order** **4821**\"\n    ],\n    \"text\": [\n      \"confirming your **order** **4821** shipped\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b7de1d14-8a0a-8933-8dc0-3880376433d8",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Update a thread",
                "description": {
                  "content": "Applies label changes to a conversation, and links or unlinks a contact. Adding `spam` files the conversation, and its received messages, as spam. Adding `archive` files it away without deleting it. Adding `inbox`, or removing `spam`, `blocked`, or `archive`, returns it to the inbox, and its unread count recomputes to match. An archived conversation returns to the inbox by itself when a new message arrives that isn't spam or blocked; a junk reply or an outbound send leaves it archived. To block a sender going forward, add a receive rule instead. Any field you leave out stays unchanged.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"labels\": {\n    \"add\": [\n      \"urgent\"\n    ],\n    \"remove\": [\n      \"pending\"\n    ]\n  },\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"mailbox_id\": \"mbx_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"channel\": \"email\",\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"last_direction\": \"inbound\",\n  \"labels\": [\n    \"inbox\",\n    \"urgent\"\n  ],\n  \"highlights\": {\n    \"subject\": [\n      \"Re: your **order** **4821**\"\n    ],\n    \"text\": [\n      \"confirming your **order** **4821** shipped\"\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "2c2c5ed8-dd76-8491-8e4d-a7a8a699c6c2",
          "name": "Delete a thread",
          "request": {
            "name": "Delete a thread",
            "description": {
              "content": "Moves the conversation and all of its messages to the trash. Trashed messages are permanently deleted after 30 days, or sooner if the mailbox's retention period ends first. Pass `permanent=true` to permanently delete the conversation and its messages immediately.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "threads",
                ":thread_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "permanent",
                  "value": "false",
                  "description": "Permanently delete the conversation and its messages immediately instead of moving them to the trash."
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "thread_id",
                  "description": "(Required) Thread identifier. Starts with `thr_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "DELETE"
          },
          "response": [
            {
              "id": "97e62be0-54c3-8968-85f4-74e8a6e24e0f",
              "name": "Thread deleted.",
              "originalRequest": {
                "name": "Delete a thread",
                "description": {
                  "content": "Moves the conversation and all of its messages to the trash. Trashed messages are permanently deleted after 30 days, or sooner if the mailbox's retention period ends first. Pass `permanent=true` to permanently delete the conversation and its messages immediately.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "permanent",
                      "value": "false",
                      "description": "Permanently delete the conversation and its messages immediately instead of moving them to the trash."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "3968011b-f6ee-81f7-8841-3ac54831548d",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Delete a thread",
                "description": {
                  "content": "Moves the conversation and all of its messages to the trash. Trashed messages are permanently deleted after 30 days, or sooner if the mailbox's retention period ends first. Pass `permanent=true` to permanently delete the conversation and its messages immediately.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "permanent",
                      "value": "false",
                      "description": "Permanently delete the conversation and its messages immediately instead of moving them to the trash."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a3e4a150-27e0-8ae7-8720-cb1656d5eb2b",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Delete a thread",
                "description": {
                  "content": "Moves the conversation and all of its messages to the trash. Trashed messages are permanently deleted after 30 days, or sooner if the mailbox's retention period ends first. Pass `permanent=true` to permanently delete the conversation and its messages immediately.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "permanent",
                      "value": "false",
                      "description": "Permanently delete the conversation and its messages immediately instead of moving them to the trash."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "09fd1811-a2cb-81d3-8842-b79bc3a5ab5e",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Delete a thread",
                "description": {
                  "content": "Moves the conversation and all of its messages to the trash. Trashed messages are permanently deleted after 30 days, or sooner if the mailbox's retention period ends first. Pass `permanent=true` to permanently delete the conversation and its messages immediately.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "permanent",
                      "value": "false",
                      "description": "Permanently delete the conversation and its messages immediately instead of moving them to the trash."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "193b075d-5559-88de-8563-58e281fdf67d",
              "name": "The resource existed but is no longer available.",
              "originalRequest": {
                "name": "Delete a thread",
                "description": {
                  "content": "Moves the conversation and all of its messages to the trash. Trashed messages are permanently deleted after 30 days, or sooner if the mailbox's retention period ends first. Pass `permanent=true` to permanently delete the conversation and its messages immediately.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "permanent",
                      "value": "false",
                      "description": "Permanently delete the conversation and its messages immediately instead of moving them to the trash."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Gone",
              "code": 410,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "268d0f25-8436-808e-82f9-ebae2bb623db",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Delete a thread",
                "description": {
                  "content": "Moves the conversation and all of its messages to the trash. Trashed messages are permanently deleted after 30 days, or sooner if the mailbox's retention period ends first. Pass `permanent=true` to permanently delete the conversation and its messages immediately.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "permanent",
                      "value": "false",
                      "description": "Permanently delete the conversation and its messages immediately instead of moving them to the trash."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d5f95232-5515-830d-8627-bf96bbcb2965",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Delete a thread",
                "description": {
                  "content": "Moves the conversation and all of its messages to the trash. Trashed messages are permanently deleted after 30 days, or sooner if the mailbox's retention period ends first. Pass `permanent=true` to permanently delete the conversation and its messages immediately.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "permanent",
                      "value": "false",
                      "description": "Permanently delete the conversation and its messages immediately instead of moving them to the trash."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "71496723-fe55-8d22-84b9-acd518866cdd",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Delete a thread",
                "description": {
                  "content": "Moves the conversation and all of its messages to the trash. Trashed messages are permanently deleted after 30 days, or sooner if the mailbox's retention period ends first. Pass `permanent=true` to permanently delete the conversation and its messages immediately.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "permanent",
                      "value": "false",
                      "description": "Permanently delete the conversation and its messages immediately instead of moving them to the trash."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "ec25116a-44e6-8345-884e-6e3793d93f5f",
          "name": "List messages in a thread",
          "request": {
            "name": "List messages in a thread",
            "description": {
              "content": "Returns the messages in a conversation, newest first, both received and sent. To page through older messages, use `starting_after`. The sort order is fixed, so to render the messages in conversation order, reverse the page yourself.\n\nBy default, every message that is not in the trash is returned, whichever folder the conversation is in. Pass `label` to narrow the view instead: use `trash` for trashed messages, or any custom label.\n\nPass `include=extracted_text` to inline each message's extracted plain text. A thread whose retention tier has ended returns `410 Gone`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "threads",
                ":thread_id",
                "messages"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "direction",
                  "value": "",
                  "description": "Filter to received (`inbound`) or sent (`outbound`) messages."
                },
                {
                  "disabled": false,
                  "key": "label",
                  "value": "unread",
                  "description": "Filter to messages that have this label. `trash` lists trashed messages. Any other label, whether that is `archive`, `spam`, `blocked`, `unread` or one of your own, lists the messages that have it and are not in the trash. When omitted, every message that is not trashed is returned, whichever folder the conversation is in.\n"
                },
                {
                  "disabled": true,
                  "key": "include",
                  "value": "",
                  "description": "Set to `extracted_text` to inline each message's extracted plain text."
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "thread_id",
                  "description": "(Required) Thread identifier. Starts with `thr_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "ae81ddaf-f40e-8641-84fd-078e172b9c3e",
              "name": "Paginated list of messages in the conversation.",
              "originalRequest": {
                "name": "List messages in a thread",
                "description": {
                  "content": "Returns the messages in a conversation, newest first, both received and sent. To page through older messages, use `starting_after`. The sort order is fixed, so to render the messages in conversation order, reverse the page yourself.\n\nBy default, every message that is not in the trash is returned, whichever folder the conversation is in. Pass `label` to narrow the view instead: use `trash` for trashed messages, or any custom label.\n\nPass `include=extracted_text` to inline each message's extracted plain text. A thread whose retention tier has ended returns `410 Gone`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter to received (`inbound`) or sent (`outbound`) messages."
                    },
                    {
                      "disabled": false,
                      "key": "label",
                      "value": "unread",
                      "description": "Filter to messages that have this label. `trash` lists trashed messages. Any other label, whether that is `archive`, `spam`, `blocked`, `unread` or one of your own, lists the messages that have it and are not in the trash. When omitted, every message that is not trashed is returned, whichever folder the conversation is in.\n"
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Set to `extracted_text` to inline each message's extracted plain text."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"inbound\",\n      \"channel\": \"email\",\n      \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"subject\": \"Re: Your order\",\n      \"labels\": [\n        \"inbox\",\n        \"unread\"\n      ],\n      \"recipients\": [\n        {\n          \"status\": \"delivered\"\n        }\n      ],\n      \"authentication\": \"pass\",\n      \"attachment_manifest\": [\n        {\n          \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\"\n        }\n      ],\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"source\": {\n        \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "85c7df91-72f4-88e5-87e3-72d531b0607f",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List messages in a thread",
                "description": {
                  "content": "Returns the messages in a conversation, newest first, both received and sent. To page through older messages, use `starting_after`. The sort order is fixed, so to render the messages in conversation order, reverse the page yourself.\n\nBy default, every message that is not in the trash is returned, whichever folder the conversation is in. Pass `label` to narrow the view instead: use `trash` for trashed messages, or any custom label.\n\nPass `include=extracted_text` to inline each message's extracted plain text. A thread whose retention tier has ended returns `410 Gone`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter to received (`inbound`) or sent (`outbound`) messages."
                    },
                    {
                      "disabled": false,
                      "key": "label",
                      "value": "unread",
                      "description": "Filter to messages that have this label. `trash` lists trashed messages. Any other label, whether that is `archive`, `spam`, `blocked`, `unread` or one of your own, lists the messages that have it and are not in the trash. When omitted, every message that is not trashed is returned, whichever folder the conversation is in.\n"
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Set to `extracted_text` to inline each message's extracted plain text."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"inbound\",\n      \"channel\": \"email\",\n      \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"subject\": \"Re: Your order\",\n      \"labels\": [\n        \"inbox\",\n        \"unread\"\n      ],\n      \"recipients\": [\n        {\n          \"status\": \"delivered\"\n        }\n      ],\n      \"authentication\": \"pass\",\n      \"attachment_manifest\": [\n        {\n          \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\"\n        }\n      ],\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"source\": {\n        \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "737a9b77-9144-81e1-8192-98c9a97d476a",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List messages in a thread",
                "description": {
                  "content": "Returns the messages in a conversation, newest first, both received and sent. To page through older messages, use `starting_after`. The sort order is fixed, so to render the messages in conversation order, reverse the page yourself.\n\nBy default, every message that is not in the trash is returned, whichever folder the conversation is in. Pass `label` to narrow the view instead: use `trash` for trashed messages, or any custom label.\n\nPass `include=extracted_text` to inline each message's extracted plain text. A thread whose retention tier has ended returns `410 Gone`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter to received (`inbound`) or sent (`outbound`) messages."
                    },
                    {
                      "disabled": false,
                      "key": "label",
                      "value": "unread",
                      "description": "Filter to messages that have this label. `trash` lists trashed messages. Any other label, whether that is `archive`, `spam`, `blocked`, `unread` or one of your own, lists the messages that have it and are not in the trash. When omitted, every message that is not trashed is returned, whichever folder the conversation is in.\n"
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Set to `extracted_text` to inline each message's extracted plain text."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"inbound\",\n      \"channel\": \"email\",\n      \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"subject\": \"Re: Your order\",\n      \"labels\": [\n        \"inbox\",\n        \"unread\"\n      ],\n      \"recipients\": [\n        {\n          \"status\": \"delivered\"\n        }\n      ],\n      \"authentication\": \"pass\",\n      \"attachment_manifest\": [\n        {\n          \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\"\n        }\n      ],\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"source\": {\n        \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ad765ee3-9d54-8014-8671-e0186ada41f0",
              "name": "Resource not found",
              "originalRequest": {
                "name": "List messages in a thread",
                "description": {
                  "content": "Returns the messages in a conversation, newest first, both received and sent. To page through older messages, use `starting_after`. The sort order is fixed, so to render the messages in conversation order, reverse the page yourself.\n\nBy default, every message that is not in the trash is returned, whichever folder the conversation is in. Pass `label` to narrow the view instead: use `trash` for trashed messages, or any custom label.\n\nPass `include=extracted_text` to inline each message's extracted plain text. A thread whose retention tier has ended returns `410 Gone`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter to received (`inbound`) or sent (`outbound`) messages."
                    },
                    {
                      "disabled": false,
                      "key": "label",
                      "value": "unread",
                      "description": "Filter to messages that have this label. `trash` lists trashed messages. Any other label, whether that is `archive`, `spam`, `blocked`, `unread` or one of your own, lists the messages that have it and are not in the trash. When omitted, every message that is not trashed is returned, whichever folder the conversation is in.\n"
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Set to `extracted_text` to inline each message's extracted plain text."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"inbound\",\n      \"channel\": \"email\",\n      \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"subject\": \"Re: Your order\",\n      \"labels\": [\n        \"inbox\",\n        \"unread\"\n      ],\n      \"recipients\": [\n        {\n          \"status\": \"delivered\"\n        }\n      ],\n      \"authentication\": \"pass\",\n      \"attachment_manifest\": [\n        {\n          \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\"\n        }\n      ],\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"source\": {\n        \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dd94a7d4-c55f-8309-886e-22d490ea246b",
              "name": "The resource existed but is no longer available.",
              "originalRequest": {
                "name": "List messages in a thread",
                "description": {
                  "content": "Returns the messages in a conversation, newest first, both received and sent. To page through older messages, use `starting_after`. The sort order is fixed, so to render the messages in conversation order, reverse the page yourself.\n\nBy default, every message that is not in the trash is returned, whichever folder the conversation is in. Pass `label` to narrow the view instead: use `trash` for trashed messages, or any custom label.\n\nPass `include=extracted_text` to inline each message's extracted plain text. A thread whose retention tier has ended returns `410 Gone`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter to received (`inbound`) or sent (`outbound`) messages."
                    },
                    {
                      "disabled": false,
                      "key": "label",
                      "value": "unread",
                      "description": "Filter to messages that have this label. `trash` lists trashed messages. Any other label, whether that is `archive`, `spam`, `blocked`, `unread` or one of your own, lists the messages that have it and are not in the trash. When omitted, every message that is not trashed is returned, whichever folder the conversation is in.\n"
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Set to `extracted_text` to inline each message's extracted plain text."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Gone",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"inbound\",\n      \"channel\": \"email\",\n      \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"subject\": \"Re: Your order\",\n      \"labels\": [\n        \"inbox\",\n        \"unread\"\n      ],\n      \"recipients\": [\n        {\n          \"status\": \"delivered\"\n        }\n      ],\n      \"authentication\": \"pass\",\n      \"attachment_manifest\": [\n        {\n          \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\"\n        }\n      ],\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"source\": {\n        \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6fa4892e-4d6b-82d0-81bc-041820e5148e",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List messages in a thread",
                "description": {
                  "content": "Returns the messages in a conversation, newest first, both received and sent. To page through older messages, use `starting_after`. The sort order is fixed, so to render the messages in conversation order, reverse the page yourself.\n\nBy default, every message that is not in the trash is returned, whichever folder the conversation is in. Pass `label` to narrow the view instead: use `trash` for trashed messages, or any custom label.\n\nPass `include=extracted_text` to inline each message's extracted plain text. A thread whose retention tier has ended returns `410 Gone`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter to received (`inbound`) or sent (`outbound`) messages."
                    },
                    {
                      "disabled": false,
                      "key": "label",
                      "value": "unread",
                      "description": "Filter to messages that have this label. `trash` lists trashed messages. Any other label, whether that is `archive`, `spam`, `blocked`, `unread` or one of your own, lists the messages that have it and are not in the trash. When omitted, every message that is not trashed is returned, whichever folder the conversation is in.\n"
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Set to `extracted_text` to inline each message's extracted plain text."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"inbound\",\n      \"channel\": \"email\",\n      \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"subject\": \"Re: Your order\",\n      \"labels\": [\n        \"inbox\",\n        \"unread\"\n      ],\n      \"recipients\": [\n        {\n          \"status\": \"delivered\"\n        }\n      ],\n      \"authentication\": \"pass\",\n      \"attachment_manifest\": [\n        {\n          \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\"\n        }\n      ],\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"source\": {\n        \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d63678a6-9733-8502-8452-9d3ff503a15a",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List messages in a thread",
                "description": {
                  "content": "Returns the messages in a conversation, newest first, both received and sent. To page through older messages, use `starting_after`. The sort order is fixed, so to render the messages in conversation order, reverse the page yourself.\n\nBy default, every message that is not in the trash is returned, whichever folder the conversation is in. Pass `label` to narrow the view instead: use `trash` for trashed messages, or any custom label.\n\nPass `include=extracted_text` to inline each message's extracted plain text. A thread whose retention tier has ended returns `410 Gone`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter to received (`inbound`) or sent (`outbound`) messages."
                    },
                    {
                      "disabled": false,
                      "key": "label",
                      "value": "unread",
                      "description": "Filter to messages that have this label. `trash` lists trashed messages. Any other label, whether that is `archive`, `spam`, `blocked`, `unread` or one of your own, lists the messages that have it and are not in the trash. When omitted, every message that is not trashed is returned, whichever folder the conversation is in.\n"
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Set to `extracted_text` to inline each message's extracted plain text."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"inbound\",\n      \"channel\": \"email\",\n      \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"subject\": \"Re: Your order\",\n      \"labels\": [\n        \"inbox\",\n        \"unread\"\n      ],\n      \"recipients\": [\n        {\n          \"status\": \"delivered\"\n        }\n      ],\n      \"authentication\": \"pass\",\n      \"attachment_manifest\": [\n        {\n          \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\"\n        }\n      ],\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"source\": {\n        \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "12a749cb-df6e-8185-89b6-2590c2f32871",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List messages in a thread",
                "description": {
                  "content": "Returns the messages in a conversation, newest first, both received and sent. To page through older messages, use `starting_after`. The sort order is fixed, so to render the messages in conversation order, reverse the page yourself.\n\nBy default, every message that is not in the trash is returned, whichever folder the conversation is in. Pass `label` to narrow the view instead: use `trash` for trashed messages, or any custom label.\n\nPass `include=extracted_text` to inline each message's extracted plain text. A thread whose retention tier has ended returns `410 Gone`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter to received (`inbound`) or sent (`outbound`) messages."
                    },
                    {
                      "disabled": false,
                      "key": "label",
                      "value": "unread",
                      "description": "Filter to messages that have this label. `trash` lists trashed messages. Any other label, whether that is `archive`, `spam`, `blocked`, `unread` or one of your own, lists the messages that have it and are not in the trash. When omitted, every message that is not trashed is returned, whichever folder the conversation is in.\n"
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Set to `extracted_text` to inline each message's extracted plain text."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"inbound\",\n      \"channel\": \"email\",\n      \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"subject\": \"Re: Your order\",\n      \"labels\": [\n        \"inbox\",\n        \"unread\"\n      ],\n      \"recipients\": [\n        {\n          \"status\": \"delivered\"\n        }\n      ],\n      \"authentication\": \"pass\",\n      \"attachment_manifest\": [\n        {\n          \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\"\n        }\n      ],\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"source\": {\n        \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "87f49418-fa16-86f2-879a-bd84deb7ce93",
          "name": "Get a message in a thread",
          "request": {
            "name": "Get a message in a thread",
            "description": {
              "content": "Returns a single message in a conversation, including its extracted plain text. Metadata and extracted text stay readable for the mailbox's retention tier. A message that has aged past its retention tier returns `410 Gone`. A message that exists but does not belong to this thread returns `404`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "threads",
                ":thread_id",
                "messages",
                ":message_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "thread_id",
                  "description": "(Required) Thread identifier. Starts with `thr_`."
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "message_id",
                  "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "94279f50-d29b-8d14-8b13-31bc5ead63f5",
              "name": "The message.",
              "originalRequest": {
                "name": "Get a message in a thread",
                "description": {
                  "content": "Returns a single message in a conversation, including its extracted plain text. Metadata and extracted text stay readable for the mailbox's retention tier. A message that has aged past its retention tier returns `410 Gone`. A message that exists but does not belong to this thread returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0c69a501-1ac6-86d3-8e35-f746eeb4e11d",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a message in a thread",
                "description": {
                  "content": "Returns a single message in a conversation, including its extracted plain text. Metadata and extracted text stay readable for the mailbox's retention tier. A message that has aged past its retention tier returns `410 Gone`. A message that exists but does not belong to this thread returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3cfb27e5-fc3e-8e72-8466-92832cf00fa8",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a message in a thread",
                "description": {
                  "content": "Returns a single message in a conversation, including its extracted plain text. Metadata and extracted text stay readable for the mailbox's retention tier. A message that has aged past its retention tier returns `410 Gone`. A message that exists but does not belong to this thread returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b1adb994-cd13-8a93-881d-3e4d9484ae11",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a message in a thread",
                "description": {
                  "content": "Returns a single message in a conversation, including its extracted plain text. Metadata and extracted text stay readable for the mailbox's retention tier. A message that has aged past its retention tier returns `410 Gone`. A message that exists but does not belong to this thread returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "06dc246e-9b73-831f-86df-f8e9dfdedb5b",
              "name": "The resource existed but is no longer available.",
              "originalRequest": {
                "name": "Get a message in a thread",
                "description": {
                  "content": "Returns a single message in a conversation, including its extracted plain text. Metadata and extracted text stay readable for the mailbox's retention tier. A message that has aged past its retention tier returns `410 Gone`. A message that exists but does not belong to this thread returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Gone",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0abadc5d-89ec-8563-852e-b963ecbf927f",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a message in a thread",
                "description": {
                  "content": "Returns a single message in a conversation, including its extracted plain text. Metadata and extracted text stay readable for the mailbox's retention tier. A message that has aged past its retention tier returns `410 Gone`. A message that exists but does not belong to this thread returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cc109fc2-d3ec-8683-8c42-4cccfb3bd539",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a message in a thread",
                "description": {
                  "content": "Returns a single message in a conversation, including its extracted plain text. Metadata and extracted text stay readable for the mailbox's retention tier. A message that has aged past its retention tier returns `410 Gone`. A message that exists but does not belong to this thread returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "75f9d76b-cf8c-8f5d-8590-edb703240271",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a message in a thread",
                "description": {
                  "content": "Returns a single message in a conversation, including its extracted plain text. Metadata and extracted text stay readable for the mailbox's retention tier. A message that has aged past its retention tier returns `410 Gone`. A message that exists but does not belong to this thread returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "612ffe33-0996-8bbb-8d2a-c62682fdb393",
          "name": "Update a message in a thread",
          "request": {
            "name": "Update a message in a thread",
            "description": {
              "content": "Applies read-state, label, and contact changes to a message in a conversation. Omitted fields are left unchanged. The read flag is only valid on received messages.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "threads",
                ":thread_id",
                "messages",
                ":message_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "thread_id",
                  "description": "(Required) Thread identifier. Starts with `thr_`."
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "message_id",
                  "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "PATCH",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"labels\": {\n    \"add\": [\n      \"urgent\"\n    ],\n    \"remove\": [\n      \"pending\"\n    ]\n  },\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "5dcae43d-28b5-82e6-87dc-6d7e595c8d2b",
              "name": "The updated message.",
              "originalRequest": {
                "name": "Update a message in a thread",
                "description": {
                  "content": "Applies read-state, label, and contact changes to a message in a conversation. Omitted fields are left unchanged. The read flag is only valid on received messages.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"labels\": {\n    \"add\": [\n      \"urgent\"\n    ],\n    \"remove\": [\n      \"pending\"\n    ]\n  },\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9eaddc4e-963c-8b87-85f4-e4494ab38f30",
              "name": "Bad request",
              "originalRequest": {
                "name": "Update a message in a thread",
                "description": {
                  "content": "Applies read-state, label, and contact changes to a message in a conversation. Omitted fields are left unchanged. The read flag is only valid on received messages.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"labels\": {\n    \"add\": [\n      \"urgent\"\n    ],\n    \"remove\": [\n      \"pending\"\n    ]\n  },\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7df61642-6657-8b7f-8baf-30d7e9665955",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Update a message in a thread",
                "description": {
                  "content": "Applies read-state, label, and contact changes to a message in a conversation. Omitted fields are left unchanged. The read flag is only valid on received messages.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"labels\": {\n    \"add\": [\n      \"urgent\"\n    ],\n    \"remove\": [\n      \"pending\"\n    ]\n  },\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ba484b81-1acf-88c5-8fca-bdd19072f015",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Update a message in a thread",
                "description": {
                  "content": "Applies read-state, label, and contact changes to a message in a conversation. Omitted fields are left unchanged. The read flag is only valid on received messages.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"labels\": {\n    \"add\": [\n      \"urgent\"\n    ],\n    \"remove\": [\n      \"pending\"\n    ]\n  },\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d38d26d3-0c2d-84e1-88c5-978039e2751b",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Update a message in a thread",
                "description": {
                  "content": "Applies read-state, label, and contact changes to a message in a conversation. Omitted fields are left unchanged. The read flag is only valid on received messages.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"labels\": {\n    \"add\": [\n      \"urgent\"\n    ],\n    \"remove\": [\n      \"pending\"\n    ]\n  },\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c253868c-899b-88e3-82b0-897889436b9a",
              "name": "The resource existed but is no longer available.",
              "originalRequest": {
                "name": "Update a message in a thread",
                "description": {
                  "content": "Applies read-state, label, and contact changes to a message in a conversation. Omitted fields are left unchanged. The read flag is only valid on received messages.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"labels\": {\n    \"add\": [\n      \"urgent\"\n    ],\n    \"remove\": [\n      \"pending\"\n    ]\n  },\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Gone",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "075b22a1-848d-8d3e-8803-dde7a95b10d2",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Update a message in a thread",
                "description": {
                  "content": "Applies read-state, label, and contact changes to a message in a conversation. Omitted fields are left unchanged. The read flag is only valid on received messages.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"labels\": {\n    \"add\": [\n      \"urgent\"\n    ],\n    \"remove\": [\n      \"pending\"\n    ]\n  },\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dacb9aba-db41-8387-8e97-000d99007188",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Update a message in a thread",
                "description": {
                  "content": "Applies read-state, label, and contact changes to a message in a conversation. Omitted fields are left unchanged. The read flag is only valid on received messages.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"labels\": {\n    \"add\": [\n      \"urgent\"\n    ],\n    \"remove\": [\n      \"pending\"\n    ]\n  },\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2f47acce-3b31-83f4-8550-836d6d256b73",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Update a message in a thread",
                "description": {
                  "content": "Applies read-state, label, and contact changes to a message in a conversation. Omitted fields are left unchanged. The read flag is only valid on received messages.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"labels\": {\n    \"add\": [\n      \"urgent\"\n    ],\n    \"remove\": [\n      \"pending\"\n    ]\n  },\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "df19532b-a125-8e5c-84d9-f535537eab83",
          "name": "Delete a message in a thread",
          "request": {
            "name": "Delete a message in a thread",
            "description": {
              "content": "Moves the message to the trash. Trashed messages are permanently deleted after 30 days, or sooner if the mailbox's retention period ends first. Pass `permanent=true` to permanently delete the message immediately. When the last message in a conversation is permanently deleted, the conversation is deleted with it.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "threads",
                ":thread_id",
                "messages",
                ":message_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "permanent",
                  "value": "false",
                  "description": "Permanently delete the message immediately instead of moving it to the trash."
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "thread_id",
                  "description": "(Required) Thread identifier. Starts with `thr_`."
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "message_id",
                  "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "DELETE"
          },
          "response": [
            {
              "id": "04497c3d-7820-84ab-8380-c43a4e20a532",
              "name": "Message deleted.",
              "originalRequest": {
                "name": "Delete a message in a thread",
                "description": {
                  "content": "Moves the message to the trash. Trashed messages are permanently deleted after 30 days, or sooner if the mailbox's retention period ends first. Pass `permanent=true` to permanently delete the message immediately. When the last message in a conversation is permanently deleted, the conversation is deleted with it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "permanent",
                      "value": "false",
                      "description": "Permanently delete the message immediately instead of moving it to the trash."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "9c00f5bf-0f19-83c0-8649-10c76c902c4c",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Delete a message in a thread",
                "description": {
                  "content": "Moves the message to the trash. Trashed messages are permanently deleted after 30 days, or sooner if the mailbox's retention period ends first. Pass `permanent=true` to permanently delete the message immediately. When the last message in a conversation is permanently deleted, the conversation is deleted with it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "permanent",
                      "value": "false",
                      "description": "Permanently delete the message immediately instead of moving it to the trash."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "287bb441-73c9-81e3-8d79-b958aa58379b",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Delete a message in a thread",
                "description": {
                  "content": "Moves the message to the trash. Trashed messages are permanently deleted after 30 days, or sooner if the mailbox's retention period ends first. Pass `permanent=true` to permanently delete the message immediately. When the last message in a conversation is permanently deleted, the conversation is deleted with it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "permanent",
                      "value": "false",
                      "description": "Permanently delete the message immediately instead of moving it to the trash."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "904a29ff-b2b4-82a2-83ed-884f57b0c699",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Delete a message in a thread",
                "description": {
                  "content": "Moves the message to the trash. Trashed messages are permanently deleted after 30 days, or sooner if the mailbox's retention period ends first. Pass `permanent=true` to permanently delete the message immediately. When the last message in a conversation is permanently deleted, the conversation is deleted with it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "permanent",
                      "value": "false",
                      "description": "Permanently delete the message immediately instead of moving it to the trash."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1fac3928-a305-834a-8b58-bef7e2e53222",
              "name": "The resource existed but is no longer available.",
              "originalRequest": {
                "name": "Delete a message in a thread",
                "description": {
                  "content": "Moves the message to the trash. Trashed messages are permanently deleted after 30 days, or sooner if the mailbox's retention period ends first. Pass `permanent=true` to permanently delete the message immediately. When the last message in a conversation is permanently deleted, the conversation is deleted with it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "permanent",
                      "value": "false",
                      "description": "Permanently delete the message immediately instead of moving it to the trash."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Gone",
              "code": 410,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f7431211-4d67-85d3-8ff3-85a819dc3f29",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Delete a message in a thread",
                "description": {
                  "content": "Moves the message to the trash. Trashed messages are permanently deleted after 30 days, or sooner if the mailbox's retention period ends first. Pass `permanent=true` to permanently delete the message immediately. When the last message in a conversation is permanently deleted, the conversation is deleted with it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "permanent",
                      "value": "false",
                      "description": "Permanently delete the message immediately instead of moving it to the trash."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "33cba94f-2114-847c-86b3-45ba57cbe107",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Delete a message in a thread",
                "description": {
                  "content": "Moves the message to the trash. Trashed messages are permanently deleted after 30 days, or sooner if the mailbox's retention period ends first. Pass `permanent=true` to permanently delete the message immediately. When the last message in a conversation is permanently deleted, the conversation is deleted with it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "permanent",
                      "value": "false",
                      "description": "Permanently delete the message immediately instead of moving it to the trash."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7a1b4b67-1955-8d2b-8cff-075aed7189a9",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Delete a message in a thread",
                "description": {
                  "content": "Moves the message to the trash. Trashed messages are permanently deleted after 30 days, or sooner if the mailbox's retention period ends first. Pass `permanent=true` to permanently delete the message immediately. When the last message in a conversation is permanently deleted, the conversation is deleted with it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "permanent",
                      "value": "false",
                      "description": "Permanently delete the message immediately instead of moving it to the trash."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "ddfc6027-2aed-8fa5-85f1-08fa9af18e8a",
          "name": "Get a thread message's original body",
          "request": {
            "name": "Get a thread message's original body",
            "description": {
              "content": "Returns the original rendered HTML and plain-text body of a message in a conversation. The original body is available for 30 days after the message occurred. Later requests return `410 Gone`, while the message's extracted text stays readable on the message itself.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "threads",
                ":thread_id",
                "messages",
                ":message_id",
                "body"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "thread_id",
                  "description": "(Required) Thread identifier. Starts with `thr_`."
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "message_id",
                  "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "1b8262ba-bbc7-8242-8fa0-8f78a18334b9",
              "name": "The original rendered body.",
              "originalRequest": {
                "name": "Get a thread message's original body",
                "description": {
                  "content": "Returns the original rendered HTML and plain-text body of a message in a conversation. The original body is available for 30 days after the message occurred. Later requests return `410 Gone`, while the message's extracted text stays readable on the message itself.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "body"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fc7c6246-42ba-89da-82cb-504b7d734521",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a thread message's original body",
                "description": {
                  "content": "Returns the original rendered HTML and plain-text body of a message in a conversation. The original body is available for 30 days after the message occurred. Later requests return `410 Gone`, while the message's extracted text stays readable on the message itself.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "body"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2d94870e-3fcf-82cc-89da-c134ebc28a2f",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a thread message's original body",
                "description": {
                  "content": "Returns the original rendered HTML and plain-text body of a message in a conversation. The original body is available for 30 days after the message occurred. Later requests return `410 Gone`, while the message's extracted text stays readable on the message itself.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "body"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "bfe8e04d-c079-8953-893f-3dd2eef9e414",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a thread message's original body",
                "description": {
                  "content": "Returns the original rendered HTML and plain-text body of a message in a conversation. The original body is available for 30 days after the message occurred. Later requests return `410 Gone`, while the message's extracted text stays readable on the message itself.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "body"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1c0ffde1-c2b7-8318-807d-ed21a21bf288",
              "name": "The resource existed but is no longer available.",
              "originalRequest": {
                "name": "Get a thread message's original body",
                "description": {
                  "content": "Returns the original rendered HTML and plain-text body of a message in a conversation. The original body is available for 30 days after the message occurred. Later requests return `410 Gone`, while the message's extracted text stays readable on the message itself.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "body"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Gone",
              "code": 410,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "765ba98b-d488-8246-8a58-9cd5aec26a00",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a thread message's original body",
                "description": {
                  "content": "Returns the original rendered HTML and plain-text body of a message in a conversation. The original body is available for 30 days after the message occurred. Later requests return `410 Gone`, while the message's extracted text stays readable on the message itself.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "body"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e069e2bb-9783-810a-8d49-bd100427bd11",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a thread message's original body",
                "description": {
                  "content": "Returns the original rendered HTML and plain-text body of a message in a conversation. The original body is available for 30 days after the message occurred. Later requests return `410 Gone`, while the message's extracted text stays readable on the message itself.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "body"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "643e787d-3c6d-8f27-83ff-bd56d18d025b",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a thread message's original body",
                "description": {
                  "content": "Returns the original rendered HTML and plain-text body of a message in a conversation. The original body is available for 30 days after the message occurred. Later requests return `410 Gone`, while the message's extracted text stays readable on the message itself.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "body"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "5398e4d2-d813-8f76-8056-e38219ad7583",
          "name": "Get a thread message's raw content",
          "request": {
            "name": "Get a thread message's raw content",
            "description": {
              "content": "Returns the original message exactly as received, in RFC 5322 (MIME) format. Available for received messages for 30 days after the message occurred. Later requests return `410 Gone`. Sent messages have no stored raw form and return `404`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "threads",
                ":thread_id",
                "messages",
                ":message_id",
                "raw"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "thread_id",
                  "description": "(Required) Thread identifier. Starts with `thr_`."
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "message_id",
                  "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "9f08c1e3-444c-8a15-882d-5265789a908f",
              "name": "The original message in RFC 5322 (MIME) format.",
              "originalRequest": {
                "name": "Get a thread message's raw content",
                "description": {
                  "content": "Returns the original message exactly as received, in RFC 5322 (MIME) format. Available for received messages for 30 days after the message occurred. Later requests return `410 Gone`. Sent messages have no stored raw form and return `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "raw"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "message/rfc822"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "77c5fb8b-791e-81e1-8507-707d383d66dc",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a thread message's raw content",
                "description": {
                  "content": "Returns the original message exactly as received, in RFC 5322 (MIME) format. Available for received messages for 30 days after the message occurred. Later requests return `410 Gone`. Sent messages have no stored raw form and return `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "raw"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2d6687db-0817-8ca7-8f67-4313a3163637",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a thread message's raw content",
                "description": {
                  "content": "Returns the original message exactly as received, in RFC 5322 (MIME) format. Available for received messages for 30 days after the message occurred. Later requests return `410 Gone`. Sent messages have no stored raw form and return `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "raw"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dab3f525-57cf-8c8b-8f69-f2694ba5f5c5",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a thread message's raw content",
                "description": {
                  "content": "Returns the original message exactly as received, in RFC 5322 (MIME) format. Available for received messages for 30 days after the message occurred. Later requests return `410 Gone`. Sent messages have no stored raw form and return `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "raw"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ec54ac5b-f61f-8541-85ed-a20edd44e953",
              "name": "The resource existed but is no longer available.",
              "originalRequest": {
                "name": "Get a thread message's raw content",
                "description": {
                  "content": "Returns the original message exactly as received, in RFC 5322 (MIME) format. Available for received messages for 30 days after the message occurred. Later requests return `410 Gone`. Sent messages have no stored raw form and return `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "raw"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Gone",
              "code": 410,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cd2d7373-6a8d-8a5b-8613-03e286e6bcb2",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a thread message's raw content",
                "description": {
                  "content": "Returns the original message exactly as received, in RFC 5322 (MIME) format. Available for received messages for 30 days after the message occurred. Later requests return `410 Gone`. Sent messages have no stored raw form and return `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "raw"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dbbb7c9e-20a0-821e-82d0-f62eceb9cd33",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a thread message's raw content",
                "description": {
                  "content": "Returns the original message exactly as received, in RFC 5322 (MIME) format. Available for received messages for 30 days after the message occurred. Later requests return `410 Gone`. Sent messages have no stored raw form and return `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "raw"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "179b27d9-ca88-8f0e-85a4-635f05dc76ce",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a thread message's raw content",
                "description": {
                  "content": "Returns the original message exactly as received, in RFC 5322 (MIME) format. Available for received messages for 30 days after the message occurred. Later requests return `410 Gone`. Sent messages have no stored raw form and return `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "raw"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "dcf58dfb-4e4e-8f80-875d-e9bbe94b84d7",
          "name": "List a thread message's attachments",
          "request": {
            "name": "List a thread message's attachments",
            "description": {
              "content": "Returns the attachments on a message in a conversation. Attachment bytes are downloadable for the mailbox's retention tier after the message occurred. Later requests return `410 Gone`, while the attachment metadata stays readable on the message's `attachment_manifest`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "threads",
                ":thread_id",
                "messages",
                ":message_id",
                "attachments"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "thread_id",
                  "description": "(Required) Thread identifier. Starts with `thr_`."
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "message_id",
                  "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "7d3a3c9f-a3b5-88ee-800d-942d76d28ae1",
              "name": "The message's attachments.",
              "originalRequest": {
                "name": "List a thread message's attachments",
                "description": {
                  "content": "Returns the attachments on a message in a conversation. Attachment bytes are downloadable for the mailbox's retention tier after the message occurred. Later requests return `410 Gone`, while the attachment metadata stays readable on the message's `attachment_manifest`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "attachments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5748c12f-05b1-84a1-85f5-867c59b4c851",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List a thread message's attachments",
                "description": {
                  "content": "Returns the attachments on a message in a conversation. Attachment bytes are downloadable for the mailbox's retention tier after the message occurred. Later requests return `410 Gone`, while the attachment metadata stays readable on the message's `attachment_manifest`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "attachments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3e94b9af-9073-8b6a-8654-f9a307b2460a",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List a thread message's attachments",
                "description": {
                  "content": "Returns the attachments on a message in a conversation. Attachment bytes are downloadable for the mailbox's retention tier after the message occurred. Later requests return `410 Gone`, while the attachment metadata stays readable on the message's `attachment_manifest`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "attachments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "96447937-e826-84de-8553-3d7146741b67",
              "name": "Resource not found",
              "originalRequest": {
                "name": "List a thread message's attachments",
                "description": {
                  "content": "Returns the attachments on a message in a conversation. Attachment bytes are downloadable for the mailbox's retention tier after the message occurred. Later requests return `410 Gone`, while the attachment metadata stays readable on the message's `attachment_manifest`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "attachments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "17a91773-25cb-8151-892e-b2a2c659b9cf",
              "name": "The resource existed but is no longer available.",
              "originalRequest": {
                "name": "List a thread message's attachments",
                "description": {
                  "content": "Returns the attachments on a message in a conversation. Attachment bytes are downloadable for the mailbox's retention tier after the message occurred. Later requests return `410 Gone`, while the attachment metadata stays readable on the message's `attachment_manifest`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "attachments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Gone",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "39b11d80-8423-80b5-8933-d5fd48f414ff",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List a thread message's attachments",
                "description": {
                  "content": "Returns the attachments on a message in a conversation. Attachment bytes are downloadable for the mailbox's retention tier after the message occurred. Later requests return `410 Gone`, while the attachment metadata stays readable on the message's `attachment_manifest`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "attachments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3429b515-9025-8b56-8bec-ad181440008b",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List a thread message's attachments",
                "description": {
                  "content": "Returns the attachments on a message in a conversation. Attachment bytes are downloadable for the mailbox's retention tier after the message occurred. Later requests return `410 Gone`, while the attachment metadata stays readable on the message's `attachment_manifest`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "attachments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "da1e46d8-6b5c-8fe1-8b7e-3ce8da959bfb",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List a thread message's attachments",
                "description": {
                  "content": "Returns the attachments on a message in a conversation. Attachment bytes are downloadable for the mailbox's retention tier after the message occurred. Later requests return `410 Gone`, while the attachment metadata stays readable on the message's `attachment_manifest`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "attachments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "58896649-579d-8717-8d19-9198d6d2941f",
          "name": "Get a thread message's attachment",
          "request": {
            "name": "Get a thread message's attachment",
            "description": {
              "content": "Returns the raw bytes of a single attachment on a conversation message. Works for both received messages (`rem_`) and sent messages (`em_`). Attachment bytes are downloadable for the mailbox's retention tier after the message occurred. Later requests return `410 Gone`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "threads",
                ":thread_id",
                "messages",
                ":message_id",
                "attachments",
                ":attachment_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "thread_id",
                  "description": "(Required) Thread identifier. Starts with `thr_`."
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "message_id",
                  "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "attachment_id",
                  "description": "(Required) Attachment identifier. Starts with `ea_` for sent mail or `rea_` for received mail."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "ce92496c-893f-8f36-8cc4-a1c14a284b95",
              "name": "The raw attachment bytes.",
              "originalRequest": {
                "name": "Get a thread message's attachment",
                "description": {
                  "content": "Returns the raw bytes of a single attachment on a conversation message. Works for both received messages (`rem_`) and sent messages (`em_`). Attachment bytes are downloadable for the mailbox's retention tier after the message occurred. Later requests return `410 Gone`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Attachment identifier. Starts with `ea_` for sent mail or `rea_` for received mail."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/octet-stream"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "573d147e-36d3-8ebd-8820-27b9636f0783",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a thread message's attachment",
                "description": {
                  "content": "Returns the raw bytes of a single attachment on a conversation message. Works for both received messages (`rem_`) and sent messages (`em_`). Attachment bytes are downloadable for the mailbox's retention tier after the message occurred. Later requests return `410 Gone`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Attachment identifier. Starts with `ea_` for sent mail or `rea_` for received mail."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "90bf7cad-2a2f-8451-892e-ee9f8fa1e67b",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a thread message's attachment",
                "description": {
                  "content": "Returns the raw bytes of a single attachment on a conversation message. Works for both received messages (`rem_`) and sent messages (`em_`). Attachment bytes are downloadable for the mailbox's retention tier after the message occurred. Later requests return `410 Gone`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Attachment identifier. Starts with `ea_` for sent mail or `rea_` for received mail."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8baab8b6-e67c-82df-8130-482f700c99b9",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a thread message's attachment",
                "description": {
                  "content": "Returns the raw bytes of a single attachment on a conversation message. Works for both received messages (`rem_`) and sent messages (`em_`). Attachment bytes are downloadable for the mailbox's retention tier after the message occurred. Later requests return `410 Gone`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Attachment identifier. Starts with `ea_` for sent mail or `rea_` for received mail."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dd9d356f-49be-8538-8ca7-83d368aeb520",
              "name": "The resource existed but is no longer available.",
              "originalRequest": {
                "name": "Get a thread message's attachment",
                "description": {
                  "content": "Returns the raw bytes of a single attachment on a conversation message. Works for both received messages (`rem_`) and sent messages (`em_`). Attachment bytes are downloadable for the mailbox's retention tier after the message occurred. Later requests return `410 Gone`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Attachment identifier. Starts with `ea_` for sent mail or `rea_` for received mail."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Gone",
              "code": 410,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b7c83824-6663-85dc-867f-99f2957dad01",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a thread message's attachment",
                "description": {
                  "content": "Returns the raw bytes of a single attachment on a conversation message. Works for both received messages (`rem_`) and sent messages (`em_`). Attachment bytes are downloadable for the mailbox's retention tier after the message occurred. Later requests return `410 Gone`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Attachment identifier. Starts with `ea_` for sent mail or `rea_` for received mail."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "880934fb-9281-8ed9-89d0-29f94d1d3d36",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a thread message's attachment",
                "description": {
                  "content": "Returns the raw bytes of a single attachment on a conversation message. Works for both received messages (`rem_`) and sent messages (`em_`). Attachment bytes are downloadable for the mailbox's retention tier after the message occurred. Later requests return `410 Gone`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Attachment identifier. Starts with `ea_` for sent mail or `rea_` for received mail."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f46184d6-a94c-82fb-8d01-a8192bb37892",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a thread message's attachment",
                "description": {
                  "content": "Returns the raw bytes of a single attachment on a conversation message. Works for both received messages (`rem_`) and sent messages (`em_`). Attachment bytes are downloadable for the mailbox's retention tier after the message occurred. Later requests return `410 Gone`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "attachments",
                    ":attachment_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "attachment_id",
                      "description": "(Required) Attachment identifier. Starts with `ea_` for sent mail or `rea_` for received mail."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "2f99d4d0-91c0-8669-890f-a12ddede1cfb",
          "name": "Reply to a thread message",
          "request": {
            "name": "Reply to a thread message",
            "description": {
              "content": "Sends a reply to a specific message in a conversation, from the mailbox's own address. Recipients are derived from the message being replied to: for a received message, its Reply-To address when present, otherwise its From address; for a message the mailbox sent, its original To recipients. Set `reply_all` to copy the original To and Cc recipients in as `Cc`, leaving out the mailbox's own address. The subject and the threading headers that keep the reply in this conversation are set automatically, and the reply is recorded in the conversation. To reply to a conversation as a whole, target its newest received message.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "threads",
                ":thread_id",
                "messages",
                ":message_id",
                "reply"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "thread_id",
                  "description": "(Required) Thread identifier. Starts with `thr_`."
                },
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "message_id",
                  "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"text\": \"Thanks, confirming we received your request.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "1f062e71-945d-8ae4-8d89-bc769ae9679a",
              "name": "Reply accepted for asynchronous delivery and recorded in the conversation.",
              "originalRequest": {
                "name": "Reply to a thread message",
                "description": {
                  "content": "Sends a reply to a specific message in a conversation, from the mailbox's own address. Recipients are derived from the message being replied to: for a received message, its Reply-To address when present, otherwise its From address; for a message the mailbox sent, its original To recipients. Set `reply_all` to copy the original To and Cc recipients in as `Cc`, leaving out the mailbox's own address. The subject and the threading headers that keep the reply in this conversation are set automatically, and the reply is recorded in the conversation. To reply to a conversation as a whole, target its newest received message.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "reply"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"text\": \"Thanks, confirming we received your request.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "250bd7ab-c1fb-835d-8b88-1016107270c6",
              "name": "Bad request",
              "originalRequest": {
                "name": "Reply to a thread message",
                "description": {
                  "content": "Sends a reply to a specific message in a conversation, from the mailbox's own address. Recipients are derived from the message being replied to: for a received message, its Reply-To address when present, otherwise its From address; for a message the mailbox sent, its original To recipients. Set `reply_all` to copy the original To and Cc recipients in as `Cc`, leaving out the mailbox's own address. The subject and the threading headers that keep the reply in this conversation are set automatically, and the reply is recorded in the conversation. To reply to a conversation as a whole, target its newest received message.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "reply"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"text\": \"Thanks, confirming we received your request.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7ba57002-9415-8e76-8204-4db87c0535cc",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Reply to a thread message",
                "description": {
                  "content": "Sends a reply to a specific message in a conversation, from the mailbox's own address. Recipients are derived from the message being replied to: for a received message, its Reply-To address when present, otherwise its From address; for a message the mailbox sent, its original To recipients. Set `reply_all` to copy the original To and Cc recipients in as `Cc`, leaving out the mailbox's own address. The subject and the threading headers that keep the reply in this conversation are set automatically, and the reply is recorded in the conversation. To reply to a conversation as a whole, target its newest received message.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "reply"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"text\": \"Thanks, confirming we received your request.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dd6f031a-9e6e-8c7b-8250-bcc8c64f2dc1",
              "name": "Insufficient balance",
              "originalRequest": {
                "name": "Reply to a thread message",
                "description": {
                  "content": "Sends a reply to a specific message in a conversation, from the mailbox's own address. Recipients are derived from the message being replied to: for a received message, its Reply-To address when present, otherwise its From address; for a message the mailbox sent, its original To recipients. Set `reply_all` to copy the original To and Cc recipients in as `Cc`, leaving out the mailbox's own address. The subject and the threading headers that keep the reply in this conversation are set automatically, and the reply is recorded in the conversation. To reply to a conversation as a whole, target its newest received message.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "reply"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"text\": \"Thanks, confirming we received your request.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Payment Required",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "93c0d1af-b43c-84ce-823c-f54d85d21d51",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Reply to a thread message",
                "description": {
                  "content": "Sends a reply to a specific message in a conversation, from the mailbox's own address. Recipients are derived from the message being replied to: for a received message, its Reply-To address when present, otherwise its From address; for a message the mailbox sent, its original To recipients. Set `reply_all` to copy the original To and Cc recipients in as `Cc`, leaving out the mailbox's own address. The subject and the threading headers that keep the reply in this conversation are set automatically, and the reply is recorded in the conversation. To reply to a conversation as a whole, target its newest received message.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "reply"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"text\": \"Thanks, confirming we received your request.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8df1169d-053f-802c-8bed-9bdca48e9cf5",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Reply to a thread message",
                "description": {
                  "content": "Sends a reply to a specific message in a conversation, from the mailbox's own address. Recipients are derived from the message being replied to: for a received message, its Reply-To address when present, otherwise its From address; for a message the mailbox sent, its original To recipients. Set `reply_all` to copy the original To and Cc recipients in as `Cc`, leaving out the mailbox's own address. The subject and the threading headers that keep the reply in this conversation are set automatically, and the reply is recorded in the conversation. To reply to a conversation as a whole, target its newest received message.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "reply"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"text\": \"Thanks, confirming we received your request.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6e1415c8-77d4-8c99-8655-27db2b2c2c93",
              "name": "Resource conflict",
              "originalRequest": {
                "name": "Reply to a thread message",
                "description": {
                  "content": "Sends a reply to a specific message in a conversation, from the mailbox's own address. Recipients are derived from the message being replied to: for a received message, its Reply-To address when present, otherwise its From address; for a message the mailbox sent, its original To recipients. Set `reply_all` to copy the original To and Cc recipients in as `Cc`, leaving out the mailbox's own address. The subject and the threading headers that keep the reply in this conversation are set automatically, and the reply is recorded in the conversation. To reply to a conversation as a whole, target its newest received message.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "reply"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"text\": \"Thanks, confirming we received your request.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "68b1c145-db0b-8de0-8681-bfb87707aa03",
              "name": "The resource existed but is no longer available.",
              "originalRequest": {
                "name": "Reply to a thread message",
                "description": {
                  "content": "Sends a reply to a specific message in a conversation, from the mailbox's own address. Recipients are derived from the message being replied to: for a received message, its Reply-To address when present, otherwise its From address; for a message the mailbox sent, its original To recipients. Set `reply_all` to copy the original To and Cc recipients in as `Cc`, leaving out the mailbox's own address. The subject and the threading headers that keep the reply in this conversation are set automatically, and the reply is recorded in the conversation. To reply to a conversation as a whole, target its newest received message.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "reply"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"text\": \"Thanks, confirming we received your request.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Gone",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "054b2445-2a79-8472-84d4-9f49c29db7c4",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Reply to a thread message",
                "description": {
                  "content": "Sends a reply to a specific message in a conversation, from the mailbox's own address. Recipients are derived from the message being replied to: for a received message, its Reply-To address when present, otherwise its From address; for a message the mailbox sent, its original To recipients. Set `reply_all` to copy the original To and Cc recipients in as `Cc`, leaving out the mailbox's own address. The subject and the threading headers that keep the reply in this conversation are set automatically, and the reply is recorded in the conversation. To reply to a conversation as a whole, target its newest received message.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "reply"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"text\": \"Thanks, confirming we received your request.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f422d639-85ba-8628-8f4f-d8d3a8d55b28",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Reply to a thread message",
                "description": {
                  "content": "Sends a reply to a specific message in a conversation, from the mailbox's own address. Recipients are derived from the message being replied to: for a received message, its Reply-To address when present, otherwise its From address; for a message the mailbox sent, its original To recipients. Set `reply_all` to copy the original To and Cc recipients in as `Cc`, leaving out the mailbox's own address. The subject and the threading headers that keep the reply in this conversation are set automatically, and the reply is recorded in the conversation. To reply to a conversation as a whole, target its newest received message.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "reply"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"text\": \"Thanks, confirming we received your request.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 202,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0c1de751-4e78-8886-896a-22ae089c7524",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Reply to a thread message",
                "description": {
                  "content": "Sends a reply to a specific message in a conversation, from the mailbox's own address. Recipients are derived from the message being replied to: for a received message, its Reply-To address when present, otherwise its From address; for a message the mailbox sent, its original To recipients. Set `reply_all` to copy the original To and Cc recipients in as `Cc`, leaving out the mailbox's own address. The subject and the threading headers that keep the reply in this conversation are set automatically, and the reply is recorded in the conversation. To reply to a conversation as a whole, target its newest received message.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "threads",
                    ":thread_id",
                    "messages",
                    ":message_id",
                    "reply"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "thread_id",
                      "description": "(Required) Thread identifier. Starts with `thr_`."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "message_id",
                      "description": "(Required) Message ID (`rem_` for a received message, `em_` for a sent one)."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"text\": \"Thanks, confirming we received your request.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "1261d8e5-4991-8233-8e34-cd2d51458d43",
          "name": "List a mailbox's messages",
          "request": {
            "name": "List a mailbox's messages",
            "description": {
              "content": "Returns the messages in a mailbox across all of its conversations,\nnewest first. By default only received messages in the inbox and all\nsent messages are returned. Pass `label` to see another view instead:\n\n- `archive`: Filed-away mail.\n- `spam` or `blocked`: Mail placed in either folder.\n- `trash`: Trashed messages.\n- `unread`: Messages you have not read yet, across all conversations.\n- Any custom label you have applied.\n\nFilter by direction or combined delivery status. Pass\n`include=extracted_text` to inline each message's extracted plain text.\n`before` and `after` filter by time. To page through results, pass the\nresponse cursors back as `starting_after` or `ending_before`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "mailboxes",
                ":mailbox_id",
                "messages"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "label",
                  "value": "unread",
                  "description": "Filter to messages that have this label. `trash` lists trashed messages. Any other label, whether that is `archive`, `spam`, `blocked`, `unread` or one of your own, lists the messages that have it and are not in the trash. When omitted, received messages in the inbox and all sent messages are returned.\n"
                },
                {
                  "disabled": true,
                  "key": "direction",
                  "value": "",
                  "description": "Filter to received (`inbound`) or sent (`outbound`) messages."
                },
                {
                  "disabled": true,
                  "key": "status",
                  "value": "",
                  "description": "Filter sent messages by combined delivery status: `accepted`, `sent`, `delivered`, or `failed`."
                },
                {
                  "disabled": true,
                  "key": "after",
                  "value": "",
                  "description": "Filter to messages that occurred at or after this time. Page through results with `starting_after` or `ending_before` instead of this value."
                },
                {
                  "disabled": true,
                  "key": "before",
                  "value": "",
                  "description": "Filter to messages that occurred at or before this time. Page through results with `starting_after` or `ending_before` instead of this value."
                },
                {
                  "disabled": true,
                  "key": "include",
                  "value": "",
                  "description": "Set to `extracted_text` to inline each message's extracted plain text."
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "mailbox_id",
                  "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "6a8548ee-4bfc-8eb1-8da6-292f8003491f",
              "name": "Paginated list of the mailbox's messages.",
              "originalRequest": {
                "name": "List a mailbox's messages",
                "description": {
                  "content": "Returns the messages in a mailbox across all of its conversations,\nnewest first. By default only received messages in the inbox and all\nsent messages are returned. Pass `label` to see another view instead:\n\n- `archive`: Filed-away mail.\n- `spam` or `blocked`: Mail placed in either folder.\n- `trash`: Trashed messages.\n- `unread`: Messages you have not read yet, across all conversations.\n- Any custom label you have applied.\n\nFilter by direction or combined delivery status. Pass\n`include=extracted_text` to inline each message's extracted plain text.\n`before` and `after` filter by time. To page through results, pass the\nresponse cursors back as `starting_after` or `ending_before`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "label",
                      "value": "unread",
                      "description": "Filter to messages that have this label. `trash` lists trashed messages. Any other label, whether that is `archive`, `spam`, `blocked`, `unread` or one of your own, lists the messages that have it and are not in the trash. When omitted, received messages in the inbox and all sent messages are returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter to received (`inbound`) or sent (`outbound`) messages."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter sent messages by combined delivery status: `accepted`, `sent`, `delivered`, or `failed`."
                    },
                    {
                      "disabled": true,
                      "key": "after",
                      "value": "",
                      "description": "Filter to messages that occurred at or after this time. Page through results with `starting_after` or `ending_before` instead of this value."
                    },
                    {
                      "disabled": true,
                      "key": "before",
                      "value": "",
                      "description": "Filter to messages that occurred at or before this time. Page through results with `starting_after` or `ending_before` instead of this value."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Set to `extracted_text` to inline each message's extracted plain text."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"inbound\",\n      \"channel\": \"email\",\n      \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"subject\": \"Re: Your order\",\n      \"labels\": [\n        \"inbox\",\n        \"unread\"\n      ],\n      \"recipients\": [\n        {\n          \"status\": \"delivered\"\n        }\n      ],\n      \"authentication\": \"pass\",\n      \"attachment_manifest\": [\n        {\n          \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\"\n        }\n      ],\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"source\": {\n        \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3b4a3555-621c-895e-8466-72c15bb8dace",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List a mailbox's messages",
                "description": {
                  "content": "Returns the messages in a mailbox across all of its conversations,\nnewest first. By default only received messages in the inbox and all\nsent messages are returned. Pass `label` to see another view instead:\n\n- `archive`: Filed-away mail.\n- `spam` or `blocked`: Mail placed in either folder.\n- `trash`: Trashed messages.\n- `unread`: Messages you have not read yet, across all conversations.\n- Any custom label you have applied.\n\nFilter by direction or combined delivery status. Pass\n`include=extracted_text` to inline each message's extracted plain text.\n`before` and `after` filter by time. To page through results, pass the\nresponse cursors back as `starting_after` or `ending_before`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "label",
                      "value": "unread",
                      "description": "Filter to messages that have this label. `trash` lists trashed messages. Any other label, whether that is `archive`, `spam`, `blocked`, `unread` or one of your own, lists the messages that have it and are not in the trash. When omitted, received messages in the inbox and all sent messages are returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter to received (`inbound`) or sent (`outbound`) messages."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter sent messages by combined delivery status: `accepted`, `sent`, `delivered`, or `failed`."
                    },
                    {
                      "disabled": true,
                      "key": "after",
                      "value": "",
                      "description": "Filter to messages that occurred at or after this time. Page through results with `starting_after` or `ending_before` instead of this value."
                    },
                    {
                      "disabled": true,
                      "key": "before",
                      "value": "",
                      "description": "Filter to messages that occurred at or before this time. Page through results with `starting_after` or `ending_before` instead of this value."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Set to `extracted_text` to inline each message's extracted plain text."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"inbound\",\n      \"channel\": \"email\",\n      \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"subject\": \"Re: Your order\",\n      \"labels\": [\n        \"inbox\",\n        \"unread\"\n      ],\n      \"recipients\": [\n        {\n          \"status\": \"delivered\"\n        }\n      ],\n      \"authentication\": \"pass\",\n      \"attachment_manifest\": [\n        {\n          \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\"\n        }\n      ],\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"source\": {\n        \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "29d9dfa6-6317-8ded-8c40-4a50d77758e2",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List a mailbox's messages",
                "description": {
                  "content": "Returns the messages in a mailbox across all of its conversations,\nnewest first. By default only received messages in the inbox and all\nsent messages are returned. Pass `label` to see another view instead:\n\n- `archive`: Filed-away mail.\n- `spam` or `blocked`: Mail placed in either folder.\n- `trash`: Trashed messages.\n- `unread`: Messages you have not read yet, across all conversations.\n- Any custom label you have applied.\n\nFilter by direction or combined delivery status. Pass\n`include=extracted_text` to inline each message's extracted plain text.\n`before` and `after` filter by time. To page through results, pass the\nresponse cursors back as `starting_after` or `ending_before`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "label",
                      "value": "unread",
                      "description": "Filter to messages that have this label. `trash` lists trashed messages. Any other label, whether that is `archive`, `spam`, `blocked`, `unread` or one of your own, lists the messages that have it and are not in the trash. When omitted, received messages in the inbox and all sent messages are returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter to received (`inbound`) or sent (`outbound`) messages."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter sent messages by combined delivery status: `accepted`, `sent`, `delivered`, or `failed`."
                    },
                    {
                      "disabled": true,
                      "key": "after",
                      "value": "",
                      "description": "Filter to messages that occurred at or after this time. Page through results with `starting_after` or `ending_before` instead of this value."
                    },
                    {
                      "disabled": true,
                      "key": "before",
                      "value": "",
                      "description": "Filter to messages that occurred at or before this time. Page through results with `starting_after` or `ending_before` instead of this value."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Set to `extracted_text` to inline each message's extracted plain text."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"inbound\",\n      \"channel\": \"email\",\n      \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"subject\": \"Re: Your order\",\n      \"labels\": [\n        \"inbox\",\n        \"unread\"\n      ],\n      \"recipients\": [\n        {\n          \"status\": \"delivered\"\n        }\n      ],\n      \"authentication\": \"pass\",\n      \"attachment_manifest\": [\n        {\n          \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\"\n        }\n      ],\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"source\": {\n        \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "29188f28-4021-8a4c-81d5-db3b382fecef",
              "name": "Resource not found",
              "originalRequest": {
                "name": "List a mailbox's messages",
                "description": {
                  "content": "Returns the messages in a mailbox across all of its conversations,\nnewest first. By default only received messages in the inbox and all\nsent messages are returned. Pass `label` to see another view instead:\n\n- `archive`: Filed-away mail.\n- `spam` or `blocked`: Mail placed in either folder.\n- `trash`: Trashed messages.\n- `unread`: Messages you have not read yet, across all conversations.\n- Any custom label you have applied.\n\nFilter by direction or combined delivery status. Pass\n`include=extracted_text` to inline each message's extracted plain text.\n`before` and `after` filter by time. To page through results, pass the\nresponse cursors back as `starting_after` or `ending_before`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "label",
                      "value": "unread",
                      "description": "Filter to messages that have this label. `trash` lists trashed messages. Any other label, whether that is `archive`, `spam`, `blocked`, `unread` or one of your own, lists the messages that have it and are not in the trash. When omitted, received messages in the inbox and all sent messages are returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter to received (`inbound`) or sent (`outbound`) messages."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter sent messages by combined delivery status: `accepted`, `sent`, `delivered`, or `failed`."
                    },
                    {
                      "disabled": true,
                      "key": "after",
                      "value": "",
                      "description": "Filter to messages that occurred at or after this time. Page through results with `starting_after` or `ending_before` instead of this value."
                    },
                    {
                      "disabled": true,
                      "key": "before",
                      "value": "",
                      "description": "Filter to messages that occurred at or before this time. Page through results with `starting_after` or `ending_before` instead of this value."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Set to `extracted_text` to inline each message's extracted plain text."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"inbound\",\n      \"channel\": \"email\",\n      \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"subject\": \"Re: Your order\",\n      \"labels\": [\n        \"inbox\",\n        \"unread\"\n      ],\n      \"recipients\": [\n        {\n          \"status\": \"delivered\"\n        }\n      ],\n      \"authentication\": \"pass\",\n      \"attachment_manifest\": [\n        {\n          \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\"\n        }\n      ],\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"source\": {\n        \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dfdb794a-00dc-8511-8e1f-7113cf224c0a",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List a mailbox's messages",
                "description": {
                  "content": "Returns the messages in a mailbox across all of its conversations,\nnewest first. By default only received messages in the inbox and all\nsent messages are returned. Pass `label` to see another view instead:\n\n- `archive`: Filed-away mail.\n- `spam` or `blocked`: Mail placed in either folder.\n- `trash`: Trashed messages.\n- `unread`: Messages you have not read yet, across all conversations.\n- Any custom label you have applied.\n\nFilter by direction or combined delivery status. Pass\n`include=extracted_text` to inline each message's extracted plain text.\n`before` and `after` filter by time. To page through results, pass the\nresponse cursors back as `starting_after` or `ending_before`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "label",
                      "value": "unread",
                      "description": "Filter to messages that have this label. `trash` lists trashed messages. Any other label, whether that is `archive`, `spam`, `blocked`, `unread` or one of your own, lists the messages that have it and are not in the trash. When omitted, received messages in the inbox and all sent messages are returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter to received (`inbound`) or sent (`outbound`) messages."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter sent messages by combined delivery status: `accepted`, `sent`, `delivered`, or `failed`."
                    },
                    {
                      "disabled": true,
                      "key": "after",
                      "value": "",
                      "description": "Filter to messages that occurred at or after this time. Page through results with `starting_after` or `ending_before` instead of this value."
                    },
                    {
                      "disabled": true,
                      "key": "before",
                      "value": "",
                      "description": "Filter to messages that occurred at or before this time. Page through results with `starting_after` or `ending_before` instead of this value."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Set to `extracted_text` to inline each message's extracted plain text."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"inbound\",\n      \"channel\": \"email\",\n      \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"subject\": \"Re: Your order\",\n      \"labels\": [\n        \"inbox\",\n        \"unread\"\n      ],\n      \"recipients\": [\n        {\n          \"status\": \"delivered\"\n        }\n      ],\n      \"authentication\": \"pass\",\n      \"attachment_manifest\": [\n        {\n          \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\"\n        }\n      ],\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"source\": {\n        \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "29ebe057-becb-8f13-8b5a-2615553261bc",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List a mailbox's messages",
                "description": {
                  "content": "Returns the messages in a mailbox across all of its conversations,\nnewest first. By default only received messages in the inbox and all\nsent messages are returned. Pass `label` to see another view instead:\n\n- `archive`: Filed-away mail.\n- `spam` or `blocked`: Mail placed in either folder.\n- `trash`: Trashed messages.\n- `unread`: Messages you have not read yet, across all conversations.\n- Any custom label you have applied.\n\nFilter by direction or combined delivery status. Pass\n`include=extracted_text` to inline each message's extracted plain text.\n`before` and `after` filter by time. To page through results, pass the\nresponse cursors back as `starting_after` or `ending_before`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "label",
                      "value": "unread",
                      "description": "Filter to messages that have this label. `trash` lists trashed messages. Any other label, whether that is `archive`, `spam`, `blocked`, `unread` or one of your own, lists the messages that have it and are not in the trash. When omitted, received messages in the inbox and all sent messages are returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter to received (`inbound`) or sent (`outbound`) messages."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter sent messages by combined delivery status: `accepted`, `sent`, `delivered`, or `failed`."
                    },
                    {
                      "disabled": true,
                      "key": "after",
                      "value": "",
                      "description": "Filter to messages that occurred at or after this time. Page through results with `starting_after` or `ending_before` instead of this value."
                    },
                    {
                      "disabled": true,
                      "key": "before",
                      "value": "",
                      "description": "Filter to messages that occurred at or before this time. Page through results with `starting_after` or `ending_before` instead of this value."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Set to `extracted_text` to inline each message's extracted plain text."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"inbound\",\n      \"channel\": \"email\",\n      \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"subject\": \"Re: Your order\",\n      \"labels\": [\n        \"inbox\",\n        \"unread\"\n      ],\n      \"recipients\": [\n        {\n          \"status\": \"delivered\"\n        }\n      ],\n      \"authentication\": \"pass\",\n      \"attachment_manifest\": [\n        {\n          \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\"\n        }\n      ],\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"source\": {\n        \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ea857b7a-5c97-8019-81c9-5505aad5269f",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List a mailbox's messages",
                "description": {
                  "content": "Returns the messages in a mailbox across all of its conversations,\nnewest first. By default only received messages in the inbox and all\nsent messages are returned. Pass `label` to see another view instead:\n\n- `archive`: Filed-away mail.\n- `spam` or `blocked`: Mail placed in either folder.\n- `trash`: Trashed messages.\n- `unread`: Messages you have not read yet, across all conversations.\n- Any custom label you have applied.\n\nFilter by direction or combined delivery status. Pass\n`include=extracted_text` to inline each message's extracted plain text.\n`before` and `after` filter by time. To page through results, pass the\nresponse cursors back as `starting_after` or `ending_before`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "label",
                      "value": "unread",
                      "description": "Filter to messages that have this label. `trash` lists trashed messages. Any other label, whether that is `archive`, `spam`, `blocked`, `unread` or one of your own, lists the messages that have it and are not in the trash. When omitted, received messages in the inbox and all sent messages are returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Filter to received (`inbound`) or sent (`outbound`) messages."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Filter sent messages by combined delivery status: `accepted`, `sent`, `delivered`, or `failed`."
                    },
                    {
                      "disabled": true,
                      "key": "after",
                      "value": "",
                      "description": "Filter to messages that occurred at or after this time. Page through results with `starting_after` or `ending_before` instead of this value."
                    },
                    {
                      "disabled": true,
                      "key": "before",
                      "value": "",
                      "description": "Filter to messages that occurred at or before this time. Page through results with `starting_after` or `ending_before` instead of this value."
                    },
                    {
                      "disabled": true,
                      "key": "include",
                      "value": "",
                      "description": "Set to `extracted_text` to inline each message's extracted plain text."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"inbound\",\n      \"channel\": \"email\",\n      \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"subject\": \"Re: Your order\",\n      \"labels\": [\n        \"inbox\",\n        \"unread\"\n      ],\n      \"recipients\": [\n        {\n          \"status\": \"delivered\"\n        }\n      ],\n      \"authentication\": \"pass\",\n      \"attachment_manifest\": [\n        {\n          \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n          \"filename\": \"invoice.pdf\",\n          \"content_type\": \"application/pdf\"\n        }\n      ],\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"source\": {\n        \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "8b7f54b6-afce-878a-8611-6126f584e1cd",
          "name": "Create a message from a mailbox",
          "request": {
            "name": "Create a message from a mailbox",
            "description": {
              "content": "Sends a new message from the mailbox's own address and starts a new conversation with it. The request mirrors the plain send request minus `from`, because the mailbox is who the message comes from. We set the RFC 5322 Message-ID, so later replies from the recipients thread back into the conversation automatically. The send is added to the mailbox's remembered messages and returned as the conversation's first message. A mailbox always sends immediately; scheduled sends are unavailable. A suspended mailbox cannot send and returns `403`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "mailboxes",
                ":mailbox_id",
                "messages"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "mailbox_id",
                  "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"to\": [\n    \"delivered@messagebird.dev\"\n  ],\n  \"subject\": \"Your quote\",\n  \"text\": \"Hi, here is the quote you asked for.\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "e4313ae5-4fd8-83d0-89ee-c1c970d8b86d",
              "name": "Message accepted for asynchronous delivery and recorded as the first message of a new conversation.",
              "originalRequest": {
                "name": "Create a message from a mailbox",
                "description": {
                  "content": "Sends a new message from the mailbox's own address and starts a new conversation with it. The request mirrors the plain send request minus `from`, because the mailbox is who the message comes from. We set the RFC 5322 Message-ID, so later replies from the recipients thread back into the conversation automatically. The send is added to the mailbox's remembered messages and returned as the conversation's first message. A mailbox always sends immediately; scheduled sends are unavailable. A suspended mailbox cannot send and returns `403`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": [\n    \"delivered@messagebird.dev\"\n  ],\n  \"subject\": \"Your quote\",\n  \"text\": \"Hi, here is the quote you asked for.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6ee3939b-7c10-8302-837e-80ffa56e8680",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create a message from a mailbox",
                "description": {
                  "content": "Sends a new message from the mailbox's own address and starts a new conversation with it. The request mirrors the plain send request minus `from`, because the mailbox is who the message comes from. We set the RFC 5322 Message-ID, so later replies from the recipients thread back into the conversation automatically. The send is added to the mailbox's remembered messages and returned as the conversation's first message. A mailbox always sends immediately; scheduled sends are unavailable. A suspended mailbox cannot send and returns `403`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": [\n    \"delivered@messagebird.dev\"\n  ],\n  \"subject\": \"Your quote\",\n  \"text\": \"Hi, here is the quote you asked for.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4c996bd2-a2bd-825d-8b4f-668b900d3f39",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create a message from a mailbox",
                "description": {
                  "content": "Sends a new message from the mailbox's own address and starts a new conversation with it. The request mirrors the plain send request minus `from`, because the mailbox is who the message comes from. We set the RFC 5322 Message-ID, so later replies from the recipients thread back into the conversation automatically. The send is added to the mailbox's remembered messages and returned as the conversation's first message. A mailbox always sends immediately; scheduled sends are unavailable. A suspended mailbox cannot send and returns `403`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": [\n    \"delivered@messagebird.dev\"\n  ],\n  \"subject\": \"Your quote\",\n  \"text\": \"Hi, here is the quote you asked for.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "35602046-399e-873d-8f91-547fe92a2d3f",
              "name": "Insufficient balance",
              "originalRequest": {
                "name": "Create a message from a mailbox",
                "description": {
                  "content": "Sends a new message from the mailbox's own address and starts a new conversation with it. The request mirrors the plain send request minus `from`, because the mailbox is who the message comes from. We set the RFC 5322 Message-ID, so later replies from the recipients thread back into the conversation automatically. The send is added to the mailbox's remembered messages and returned as the conversation's first message. A mailbox always sends immediately; scheduled sends are unavailable. A suspended mailbox cannot send and returns `403`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": [\n    \"delivered@messagebird.dev\"\n  ],\n  \"subject\": \"Your quote\",\n  \"text\": \"Hi, here is the quote you asked for.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Payment Required",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "726fb579-70f1-808e-806c-a5b2b1211e80",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create a message from a mailbox",
                "description": {
                  "content": "Sends a new message from the mailbox's own address and starts a new conversation with it. The request mirrors the plain send request minus `from`, because the mailbox is who the message comes from. We set the RFC 5322 Message-ID, so later replies from the recipients thread back into the conversation automatically. The send is added to the mailbox's remembered messages and returned as the conversation's first message. A mailbox always sends immediately; scheduled sends are unavailable. A suspended mailbox cannot send and returns `403`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": [\n    \"delivered@messagebird.dev\"\n  ],\n  \"subject\": \"Your quote\",\n  \"text\": \"Hi, here is the quote you asked for.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "44207823-2e0a-8edb-848c-e22637fc703e",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Create a message from a mailbox",
                "description": {
                  "content": "Sends a new message from the mailbox's own address and starts a new conversation with it. The request mirrors the plain send request minus `from`, because the mailbox is who the message comes from. We set the RFC 5322 Message-ID, so later replies from the recipients thread back into the conversation automatically. The send is added to the mailbox's remembered messages and returned as the conversation's first message. A mailbox always sends immediately; scheduled sends are unavailable. A suspended mailbox cannot send and returns `403`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": [\n    \"delivered@messagebird.dev\"\n  ],\n  \"subject\": \"Your quote\",\n  \"text\": \"Hi, here is the quote you asked for.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d868a0bd-e7a8-8823-8cfd-a7de8f5c0518",
              "name": "Resource conflict",
              "originalRequest": {
                "name": "Create a message from a mailbox",
                "description": {
                  "content": "Sends a new message from the mailbox's own address and starts a new conversation with it. The request mirrors the plain send request minus `from`, because the mailbox is who the message comes from. We set the RFC 5322 Message-ID, so later replies from the recipients thread back into the conversation automatically. The send is added to the mailbox's remembered messages and returned as the conversation's first message. A mailbox always sends immediately; scheduled sends are unavailable. A suspended mailbox cannot send and returns `403`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": [\n    \"delivered@messagebird.dev\"\n  ],\n  \"subject\": \"Your quote\",\n  \"text\": \"Hi, here is the quote you asked for.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2f340964-be99-8e92-8f27-dd01f92a1f7a",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create a message from a mailbox",
                "description": {
                  "content": "Sends a new message from the mailbox's own address and starts a new conversation with it. The request mirrors the plain send request minus `from`, because the mailbox is who the message comes from. We set the RFC 5322 Message-ID, so later replies from the recipients thread back into the conversation automatically. The send is added to the mailbox's remembered messages and returned as the conversation's first message. A mailbox always sends immediately; scheduled sends are unavailable. A suspended mailbox cannot send and returns `403`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": [\n    \"delivered@messagebird.dev\"\n  ],\n  \"subject\": \"Your quote\",\n  \"text\": \"Hi, here is the quote you asked for.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1b46892b-dd0f-88d9-8431-9a95ebd46eac",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create a message from a mailbox",
                "description": {
                  "content": "Sends a new message from the mailbox's own address and starts a new conversation with it. The request mirrors the plain send request minus `from`, because the mailbox is who the message comes from. We set the RFC 5322 Message-ID, so later replies from the recipients thread back into the conversation automatically. The send is added to the mailbox's remembered messages and returned as the conversation's first message. A mailbox always sends immediately; scheduled sends are unavailable. A suspended mailbox cannot send and returns `403`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": [\n    \"delivered@messagebird.dev\"\n  ],\n  \"subject\": \"Your quote\",\n  \"text\": \"Hi, here is the quote you asked for.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 202,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "97b77ee4-5223-81bd-8717-3aaafd2dd8b3",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create a message from a mailbox",
                "description": {
                  "content": "Sends a new message from the mailbox's own address and starts a new conversation with it. The request mirrors the plain send request minus `from`, because the mailbox is who the message comes from. We set the RFC 5322 Message-ID, so later replies from the recipients thread back into the conversation automatically. The send is added to the mailbox's remembered messages and returned as the conversation's first message. A mailbox always sends immediately; scheduled sends are unavailable. A suspended mailbox cannot send and returns `403`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"to\": [\n    \"delivered@messagebird.dev\"\n  ],\n  \"subject\": \"Your quote\",\n  \"text\": \"Hi, here is the quote you asked for.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"rem_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"inbound\",\n  \"channel\": \"email\",\n  \"thread_id\": \"thr_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"subject\": \"Re: Your order\",\n  \"labels\": [\n    \"inbox\",\n    \"unread\"\n  ],\n  \"recipients\": [\n    {\n      \"status\": \"delivered\"\n    }\n  ],\n  \"authentication\": \"pass\",\n  \"attachment_manifest\": [\n    {\n      \"id\": \"rea_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"filename\": \"invoice.pdf\",\n      \"content_type\": \"application/pdf\"\n    }\n  ],\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"source\": {\n    \"resource\": \"/v1/email/inbound-messages/rem_01krdgeqcxet5s7t44vh8rt9mg\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "e4e77f34-6c31-8b55-8e87-2e3f0b98c838",
          "name": "List a mailbox's labels",
          "request": {
            "name": "List a mailbox's labels",
            "description": {
              "content": "Returns the labels available in a mailbox. First, the built-in system\nlabels:\n\n- The placements `inbox`, `archive`, `spam`, `blocked`, and `sent`.\n- `trash`.\n- `unread`.\n\nThen, every custom label currently in use on its conversations and\nmessages. Apply and remove labels through the conversation and message\nupdate endpoints. These actions also create and remove custom labels. A\ncustom label exists while at least one message or conversation uses it.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "mailboxes",
                ":mailbox_id",
                "labels"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "mailbox_id",
                  "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "80cf155b-d32c-86bb-89a4-992a847d36f2",
              "name": "The mailbox's labels.",
              "originalRequest": {
                "name": "List a mailbox's labels",
                "description": {
                  "content": "Returns the labels available in a mailbox. First, the built-in system\nlabels:\n\n- The placements `inbox`, `archive`, `spam`, `blocked`, and `sent`.\n- `trash`.\n- `unread`.\n\nThen, every custom label currently in use on its conversations and\nmessages. Apply and remove labels through the conversation and message\nupdate endpoints. These actions also create and remove custom labels. A\ncustom label exists while at least one message or conversation uses it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "labels"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"name\": \"inbox\",\n      \"type\": \"system\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "616e3472-bb45-82b2-86c1-2e7f96f63e76",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List a mailbox's labels",
                "description": {
                  "content": "Returns the labels available in a mailbox. First, the built-in system\nlabels:\n\n- The placements `inbox`, `archive`, `spam`, `blocked`, and `sent`.\n- `trash`.\n- `unread`.\n\nThen, every custom label currently in use on its conversations and\nmessages. Apply and remove labels through the conversation and message\nupdate endpoints. These actions also create and remove custom labels. A\ncustom label exists while at least one message or conversation uses it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "labels"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"name\": \"inbox\",\n      \"type\": \"system\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f6810545-8306-83d4-8f76-19191001f3db",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List a mailbox's labels",
                "description": {
                  "content": "Returns the labels available in a mailbox. First, the built-in system\nlabels:\n\n- The placements `inbox`, `archive`, `spam`, `blocked`, and `sent`.\n- `trash`.\n- `unread`.\n\nThen, every custom label currently in use on its conversations and\nmessages. Apply and remove labels through the conversation and message\nupdate endpoints. These actions also create and remove custom labels. A\ncustom label exists while at least one message or conversation uses it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "labels"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"name\": \"inbox\",\n      \"type\": \"system\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "af8bbc9b-8ed1-8c53-87cc-6cbaf69a303b",
              "name": "Resource not found",
              "originalRequest": {
                "name": "List a mailbox's labels",
                "description": {
                  "content": "Returns the labels available in a mailbox. First, the built-in system\nlabels:\n\n- The placements `inbox`, `archive`, `spam`, `blocked`, and `sent`.\n- `trash`.\n- `unread`.\n\nThen, every custom label currently in use on its conversations and\nmessages. Apply and remove labels through the conversation and message\nupdate endpoints. These actions also create and remove custom labels. A\ncustom label exists while at least one message or conversation uses it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "labels"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"name\": \"inbox\",\n      \"type\": \"system\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9c1d3803-c308-81c8-8789-3500501cf414",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List a mailbox's labels",
                "description": {
                  "content": "Returns the labels available in a mailbox. First, the built-in system\nlabels:\n\n- The placements `inbox`, `archive`, `spam`, `blocked`, and `sent`.\n- `trash`.\n- `unread`.\n\nThen, every custom label currently in use on its conversations and\nmessages. Apply and remove labels through the conversation and message\nupdate endpoints. These actions also create and remove custom labels. A\ncustom label exists while at least one message or conversation uses it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "labels"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"name\": \"inbox\",\n      \"type\": \"system\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3c8fc3ad-f482-8ab2-89e8-6de8ac5d9010",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List a mailbox's labels",
                "description": {
                  "content": "Returns the labels available in a mailbox. First, the built-in system\nlabels:\n\n- The placements `inbox`, `archive`, `spam`, `blocked`, and `sent`.\n- `trash`.\n- `unread`.\n\nThen, every custom label currently in use on its conversations and\nmessages. Apply and remove labels through the conversation and message\nupdate endpoints. These actions also create and remove custom labels. A\ncustom label exists while at least one message or conversation uses it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "labels"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"name\": \"inbox\",\n      \"type\": \"system\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6755dbc3-bf6b-860c-8fea-d8d1072f5e5d",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List a mailbox's labels",
                "description": {
                  "content": "Returns the labels available in a mailbox. First, the built-in system\nlabels:\n\n- The placements `inbox`, `archive`, `spam`, `blocked`, and `sent`.\n- `trash`.\n- `unread`.\n\nThen, every custom label currently in use on its conversations and\nmessages. Apply and remove labels through the conversation and message\nupdate endpoints. These actions also create and remove custom labels. A\ncustom label exists while at least one message or conversation uses it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "mailboxes",
                    ":mailbox_id",
                    "labels"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "mailbox_id",
                      "description": "(Required) Mailbox identifier. Starts with `mbx_`."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"name\": \"inbox\",\n      \"type\": \"system\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "a07a5694-c720-8776-8f6e-38b8db09c6b0",
      "name": "email-smtp-configs",
      "description": {
        "content": "Default IP pool, category, tags, and open and click tracking settings for messages submitted over SMTP with a given API key.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "e82e47d8-6973-8b20-8b7a-18dcf41f34e1",
          "name": "List SMTP configs",
          "request": {
            "name": "List SMTP configs",
            "description": {
              "content": "Returns the SMTP send-option configs stored for API keys in this workspace, as a cursor page. Only keys with an explicitly stored config are included. A key with no config still accepts SMTP submissions, using your organization's default pool, the transactional category, and tracking on.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "smtp",
                "configs"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "sort",
                  "value": "created_at",
                  "description": "Sort by `created_at`, the default and only supported field."
                },
                {
                  "disabled": false,
                  "key": "order",
                  "value": "desc",
                  "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                },
                {
                  "disabled": false,
                  "key": "include_total",
                  "value": "false",
                  "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "48ba482b-8d9a-884b-8451-3f5b7e741c95",
              "name": "Paginated list of SMTP configs.",
              "originalRequest": {
                "name": "List SMTP configs",
                "description": {
                  "content": "Returns the SMTP send-option configs stored for API keys in this workspace, as a cursor page. Only keys with an explicitly stored config are included. A key with no config still accepts SMTP submissions, using your organization's default pool, the transactional category, and tracking on.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "smtp",
                    "configs"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "created_at",
                      "description": "Sort by `created_at`, the default and only supported field."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"api_key_id\": \"key_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"category\": \"marketing\",\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "486276a2-ed8c-8e11-8908-558ace66a271",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List SMTP configs",
                "description": {
                  "content": "Returns the SMTP send-option configs stored for API keys in this workspace, as a cursor page. Only keys with an explicitly stored config are included. A key with no config still accepts SMTP submissions, using your organization's default pool, the transactional category, and tracking on.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "smtp",
                    "configs"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "created_at",
                      "description": "Sort by `created_at`, the default and only supported field."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"api_key_id\": \"key_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"category\": \"marketing\",\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8f5c4c39-06a8-881f-80f5-0de59d2df368",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List SMTP configs",
                "description": {
                  "content": "Returns the SMTP send-option configs stored for API keys in this workspace, as a cursor page. Only keys with an explicitly stored config are included. A key with no config still accepts SMTP submissions, using your organization's default pool, the transactional category, and tracking on.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "smtp",
                    "configs"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "created_at",
                      "description": "Sort by `created_at`, the default and only supported field."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"api_key_id\": \"key_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"category\": \"marketing\",\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "060404c2-5a28-8753-84fe-b0aff4313a16",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List SMTP configs",
                "description": {
                  "content": "Returns the SMTP send-option configs stored for API keys in this workspace, as a cursor page. Only keys with an explicitly stored config are included. A key with no config still accepts SMTP submissions, using your organization's default pool, the transactional category, and tracking on.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "smtp",
                    "configs"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "created_at",
                      "description": "Sort by `created_at`, the default and only supported field."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"api_key_id\": \"key_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"category\": \"marketing\",\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d6563733-b673-8864-81f0-251f2ad8022a",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List SMTP configs",
                "description": {
                  "content": "Returns the SMTP send-option configs stored for API keys in this workspace, as a cursor page. Only keys with an explicitly stored config are included. A key with no config still accepts SMTP submissions, using your organization's default pool, the transactional category, and tracking on.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "smtp",
                    "configs"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "created_at",
                      "description": "Sort by `created_at`, the default and only supported field."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"api_key_id\": \"key_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"category\": \"marketing\",\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ebc4e4ea-2e24-81f5-8873-2ef7f6303b86",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List SMTP configs",
                "description": {
                  "content": "Returns the SMTP send-option configs stored for API keys in this workspace, as a cursor page. Only keys with an explicitly stored config are included. A key with no config still accepts SMTP submissions, using your organization's default pool, the transactional category, and tracking on.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "smtp",
                    "configs"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "sort",
                      "value": "created_at",
                      "description": "Sort by `created_at`, the default and only supported field."
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"api_key_id\": \"key_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"category\": \"marketing\",\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "aa3f63c2-1712-848a-842e-082eb7293582",
          "name": "Get an SMTP config",
          "request": {
            "name": "Get an SMTP config",
            "description": {
              "content": "Returns the SMTP send-option config stored for the given API key. Returns a `404` if you have not set a config for that key. The key still accepts SMTP submissions, using your organization's default pool, the transactional category, and tracking on.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "smtp",
                "configs",
                ":api_key_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "key_01krdgeqcxet5s7t44vh8rt9mg",
                  "key": "api_key_id",
                  "description": "(Required) ID of the API key the config applies to, the same key your SMTP client authenticates with.\n"
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "fb486a96-bb71-8509-8b26-55b3c4bf2493",
              "name": "SMTP config object.",
              "originalRequest": {
                "name": "Get an SMTP config",
                "description": {
                  "content": "Returns the SMTP send-option config stored for the given API key. Returns a `404` if you have not set a config for that key. The key still accepts SMTP submissions, using your organization's default pool, the transactional category, and tracking on.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "smtp",
                    "configs",
                    ":api_key_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "key_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "api_key_id",
                      "description": "(Required) ID of the API key the config applies to, the same key your SMTP client authenticates with.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"api_key_id\": \"key_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"category\": \"marketing\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "264ae736-1e12-8f81-897e-c880af1340fb",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get an SMTP config",
                "description": {
                  "content": "Returns the SMTP send-option config stored for the given API key. Returns a `404` if you have not set a config for that key. The key still accepts SMTP submissions, using your organization's default pool, the transactional category, and tracking on.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "smtp",
                    "configs",
                    ":api_key_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "key_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "api_key_id",
                      "description": "(Required) ID of the API key the config applies to, the same key your SMTP client authenticates with.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"api_key_id\": \"key_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"category\": \"marketing\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1ed6b85c-b649-8031-8a64-fbbf219170df",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get an SMTP config",
                "description": {
                  "content": "Returns the SMTP send-option config stored for the given API key. Returns a `404` if you have not set a config for that key. The key still accepts SMTP submissions, using your organization's default pool, the transactional category, and tracking on.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "smtp",
                    "configs",
                    ":api_key_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "key_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "api_key_id",
                      "description": "(Required) ID of the API key the config applies to, the same key your SMTP client authenticates with.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"api_key_id\": \"key_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"category\": \"marketing\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d63f9714-2452-8578-86d0-06d775c64ed8",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get an SMTP config",
                "description": {
                  "content": "Returns the SMTP send-option config stored for the given API key. Returns a `404` if you have not set a config for that key. The key still accepts SMTP submissions, using your organization's default pool, the transactional category, and tracking on.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "smtp",
                    "configs",
                    ":api_key_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "key_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "api_key_id",
                      "description": "(Required) ID of the API key the config applies to, the same key your SMTP client authenticates with.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"api_key_id\": \"key_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"category\": \"marketing\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7f35f5a6-b4ac-89ee-8817-614ef1891774",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get an SMTP config",
                "description": {
                  "content": "Returns the SMTP send-option config stored for the given API key. Returns a `404` if you have not set a config for that key. The key still accepts SMTP submissions, using your organization's default pool, the transactional category, and tracking on.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "smtp",
                    "configs",
                    ":api_key_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "key_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "api_key_id",
                      "description": "(Required) ID of the API key the config applies to, the same key your SMTP client authenticates with.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"api_key_id\": \"key_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"category\": \"marketing\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5f09743e-b0e4-8672-8ac0-49a855d5e141",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get an SMTP config",
                "description": {
                  "content": "Returns the SMTP send-option config stored for the given API key. Returns a `404` if you have not set a config for that key. The key still accepts SMTP submissions, using your organization's default pool, the transactional category, and tracking on.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "smtp",
                    "configs",
                    ":api_key_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "key_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "api_key_id",
                      "description": "(Required) ID of the API key the config applies to, the same key your SMTP client authenticates with.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"api_key_id\": \"key_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"category\": \"marketing\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4f6a05f9-7c93-82f5-8fcd-a6f7ef310492",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get an SMTP config",
                "description": {
                  "content": "Returns the SMTP send-option config stored for the given API key. Returns a `404` if you have not set a config for that key. The key still accepts SMTP submissions, using your organization's default pool, the transactional category, and tracking on.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "smtp",
                    "configs",
                    ":api_key_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "key_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "api_key_id",
                      "description": "(Required) ID of the API key the config applies to, the same key your SMTP client authenticates with.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"api_key_id\": \"key_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"category\": \"marketing\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "db60aa04-87d8-8c29-8315-cf044aac81da",
          "name": "Update the SMTP config for an API key",
          "request": {
            "name": "Update the SMTP config for an API key",
            "description": {
              "content": "Sets the default send options applied to messages submitted over SMTP with this API key:\n\n- Which IP pool to send from.\n- The content category.\n- Tags.\n- Open and click tracking.\n\nSMTP submissions have no fields for these, so Bird stores them per key instead.\n\nA field you omit is left unchanged. If no config exists yet for this key, it is created first with the documented defaults (your organization's default pool, transactional category, no tags, tracking on), and omitted fields take those defaults. A key that does not belong to this workspace returns `404`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "email",
                "smtp",
                "configs",
                ":api_key_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "key_01krdgeqcxet5s7t44vh8rt9mg",
                  "key": "api_key_id",
                  "description": "(Required) ID of the API key the config applies to, the same key your SMTP client authenticates with.\n"
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "PATCH",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"category\": \"marketing\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "27b95a70-f90a-8e82-8503-5a78a20b86ee",
              "name": "The stored SMTP config.",
              "originalRequest": {
                "name": "Update the SMTP config for an API key",
                "description": {
                  "content": "Sets the default send options applied to messages submitted over SMTP with this API key:\n\n- Which IP pool to send from.\n- The content category.\n- Tags.\n- Open and click tracking.\n\nSMTP submissions have no fields for these, so Bird stores them per key instead.\n\nA field you omit is left unchanged. If no config exists yet for this key, it is created first with the documented defaults (your organization's default pool, transactional category, no tags, tracking on), and omitted fields take those defaults. A key that does not belong to this workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "smtp",
                    "configs",
                    ":api_key_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "key_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "api_key_id",
                      "description": "(Required) ID of the API key the config applies to, the same key your SMTP client authenticates with.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"category\": \"marketing\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"api_key_id\": \"key_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"category\": \"marketing\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "68674c88-5111-8e80-8f63-7734d9cd3ff3",
              "name": "Bad request",
              "originalRequest": {
                "name": "Update the SMTP config for an API key",
                "description": {
                  "content": "Sets the default send options applied to messages submitted over SMTP with this API key:\n\n- Which IP pool to send from.\n- The content category.\n- Tags.\n- Open and click tracking.\n\nSMTP submissions have no fields for these, so Bird stores them per key instead.\n\nA field you omit is left unchanged. If no config exists yet for this key, it is created first with the documented defaults (your organization's default pool, transactional category, no tags, tracking on), and omitted fields take those defaults. A key that does not belong to this workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "smtp",
                    "configs",
                    ":api_key_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "key_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "api_key_id",
                      "description": "(Required) ID of the API key the config applies to, the same key your SMTP client authenticates with.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"category\": \"marketing\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"api_key_id\": \"key_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"category\": \"marketing\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "880f39c8-3f60-8963-879b-0c1f9bf78dca",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Update the SMTP config for an API key",
                "description": {
                  "content": "Sets the default send options applied to messages submitted over SMTP with this API key:\n\n- Which IP pool to send from.\n- The content category.\n- Tags.\n- Open and click tracking.\n\nSMTP submissions have no fields for these, so Bird stores them per key instead.\n\nA field you omit is left unchanged. If no config exists yet for this key, it is created first with the documented defaults (your organization's default pool, transactional category, no tags, tracking on), and omitted fields take those defaults. A key that does not belong to this workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "smtp",
                    "configs",
                    ":api_key_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "key_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "api_key_id",
                      "description": "(Required) ID of the API key the config applies to, the same key your SMTP client authenticates with.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"category\": \"marketing\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"api_key_id\": \"key_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"category\": \"marketing\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "735dca92-439b-8689-8f8c-ec325f5356c9",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Update the SMTP config for an API key",
                "description": {
                  "content": "Sets the default send options applied to messages submitted over SMTP with this API key:\n\n- Which IP pool to send from.\n- The content category.\n- Tags.\n- Open and click tracking.\n\nSMTP submissions have no fields for these, so Bird stores them per key instead.\n\nA field you omit is left unchanged. If no config exists yet for this key, it is created first with the documented defaults (your organization's default pool, transactional category, no tags, tracking on), and omitted fields take those defaults. A key that does not belong to this workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "smtp",
                    "configs",
                    ":api_key_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "key_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "api_key_id",
                      "description": "(Required) ID of the API key the config applies to, the same key your SMTP client authenticates with.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"category\": \"marketing\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"api_key_id\": \"key_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"category\": \"marketing\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1b1570e9-84c3-8496-864a-6b1ecdf363d8",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Update the SMTP config for an API key",
                "description": {
                  "content": "Sets the default send options applied to messages submitted over SMTP with this API key:\n\n- Which IP pool to send from.\n- The content category.\n- Tags.\n- Open and click tracking.\n\nSMTP submissions have no fields for these, so Bird stores them per key instead.\n\nA field you omit is left unchanged. If no config exists yet for this key, it is created first with the documented defaults (your organization's default pool, transactional category, no tags, tracking on), and omitted fields take those defaults. A key that does not belong to this workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "smtp",
                    "configs",
                    ":api_key_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "key_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "api_key_id",
                      "description": "(Required) ID of the API key the config applies to, the same key your SMTP client authenticates with.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"category\": \"marketing\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"api_key_id\": \"key_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"category\": \"marketing\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "71549b97-10a3-83bf-8b94-93c4dea922f6",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Update the SMTP config for an API key",
                "description": {
                  "content": "Sets the default send options applied to messages submitted over SMTP with this API key:\n\n- Which IP pool to send from.\n- The content category.\n- Tags.\n- Open and click tracking.\n\nSMTP submissions have no fields for these, so Bird stores them per key instead.\n\nA field you omit is left unchanged. If no config exists yet for this key, it is created first with the documented defaults (your organization's default pool, transactional category, no tags, tracking on), and omitted fields take those defaults. A key that does not belong to this workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "smtp",
                    "configs",
                    ":api_key_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "key_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "api_key_id",
                      "description": "(Required) ID of the API key the config applies to, the same key your SMTP client authenticates with.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"category\": \"marketing\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"api_key_id\": \"key_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"category\": \"marketing\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1bf3744f-33f9-848c-8520-827a9d938049",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Update the SMTP config for an API key",
                "description": {
                  "content": "Sets the default send options applied to messages submitted over SMTP with this API key:\n\n- Which IP pool to send from.\n- The content category.\n- Tags.\n- Open and click tracking.\n\nSMTP submissions have no fields for these, so Bird stores them per key instead.\n\nA field you omit is left unchanged. If no config exists yet for this key, it is created first with the documented defaults (your organization's default pool, transactional category, no tags, tracking on), and omitted fields take those defaults. A key that does not belong to this workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "smtp",
                    "configs",
                    ":api_key_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "key_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "api_key_id",
                      "description": "(Required) ID of the API key the config applies to, the same key your SMTP client authenticates with.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"category\": \"marketing\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"api_key_id\": \"key_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"category\": \"marketing\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d3fedd49-5d81-82c5-8b28-57f986df5448",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Update the SMTP config for an API key",
                "description": {
                  "content": "Sets the default send options applied to messages submitted over SMTP with this API key:\n\n- Which IP pool to send from.\n- The content category.\n- Tags.\n- Open and click tracking.\n\nSMTP submissions have no fields for these, so Bird stores them per key instead.\n\nA field you omit is left unchanged. If no config exists yet for this key, it is created first with the documented defaults (your organization's default pool, transactional category, no tags, tracking on), and omitted fields take those defaults. A key that does not belong to this workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "email",
                    "smtp",
                    "configs",
                    ":api_key_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "key_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "api_key_id",
                      "description": "(Required) ID of the API key the config applies to, the same key your SMTP client authenticates with.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"category\": \"marketing\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"api_key_id\": \"key_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"category\": \"marketing\",\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "7b20c8d7-6866-8ced-85f6-fdc251ad9a8c",
      "name": "webhooks",
      "description": {
        "content": "Webhook endpoint management.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "e4b772fa-1107-8783-8883-58d8f0a01b93",
          "name": "Create a webhook endpoint",
          "request": {
            "name": "Create a webhook endpoint",
            "description": {
              "content": "Registers an `active` webhook endpoint that receives the event types in `events` as signed HTTPS `POST` requests. See the [webhooks guide](https://bird.com/docs/guides/webhooks) for delivery, signing, and retry behavior.\n\nThe `201` response is the only response that includes the signing secret (`whsec_` prefix). Store it immediately; if it is lost, [rotate the signing secret](https://bird.com/docs/api/reference/rotate-webhook-secret).\n\nA non-HTTPS or non-public `url`, an unknown event type, or exceeding the organization's endpoint limit returns `422`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "webhooks"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"https://example.com/webhooks/bird\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"description\": \"Production delivery + bounce notifications\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "0e75dc1c-3859-8cd9-8c09-ff6c3d622a4a",
              "name": "Created webhook endpoint, including its one-time signing secret.",
              "originalRequest": {
                "name": "Create a webhook endpoint",
                "description": {
                  "content": "Registers an `active` webhook endpoint that receives the event types in `events` as signed HTTPS `POST` requests. See the [webhooks guide](https://bird.com/docs/guides/webhooks) for delivery, signing, and retry behavior.\n\nThe `201` response is the only response that includes the signing secret (`whsec_` prefix). Store it immediately; if it is lost, [rotate the signing secret](https://bird.com/docs/api/reference/rotate-webhook-secret).\n\nA non-HTTPS or non-public `url`, an unknown event type, or exceeding the organization's endpoint limit returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"url\": \"https://example.com/webhooks/bird\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"description\": \"Production delivery + bounce notifications\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Production webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"status\": \"active\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"secret\": \"whsec_base64encodedvalue\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "67fd41d2-70fa-8872-8898-39a2f89e6fc8",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create a webhook endpoint",
                "description": {
                  "content": "Registers an `active` webhook endpoint that receives the event types in `events` as signed HTTPS `POST` requests. See the [webhooks guide](https://bird.com/docs/guides/webhooks) for delivery, signing, and retry behavior.\n\nThe `201` response is the only response that includes the signing secret (`whsec_` prefix). Store it immediately; if it is lost, [rotate the signing secret](https://bird.com/docs/api/reference/rotate-webhook-secret).\n\nA non-HTTPS or non-public `url`, an unknown event type, or exceeding the organization's endpoint limit returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"url\": \"https://example.com/webhooks/bird\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"description\": \"Production delivery + bounce notifications\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Production webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"status\": \"active\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"secret\": \"whsec_base64encodedvalue\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "20d46274-44f9-8d36-82b2-9d0c63aa4a25",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create a webhook endpoint",
                "description": {
                  "content": "Registers an `active` webhook endpoint that receives the event types in `events` as signed HTTPS `POST` requests. See the [webhooks guide](https://bird.com/docs/guides/webhooks) for delivery, signing, and retry behavior.\n\nThe `201` response is the only response that includes the signing secret (`whsec_` prefix). Store it immediately; if it is lost, [rotate the signing secret](https://bird.com/docs/api/reference/rotate-webhook-secret).\n\nA non-HTTPS or non-public `url`, an unknown event type, or exceeding the organization's endpoint limit returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"url\": \"https://example.com/webhooks/bird\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"description\": \"Production delivery + bounce notifications\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Production webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"status\": \"active\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"secret\": \"whsec_base64encodedvalue\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "54048f03-a941-8493-800a-50e84f6766af",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create a webhook endpoint",
                "description": {
                  "content": "Registers an `active` webhook endpoint that receives the event types in `events` as signed HTTPS `POST` requests. See the [webhooks guide](https://bird.com/docs/guides/webhooks) for delivery, signing, and retry behavior.\n\nThe `201` response is the only response that includes the signing secret (`whsec_` prefix). Store it immediately; if it is lost, [rotate the signing secret](https://bird.com/docs/api/reference/rotate-webhook-secret).\n\nA non-HTTPS or non-public `url`, an unknown event type, or exceeding the organization's endpoint limit returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"url\": \"https://example.com/webhooks/bird\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"description\": \"Production delivery + bounce notifications\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Production webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"status\": \"active\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"secret\": \"whsec_base64encodedvalue\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a42d98b2-4587-8785-8343-1cc62f691e4f",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create a webhook endpoint",
                "description": {
                  "content": "Registers an `active` webhook endpoint that receives the event types in `events` as signed HTTPS `POST` requests. See the [webhooks guide](https://bird.com/docs/guides/webhooks) for delivery, signing, and retry behavior.\n\nThe `201` response is the only response that includes the signing secret (`whsec_` prefix). Store it immediately; if it is lost, [rotate the signing secret](https://bird.com/docs/api/reference/rotate-webhook-secret).\n\nA non-HTTPS or non-public `url`, an unknown event type, or exceeding the organization's endpoint limit returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"url\": \"https://example.com/webhooks/bird\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"description\": \"Production delivery + bounce notifications\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Production webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"status\": \"active\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"secret\": \"whsec_base64encodedvalue\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0657d7de-8c70-88f4-8a70-f94422f6c563",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create a webhook endpoint",
                "description": {
                  "content": "Registers an `active` webhook endpoint that receives the event types in `events` as signed HTTPS `POST` requests. See the [webhooks guide](https://bird.com/docs/guides/webhooks) for delivery, signing, and retry behavior.\n\nThe `201` response is the only response that includes the signing secret (`whsec_` prefix). Store it immediately; if it is lost, [rotate the signing secret](https://bird.com/docs/api/reference/rotate-webhook-secret).\n\nA non-HTTPS or non-public `url`, an unknown event type, or exceeding the organization's endpoint limit returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"url\": \"https://example.com/webhooks/bird\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"description\": \"Production delivery + bounce notifications\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 201,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Production webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"status\": \"active\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"secret\": \"whsec_base64encodedvalue\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d949eca9-f149-84d8-8c89-55c63c598324",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create a webhook endpoint",
                "description": {
                  "content": "Registers an `active` webhook endpoint that receives the event types in `events` as signed HTTPS `POST` requests. See the [webhooks guide](https://bird.com/docs/guides/webhooks) for delivery, signing, and retry behavior.\n\nThe `201` response is the only response that includes the signing secret (`whsec_` prefix). Store it immediately; if it is lost, [rotate the signing secret](https://bird.com/docs/api/reference/rotate-webhook-secret).\n\nA non-HTTPS or non-public `url`, an unknown event type, or exceeding the organization's endpoint limit returns `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"url\": \"https://example.com/webhooks/bird\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"description\": \"Production delivery + bounce notifications\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Production webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"status\": \"active\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\",\n  \"secret\": \"whsec_base64encodedvalue\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "3dadc3e8-1a19-88b0-89b0-2aee56b78a1e",
          "name": "List webhook endpoints",
          "request": {
            "name": "List webhook endpoints",
            "description": {
              "content": "Returns the workspace's webhook endpoints as a cursor-paginated list, newest first by default. Endpoint objects never include the signing secret; to inspect a single endpoint, use [Get a webhook endpoint](https://bird.com/docs/api/reference/get-webhook).\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "webhooks"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "sort",
                  "value": ""
                },
                {
                  "disabled": false,
                  "key": "order",
                  "value": "desc",
                  "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                },
                {
                  "disabled": false,
                  "key": "include_total",
                  "value": "false",
                  "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "b3c7c160-ff13-8d4f-8838-76b553ede799",
              "name": "Paginated list of webhook endpoints.",
              "originalRequest": {
                "name": "List webhook endpoints",
                "description": {
                  "content": "Returns the workspace's webhook endpoints as a cursor-paginated list, newest first by default. Endpoint objects never include the signing secret; to inspect a single endpoint, use [Get a webhook endpoint](https://bird.com/docs/api/reference/get-webhook).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": ""
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"url\": \"https://example.com/webhook\",\n      \"description\": \"Production webhook endpoint\",\n      \"events\": [\n        \"email.delivered\",\n        \"email.bounced\"\n      ],\n      \"status\": \"active\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "dd474362-4de6-860a-8f7c-c04cb32f3cbd",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List webhook endpoints",
                "description": {
                  "content": "Returns the workspace's webhook endpoints as a cursor-paginated list, newest first by default. Endpoint objects never include the signing secret; to inspect a single endpoint, use [Get a webhook endpoint](https://bird.com/docs/api/reference/get-webhook).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": ""
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"url\": \"https://example.com/webhook\",\n      \"description\": \"Production webhook endpoint\",\n      \"events\": [\n        \"email.delivered\",\n        \"email.bounced\"\n      ],\n      \"status\": \"active\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "435e67b6-b989-88cc-8932-23d762854d9a",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List webhook endpoints",
                "description": {
                  "content": "Returns the workspace's webhook endpoints as a cursor-paginated list, newest first by default. Endpoint objects never include the signing secret; to inspect a single endpoint, use [Get a webhook endpoint](https://bird.com/docs/api/reference/get-webhook).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": ""
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"url\": \"https://example.com/webhook\",\n      \"description\": \"Production webhook endpoint\",\n      \"events\": [\n        \"email.delivered\",\n        \"email.bounced\"\n      ],\n      \"status\": \"active\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "44a3d29f-dfe9-8176-8a57-0c7926c4049b",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List webhook endpoints",
                "description": {
                  "content": "Returns the workspace's webhook endpoints as a cursor-paginated list, newest first by default. Endpoint objects never include the signing secret; to inspect a single endpoint, use [Get a webhook endpoint](https://bird.com/docs/api/reference/get-webhook).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": ""
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"url\": \"https://example.com/webhook\",\n      \"description\": \"Production webhook endpoint\",\n      \"events\": [\n        \"email.delivered\",\n        \"email.bounced\"\n      ],\n      \"status\": \"active\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "97f9660f-3d12-8520-8517-1e450de27447",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List webhook endpoints",
                "description": {
                  "content": "Returns the workspace's webhook endpoints as a cursor-paginated list, newest first by default. Endpoint objects never include the signing secret; to inspect a single endpoint, use [Get a webhook endpoint](https://bird.com/docs/api/reference/get-webhook).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": ""
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"url\": \"https://example.com/webhook\",\n      \"description\": \"Production webhook endpoint\",\n      \"events\": [\n        \"email.delivered\",\n        \"email.bounced\"\n      ],\n      \"status\": \"active\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "01a8f5db-2604-8ba3-8d12-17bff453a0f5",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List webhook endpoints",
                "description": {
                  "content": "Returns the workspace's webhook endpoints as a cursor-paginated list, newest first by default. Endpoint objects never include the signing secret; to inspect a single endpoint, use [Get a webhook endpoint](https://bird.com/docs/api/reference/get-webhook).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "sort",
                      "value": ""
                    },
                    {
                      "disabled": false,
                      "key": "order",
                      "value": "desc",
                      "description": "Sort direction. Defaults to `desc`, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    },
                    {
                      "disabled": false,
                      "key": "include_total",
                      "value": "false",
                      "description": "When true, the response includes a `total` field with the total number of items matching the request's filters across all pages."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"url\": \"https://example.com/webhook\",\n      \"description\": \"Production webhook endpoint\",\n      \"events\": [\n        \"email.delivered\",\n        \"email.bounced\"\n      ],\n      \"status\": \"active\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "b03cb202-cd87-8766-8a49-f2d7799ba14f",
          "name": "Get a webhook endpoint",
          "request": {
            "name": "Get a webhook endpoint",
            "description": {
              "content": "Returns one webhook endpoint's configuration and current delivery `status`, including its URL and subscribed event types. The signing secret is never included; if you lost it, mint a new one with [Rotate webhook signing secret](https://bird.com/docs/api/reference/rotate-webhook-secret).\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "webhooks",
                ":webhook_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                  "key": "webhook_id",
                  "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "84ea2c6d-0d90-8221-8b80-e0831a24c35a",
              "name": "Webhook endpoint with its current URL, subscriptions, and status.",
              "originalRequest": {
                "name": "Get a webhook endpoint",
                "description": {
                  "content": "Returns one webhook endpoint's configuration and current delivery `status`, including its URL and subscribed event types. The signing secret is never included; if you lost it, mint a new one with [Rotate webhook signing secret](https://bird.com/docs/api/reference/rotate-webhook-secret).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Production webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"status\": \"active\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a7548d76-c53c-846a-8c98-b73f518be213",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a webhook endpoint",
                "description": {
                  "content": "Returns one webhook endpoint's configuration and current delivery `status`, including its URL and subscribed event types. The signing secret is never included; if you lost it, mint a new one with [Rotate webhook signing secret](https://bird.com/docs/api/reference/rotate-webhook-secret).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Production webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"status\": \"active\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1767c29a-bea1-873f-8663-fd1e7dbf53fa",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a webhook endpoint",
                "description": {
                  "content": "Returns one webhook endpoint's configuration and current delivery `status`, including its URL and subscribed event types. The signing secret is never included; if you lost it, mint a new one with [Rotate webhook signing secret](https://bird.com/docs/api/reference/rotate-webhook-secret).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Production webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"status\": \"active\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a4443078-7139-8473-817f-cd0ded843856",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a webhook endpoint",
                "description": {
                  "content": "Returns one webhook endpoint's configuration and current delivery `status`, including its URL and subscribed event types. The signing secret is never included; if you lost it, mint a new one with [Rotate webhook signing secret](https://bird.com/docs/api/reference/rotate-webhook-secret).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Production webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"status\": \"active\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b24f23d1-df6b-82f6-80ed-fd3e3984428e",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a webhook endpoint",
                "description": {
                  "content": "Returns one webhook endpoint's configuration and current delivery `status`, including its URL and subscribed event types. The signing secret is never included; if you lost it, mint a new one with [Rotate webhook signing secret](https://bird.com/docs/api/reference/rotate-webhook-secret).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Production webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"status\": \"active\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "054f2519-35a2-8a56-8c3b-8600ae24f909",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a webhook endpoint",
                "description": {
                  "content": "Returns one webhook endpoint's configuration and current delivery `status`, including its URL and subscribed event types. The signing secret is never included; if you lost it, mint a new one with [Rotate webhook signing secret](https://bird.com/docs/api/reference/rotate-webhook-secret).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Production webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"status\": \"active\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "848c4643-59da-8a47-80c0-622e0e6da3a7",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a webhook endpoint",
                "description": {
                  "content": "Returns one webhook endpoint's configuration and current delivery `status`, including its URL and subscribed event types. The signing secret is never included; if you lost it, mint a new one with [Rotate webhook signing secret](https://bird.com/docs/api/reference/rotate-webhook-secret).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Production webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"status\": \"active\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "19860f89-e109-8e7d-8a0a-024fcd7543b4",
          "name": "Update a webhook endpoint",
          "request": {
            "name": "Update a webhook endpoint",
            "description": {
              "content": "Updates the webhook endpoint. Only the fields you send change: `events` replaces the\nwhole subscription set, and `status` pauses or re-enables delivery.\n\nThe `200` response is the updated endpoint. Invalid input (a non-HTTPS or non-public\n`url`, an event type outside the catalog) returns a `422`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "webhooks",
                ":webhook_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                  "key": "webhook_id",
                  "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "PATCH",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Updated webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\",\n    \"email.complained\"\n  ],\n  \"status\": \"active\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "f87c2a46-f69c-82f3-88f9-971d78413d84",
              "name": "Webhook endpoint after the update.",
              "originalRequest": {
                "name": "Update a webhook endpoint",
                "description": {
                  "content": "Updates the webhook endpoint. Only the fields you send change: `events` replaces the\nwhole subscription set, and `status` pauses or re-enables delivery.\n\nThe `200` response is the updated endpoint. Invalid input (a non-HTTPS or non-public\n`url`, an event type outside the catalog) returns a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Updated webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\",\n    \"email.complained\"\n  ],\n  \"status\": \"active\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Production webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"status\": \"active\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "bf85c931-3233-882b-888f-7ba38a670249",
              "name": "Bad request",
              "originalRequest": {
                "name": "Update a webhook endpoint",
                "description": {
                  "content": "Updates the webhook endpoint. Only the fields you send change: `events` replaces the\nwhole subscription set, and `status` pauses or re-enables delivery.\n\nThe `200` response is the updated endpoint. Invalid input (a non-HTTPS or non-public\n`url`, an event type outside the catalog) returns a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Updated webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\",\n    \"email.complained\"\n  ],\n  \"status\": \"active\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Production webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"status\": \"active\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "522e61f0-5bd2-83d6-83da-9d435591f676",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Update a webhook endpoint",
                "description": {
                  "content": "Updates the webhook endpoint. Only the fields you send change: `events` replaces the\nwhole subscription set, and `status` pauses or re-enables delivery.\n\nThe `200` response is the updated endpoint. Invalid input (a non-HTTPS or non-public\n`url`, an event type outside the catalog) returns a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Updated webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\",\n    \"email.complained\"\n  ],\n  \"status\": \"active\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Production webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"status\": \"active\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d1d7daa8-5de6-8773-8e5f-1d7d12754552",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Update a webhook endpoint",
                "description": {
                  "content": "Updates the webhook endpoint. Only the fields you send change: `events` replaces the\nwhole subscription set, and `status` pauses or re-enables delivery.\n\nThe `200` response is the updated endpoint. Invalid input (a non-HTTPS or non-public\n`url`, an event type outside the catalog) returns a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Updated webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\",\n    \"email.complained\"\n  ],\n  \"status\": \"active\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Production webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"status\": \"active\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d2be6b39-1945-8959-824d-cf83ba2425ca",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Update a webhook endpoint",
                "description": {
                  "content": "Updates the webhook endpoint. Only the fields you send change: `events` replaces the\nwhole subscription set, and `status` pauses or re-enables delivery.\n\nThe `200` response is the updated endpoint. Invalid input (a non-HTTPS or non-public\n`url`, an event type outside the catalog) returns a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Updated webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\",\n    \"email.complained\"\n  ],\n  \"status\": \"active\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Production webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"status\": \"active\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e9f6aa12-6374-83a1-82d7-23bf7434e857",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Update a webhook endpoint",
                "description": {
                  "content": "Updates the webhook endpoint. Only the fields you send change: `events` replaces the\nwhole subscription set, and `status` pauses or re-enables delivery.\n\nThe `200` response is the updated endpoint. Invalid input (a non-HTTPS or non-public\n`url`, an event type outside the catalog) returns a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Updated webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\",\n    \"email.complained\"\n  ],\n  \"status\": \"active\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Production webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"status\": \"active\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ce8c0500-0228-8360-8fae-da6ac1ca4344",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Update a webhook endpoint",
                "description": {
                  "content": "Updates the webhook endpoint. Only the fields you send change: `events` replaces the\nwhole subscription set, and `status` pauses or re-enables delivery.\n\nThe `200` response is the updated endpoint. Invalid input (a non-HTTPS or non-public\n`url`, an event type outside the catalog) returns a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Updated webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\",\n    \"email.complained\"\n  ],\n  \"status\": \"active\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Production webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"status\": \"active\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8905f6ab-d0a3-880d-8613-e2b6f11e6b8e",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Update a webhook endpoint",
                "description": {
                  "content": "Updates the webhook endpoint. Only the fields you send change: `events` replaces the\nwhole subscription set, and `status` pauses or re-enables delivery.\n\nThe `200` response is the updated endpoint. Invalid input (a non-HTTPS or non-public\n`url`, an event type outside the catalog) returns a `422`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Updated webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\",\n    \"email.complained\"\n  ],\n  \"status\": \"active\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"whk_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"url\": \"https://example.com/webhook\",\n  \"description\": \"Production webhook endpoint\",\n  \"events\": [\n    \"email.delivered\",\n    \"email.bounced\"\n  ],\n  \"status\": \"active\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "88b5418f-9ce0-8d0b-8114-5d4ffc240c37",
          "name": "Delete a webhook endpoint",
          "request": {
            "name": "Delete a webhook endpoint",
            "description": {
              "content": "Permanently removes the webhook endpoint and stops all deliveries to it, including retries of earlier failed deliveries. This cannot be undone: recreating an endpoint later mints a new `id` and signing secret. To stop deliveries temporarily instead, set `status` to `paused` with [Update a webhook endpoint](https://bird.com/docs/api/reference/update-webhook).\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "webhooks",
                ":webhook_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                  "key": "webhook_id",
                  "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "DELETE"
          },
          "response": [
            {
              "id": "742baa24-fe60-8a32-8440-80789512687b",
              "name": "Webhook endpoint deleted.",
              "originalRequest": {
                "name": "Delete a webhook endpoint",
                "description": {
                  "content": "Permanently removes the webhook endpoint and stops all deliveries to it, including retries of earlier failed deliveries. This cannot be undone: recreating an endpoint later mints a new `id` and signing secret. To stop deliveries temporarily instead, set `status` to `paused` with [Update a webhook endpoint](https://bird.com/docs/api/reference/update-webhook).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "5c503b88-b8e9-819f-85cc-680600459001",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Delete a webhook endpoint",
                "description": {
                  "content": "Permanently removes the webhook endpoint and stops all deliveries to it, including retries of earlier failed deliveries. This cannot be undone: recreating an endpoint later mints a new `id` and signing secret. To stop deliveries temporarily instead, set `status` to `paused` with [Update a webhook endpoint](https://bird.com/docs/api/reference/update-webhook).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "38fd9c15-9957-8918-89aa-5d80b7c6020c",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Delete a webhook endpoint",
                "description": {
                  "content": "Permanently removes the webhook endpoint and stops all deliveries to it, including retries of earlier failed deliveries. This cannot be undone: recreating an endpoint later mints a new `id` and signing secret. To stop deliveries temporarily instead, set `status` to `paused` with [Update a webhook endpoint](https://bird.com/docs/api/reference/update-webhook).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "91909fd3-2b06-8951-857e-f4ceb4df8334",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Delete a webhook endpoint",
                "description": {
                  "content": "Permanently removes the webhook endpoint and stops all deliveries to it, including retries of earlier failed deliveries. This cannot be undone: recreating an endpoint later mints a new `id` and signing secret. To stop deliveries temporarily instead, set `status` to `paused` with [Update a webhook endpoint](https://bird.com/docs/api/reference/update-webhook).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b85ccdea-af43-8ce3-8e64-4de9c3751606",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Delete a webhook endpoint",
                "description": {
                  "content": "Permanently removes the webhook endpoint and stops all deliveries to it, including retries of earlier failed deliveries. This cannot be undone: recreating an endpoint later mints a new `id` and signing secret. To stop deliveries temporarily instead, set `status` to `paused` with [Update a webhook endpoint](https://bird.com/docs/api/reference/update-webhook).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "582cd70c-bb7f-8c05-883f-cd181a3305e7",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Delete a webhook endpoint",
                "description": {
                  "content": "Permanently removes the webhook endpoint and stops all deliveries to it, including retries of earlier failed deliveries. This cannot be undone: recreating an endpoint later mints a new `id` and signing secret. To stop deliveries temporarily instead, set `status` to `paused` with [Update a webhook endpoint](https://bird.com/docs/api/reference/update-webhook).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "17229d3e-6e29-87d2-88dd-d6491e8acdaa",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Delete a webhook endpoint",
                "description": {
                  "content": "Permanently removes the webhook endpoint and stops all deliveries to it, including retries of earlier failed deliveries. This cannot be undone: recreating an endpoint later mints a new `id` and signing secret. To stop deliveries temporarily instead, set `status` to `paused` with [Update a webhook endpoint](https://bird.com/docs/api/reference/update-webhook).\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "9bc185ef-2dce-830a-8846-04cdb85673b9",
          "name": "Rotate webhook signing secret",
          "request": {
            "name": "Rotate webhook signing secret",
            "description": {
              "content": "Generates a new signing secret for the endpoint and returns it exactly once: store it\nimmediately, it cannot be retrieved after this response. For 24 hours every delivery\nis signed with both the old and the new secret, so a receiver verifying with either\nkeeps working while you roll the new one out. After the window the old secret stops\nsigning. Verification details are in the [webhooks guide](https://bird.com/docs/guides/webhooks).\n\nAn endpoint holds at most 5 concurrently valid secrets, so rotating repeatedly within\nthe overlap window fails with `WebhookTooManySecrets` until an older secret expires.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "webhooks",
                ":webhook_id",
                "rotate-secret"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                  "key": "webhook_id",
                  "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST"
          },
          "response": [
            {
              "id": "df2c4618-21cd-89c7-8857-739e3c69634c",
              "name": "New signing secret.",
              "originalRequest": {
                "name": "Rotate webhook signing secret",
                "description": {
                  "content": "Generates a new signing secret for the endpoint and returns it exactly once: store it\nimmediately, it cannot be retrieved after this response. For 24 hours every delivery\nis signed with both the old and the new secret, so a receiver verifying with either\nkeeps working while you roll the new one out. After the window the old secret stops\nsigning. Verification details are in the [webhooks guide](https://bird.com/docs/guides/webhooks).\n\nAn endpoint holds at most 5 concurrently valid secrets, so rotating repeatedly within\nthe overlap window fails with `WebhookTooManySecrets` until an older secret expires.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "rotate-secret"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"secret\": \"whsec_newbase64encodedvalue\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0fc04d55-061a-8dcf-8cf1-dfbb8bcc489b",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Rotate webhook signing secret",
                "description": {
                  "content": "Generates a new signing secret for the endpoint and returns it exactly once: store it\nimmediately, it cannot be retrieved after this response. For 24 hours every delivery\nis signed with both the old and the new secret, so a receiver verifying with either\nkeeps working while you roll the new one out. After the window the old secret stops\nsigning. Verification details are in the [webhooks guide](https://bird.com/docs/guides/webhooks).\n\nAn endpoint holds at most 5 concurrently valid secrets, so rotating repeatedly within\nthe overlap window fails with `WebhookTooManySecrets` until an older secret expires.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "rotate-secret"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"secret\": \"whsec_newbase64encodedvalue\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cfa3b178-c3b3-8b4b-81e0-0cbc487bba43",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Rotate webhook signing secret",
                "description": {
                  "content": "Generates a new signing secret for the endpoint and returns it exactly once: store it\nimmediately, it cannot be retrieved after this response. For 24 hours every delivery\nis signed with both the old and the new secret, so a receiver verifying with either\nkeeps working while you roll the new one out. After the window the old secret stops\nsigning. Verification details are in the [webhooks guide](https://bird.com/docs/guides/webhooks).\n\nAn endpoint holds at most 5 concurrently valid secrets, so rotating repeatedly within\nthe overlap window fails with `WebhookTooManySecrets` until an older secret expires.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "rotate-secret"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"secret\": \"whsec_newbase64encodedvalue\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "48b51f9b-ca88-83fb-82c9-955396a56b3d",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Rotate webhook signing secret",
                "description": {
                  "content": "Generates a new signing secret for the endpoint and returns it exactly once: store it\nimmediately, it cannot be retrieved after this response. For 24 hours every delivery\nis signed with both the old and the new secret, so a receiver verifying with either\nkeeps working while you roll the new one out. After the window the old secret stops\nsigning. Verification details are in the [webhooks guide](https://bird.com/docs/guides/webhooks).\n\nAn endpoint holds at most 5 concurrently valid secrets, so rotating repeatedly within\nthe overlap window fails with `WebhookTooManySecrets` until an older secret expires.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "rotate-secret"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"secret\": \"whsec_newbase64encodedvalue\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "565ece35-a64e-822b-8312-378dad173d4e",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Rotate webhook signing secret",
                "description": {
                  "content": "Generates a new signing secret for the endpoint and returns it exactly once: store it\nimmediately, it cannot be retrieved after this response. For 24 hours every delivery\nis signed with both the old and the new secret, so a receiver verifying with either\nkeeps working while you roll the new one out. After the window the old secret stops\nsigning. Verification details are in the [webhooks guide](https://bird.com/docs/guides/webhooks).\n\nAn endpoint holds at most 5 concurrently valid secrets, so rotating repeatedly within\nthe overlap window fails with `WebhookTooManySecrets` until an older secret expires.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "rotate-secret"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"secret\": \"whsec_newbase64encodedvalue\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8c1b21cd-dfd9-8dc4-8eee-09d8db41d057",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Rotate webhook signing secret",
                "description": {
                  "content": "Generates a new signing secret for the endpoint and returns it exactly once: store it\nimmediately, it cannot be retrieved after this response. For 24 hours every delivery\nis signed with both the old and the new secret, so a receiver verifying with either\nkeeps working while you roll the new one out. After the window the old secret stops\nsigning. Verification details are in the [webhooks guide](https://bird.com/docs/guides/webhooks).\n\nAn endpoint holds at most 5 concurrently valid secrets, so rotating repeatedly within\nthe overlap window fails with `WebhookTooManySecrets` until an older secret expires.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "rotate-secret"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"secret\": \"whsec_newbase64encodedvalue\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d46e9001-d24a-87df-86e2-28b62411438b",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Rotate webhook signing secret",
                "description": {
                  "content": "Generates a new signing secret for the endpoint and returns it exactly once: store it\nimmediately, it cannot be retrieved after this response. For 24 hours every delivery\nis signed with both the old and the new secret, so a receiver verifying with either\nkeeps working while you roll the new one out. After the window the old secret stops\nsigning. Verification details are in the [webhooks guide](https://bird.com/docs/guides/webhooks).\n\nAn endpoint holds at most 5 concurrently valid secrets, so rotating repeatedly within\nthe overlap window fails with `WebhookTooManySecrets` until an older secret expires.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "rotate-secret"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"secret\": \"whsec_newbase64encodedvalue\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "f0c41b04-d3a2-82aa-8ec3-c185f6aca4e4",
          "name": "Test a webhook with a sample event",
          "request": {
            "name": "Test a webhook with a sample event",
            "description": {
              "content": "Sends a signed synthetic event and returns whether your endpoint accepted it, its HTTP status, and the round-trip latency. An unreachable endpoint returns `status: failed` in the response body. The endpoint has 10 seconds to respond.\n\nThe body is a minimal JSON object with the event `type`, signed like a real delivery. It does not mirror that event's payload. Tests work on paused endpoints and do not appear in [List delivery attempts](https://bird.com/docs/api/reference/list-webhook-attempts).\n\nThe operation returns `412` if the endpoint lacks a valid signing secret or, when `event_type` is omitted, has no subscribed event type to use.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "webhooks",
                ":webhook_id",
                "test"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                  "key": "webhook_id",
                  "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"event_type\": \"email.delivered\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "50c95192-96f5-8bc3-85f1-b09a69adba15",
              "name": "The test result, including whether your endpoint accepted the event.",
              "originalRequest": {
                "name": "Test a webhook with a sample event",
                "description": {
                  "content": "Sends a signed synthetic event and returns whether your endpoint accepted it, its HTTP status, and the round-trip latency. An unreachable endpoint returns `status: failed` in the response body. The endpoint has 10 seconds to respond.\n\nThe body is a minimal JSON object with the event `type`, signed like a real delivery. It does not mirror that event's payload. Tests work on paused endpoints and do not appear in [List delivery attempts](https://bird.com/docs/api/reference/list-webhook-attempts).\n\nThe operation returns `412` if the endpoint lacks a valid signing secret or, when `event_type` is omitted, has no subscribed event type to use.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "test"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event_type\": \"email.delivered\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"status\": \"delivered\",\n  \"response_status_code\": 200,\n  \"response_body\": \"OK\",\n  \"response_duration_ms\": 142,\n  \"event_payload\": {\n    \"type\": \"domain.failed\",\n    \"timestamp\": \"2026-05-21T12:00:00Z\",\n    \"data\": {\n      \"domain_id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"domain\": \"mail.example.com\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"failure_reason\": \"DKIM record not found at the expected selector.\"\n    }\n  },\n  \"error\": \"connection refused\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "72af3437-15f3-8ef0-8f83-30290398d1c2",
              "name": "Bad request",
              "originalRequest": {
                "name": "Test a webhook with a sample event",
                "description": {
                  "content": "Sends a signed synthetic event and returns whether your endpoint accepted it, its HTTP status, and the round-trip latency. An unreachable endpoint returns `status: failed` in the response body. The endpoint has 10 seconds to respond.\n\nThe body is a minimal JSON object with the event `type`, signed like a real delivery. It does not mirror that event's payload. Tests work on paused endpoints and do not appear in [List delivery attempts](https://bird.com/docs/api/reference/list-webhook-attempts).\n\nThe operation returns `412` if the endpoint lacks a valid signing secret or, when `event_type` is omitted, has no subscribed event type to use.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "test"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event_type\": \"email.delivered\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"status\": \"delivered\",\n  \"response_status_code\": 200,\n  \"response_body\": \"OK\",\n  \"response_duration_ms\": 142,\n  \"event_payload\": {\n    \"type\": \"domain.failed\",\n    \"timestamp\": \"2026-05-21T12:00:00Z\",\n    \"data\": {\n      \"domain_id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"domain\": \"mail.example.com\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"failure_reason\": \"DKIM record not found at the expected selector.\"\n    }\n  },\n  \"error\": \"connection refused\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "42b75f44-1d09-8c7e-814e-648c215bc821",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Test a webhook with a sample event",
                "description": {
                  "content": "Sends a signed synthetic event and returns whether your endpoint accepted it, its HTTP status, and the round-trip latency. An unreachable endpoint returns `status: failed` in the response body. The endpoint has 10 seconds to respond.\n\nThe body is a minimal JSON object with the event `type`, signed like a real delivery. It does not mirror that event's payload. Tests work on paused endpoints and do not appear in [List delivery attempts](https://bird.com/docs/api/reference/list-webhook-attempts).\n\nThe operation returns `412` if the endpoint lacks a valid signing secret or, when `event_type` is omitted, has no subscribed event type to use.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "test"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event_type\": \"email.delivered\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"status\": \"delivered\",\n  \"response_status_code\": 200,\n  \"response_body\": \"OK\",\n  \"response_duration_ms\": 142,\n  \"event_payload\": {\n    \"type\": \"domain.failed\",\n    \"timestamp\": \"2026-05-21T12:00:00Z\",\n    \"data\": {\n      \"domain_id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"domain\": \"mail.example.com\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"failure_reason\": \"DKIM record not found at the expected selector.\"\n    }\n  },\n  \"error\": \"connection refused\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2234bea7-ea52-8393-8a52-f9f7c1e5f7cb",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Test a webhook with a sample event",
                "description": {
                  "content": "Sends a signed synthetic event and returns whether your endpoint accepted it, its HTTP status, and the round-trip latency. An unreachable endpoint returns `status: failed` in the response body. The endpoint has 10 seconds to respond.\n\nThe body is a minimal JSON object with the event `type`, signed like a real delivery. It does not mirror that event's payload. Tests work on paused endpoints and do not appear in [List delivery attempts](https://bird.com/docs/api/reference/list-webhook-attempts).\n\nThe operation returns `412` if the endpoint lacks a valid signing secret or, when `event_type` is omitted, has no subscribed event type to use.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "test"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event_type\": \"email.delivered\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"status\": \"delivered\",\n  \"response_status_code\": 200,\n  \"response_body\": \"OK\",\n  \"response_duration_ms\": 142,\n  \"event_payload\": {\n    \"type\": \"domain.failed\",\n    \"timestamp\": \"2026-05-21T12:00:00Z\",\n    \"data\": {\n      \"domain_id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"domain\": \"mail.example.com\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"failure_reason\": \"DKIM record not found at the expected selector.\"\n    }\n  },\n  \"error\": \"connection refused\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "71e4d02c-01ec-859c-8dcf-a6619735c101",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Test a webhook with a sample event",
                "description": {
                  "content": "Sends a signed synthetic event and returns whether your endpoint accepted it, its HTTP status, and the round-trip latency. An unreachable endpoint returns `status: failed` in the response body. The endpoint has 10 seconds to respond.\n\nThe body is a minimal JSON object with the event `type`, signed like a real delivery. It does not mirror that event's payload. Tests work on paused endpoints and do not appear in [List delivery attempts](https://bird.com/docs/api/reference/list-webhook-attempts).\n\nThe operation returns `412` if the endpoint lacks a valid signing secret or, when `event_type` is omitted, has no subscribed event type to use.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "test"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event_type\": \"email.delivered\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"status\": \"delivered\",\n  \"response_status_code\": 200,\n  \"response_body\": \"OK\",\n  \"response_duration_ms\": 142,\n  \"event_payload\": {\n    \"type\": \"domain.failed\",\n    \"timestamp\": \"2026-05-21T12:00:00Z\",\n    \"data\": {\n      \"domain_id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"domain\": \"mail.example.com\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"failure_reason\": \"DKIM record not found at the expected selector.\"\n    }\n  },\n  \"error\": \"connection refused\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8a9ae355-b9bf-88c9-833a-c678f9c4521c",
              "name": "Precondition failed",
              "originalRequest": {
                "name": "Test a webhook with a sample event",
                "description": {
                  "content": "Sends a signed synthetic event and returns whether your endpoint accepted it, its HTTP status, and the round-trip latency. An unreachable endpoint returns `status: failed` in the response body. The endpoint has 10 seconds to respond.\n\nThe body is a minimal JSON object with the event `type`, signed like a real delivery. It does not mirror that event's payload. Tests work on paused endpoints and do not appear in [List delivery attempts](https://bird.com/docs/api/reference/list-webhook-attempts).\n\nThe operation returns `412` if the endpoint lacks a valid signing secret or, when `event_type` is omitted, has no subscribed event type to use.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "test"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event_type\": \"email.delivered\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Precondition Failed",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"status\": \"delivered\",\n  \"response_status_code\": 200,\n  \"response_body\": \"OK\",\n  \"response_duration_ms\": 142,\n  \"event_payload\": {\n    \"type\": \"domain.failed\",\n    \"timestamp\": \"2026-05-21T12:00:00Z\",\n    \"data\": {\n      \"domain_id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"domain\": \"mail.example.com\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"failure_reason\": \"DKIM record not found at the expected selector.\"\n    }\n  },\n  \"error\": \"connection refused\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4c121e7e-87b4-8bee-8f58-9da29155982a",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Test a webhook with a sample event",
                "description": {
                  "content": "Sends a signed synthetic event and returns whether your endpoint accepted it, its HTTP status, and the round-trip latency. An unreachable endpoint returns `status: failed` in the response body. The endpoint has 10 seconds to respond.\n\nThe body is a minimal JSON object with the event `type`, signed like a real delivery. It does not mirror that event's payload. Tests work on paused endpoints and do not appear in [List delivery attempts](https://bird.com/docs/api/reference/list-webhook-attempts).\n\nThe operation returns `412` if the endpoint lacks a valid signing secret or, when `event_type` is omitted, has no subscribed event type to use.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "test"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event_type\": \"email.delivered\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"status\": \"delivered\",\n  \"response_status_code\": 200,\n  \"response_body\": \"OK\",\n  \"response_duration_ms\": 142,\n  \"event_payload\": {\n    \"type\": \"domain.failed\",\n    \"timestamp\": \"2026-05-21T12:00:00Z\",\n    \"data\": {\n      \"domain_id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"domain\": \"mail.example.com\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"failure_reason\": \"DKIM record not found at the expected selector.\"\n    }\n  },\n  \"error\": \"connection refused\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3b69e0b5-3692-8496-8866-08abac1fa195",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Test a webhook with a sample event",
                "description": {
                  "content": "Sends a signed synthetic event and returns whether your endpoint accepted it, its HTTP status, and the round-trip latency. An unreachable endpoint returns `status: failed` in the response body. The endpoint has 10 seconds to respond.\n\nThe body is a minimal JSON object with the event `type`, signed like a real delivery. It does not mirror that event's payload. Tests work on paused endpoints and do not appear in [List delivery attempts](https://bird.com/docs/api/reference/list-webhook-attempts).\n\nThe operation returns `412` if the endpoint lacks a valid signing secret or, when `event_type` is omitted, has no subscribed event type to use.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "test"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event_type\": \"email.delivered\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"status\": \"delivered\",\n  \"response_status_code\": 200,\n  \"response_body\": \"OK\",\n  \"response_duration_ms\": 142,\n  \"event_payload\": {\n    \"type\": \"domain.failed\",\n    \"timestamp\": \"2026-05-21T12:00:00Z\",\n    \"data\": {\n      \"domain_id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"domain\": \"mail.example.com\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"failure_reason\": \"DKIM record not found at the expected selector.\"\n    }\n  },\n  \"error\": \"connection refused\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "28089396-906f-826b-851c-6840c72ea5f3",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Test a webhook with a sample event",
                "description": {
                  "content": "Sends a signed synthetic event and returns whether your endpoint accepted it, its HTTP status, and the round-trip latency. An unreachable endpoint returns `status: failed` in the response body. The endpoint has 10 seconds to respond.\n\nThe body is a minimal JSON object with the event `type`, signed like a real delivery. It does not mirror that event's payload. Tests work on paused endpoints and do not appear in [List delivery attempts](https://bird.com/docs/api/reference/list-webhook-attempts).\n\nThe operation returns `412` if the endpoint lacks a valid signing secret or, when `event_type` is omitted, has no subscribed event type to use.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "test"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event_type\": \"email.delivered\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"status\": \"delivered\",\n  \"response_status_code\": 200,\n  \"response_body\": \"OK\",\n  \"response_duration_ms\": 142,\n  \"event_payload\": {\n    \"type\": \"domain.failed\",\n    \"timestamp\": \"2026-05-21T12:00:00Z\",\n    \"data\": {\n      \"domain_id\": \"dom_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"domain\": \"mail.example.com\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"failure_reason\": \"DKIM record not found at the expected selector.\"\n    }\n  },\n  \"error\": \"connection refused\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "bdaf2a92-8960-86db-8cb3-d76c3fd5075b",
          "name": "Create a missed-event replay",
          "request": {
            "name": "Create a missed-event replay",
            "description": {
              "content": "Queues redelivery of events the endpoint missed: deliveries that failed as well as\nevents never attempted (for example while the endpoint was paused). Events the\nendpoint already received successfully are skipped, so a replay never double-delivers.\nThe window runs from `since` (default: the last 24 hours) to `until`.\n\nThe `202` response means the replay is queued. Events are redelivered asynchronously\nand retried like any other delivery; no count or task ID is returned, so track results\nwith [List delivery attempts](https://bird.com/docs/api/reference/list-webhook-attempts).\n\nReplays are limited to 20 per organization per UTC day; beyond that the request\nreturns a `429` `WebhookReplayQuotaExceeded`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "webhooks",
                ":webhook_id",
                "replay"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                  "key": "webhook_id",
                  "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"since\": \"2026-05-07T00:00:00Z\",\n  \"until\": \"2026-05-07T23:59:59Z\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "a1857e7e-26af-8665-814a-d9ba131ae125",
              "name": "Replay queued. Events are redelivered asynchronously; no count or task ID is returned.",
              "originalRequest": {
                "name": "Create a missed-event replay",
                "description": {
                  "content": "Queues redelivery of events the endpoint missed: deliveries that failed as well as\nevents never attempted (for example while the endpoint was paused). Events the\nendpoint already received successfully are skipped, so a replay never double-delivers.\nThe window runs from `since` (default: the last 24 hours) to `until`.\n\nThe `202` response means the replay is queued. Events are redelivered asynchronously\nand retried like any other delivery; no count or task ID is returned, so track results\nwith [List delivery attempts](https://bird.com/docs/api/reference/list-webhook-attempts).\n\nReplays are limited to 20 per organization per UTC day; beyond that the request\nreturns a `429` `WebhookReplayQuotaExceeded`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "replay"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"since\": \"2026-05-07T00:00:00Z\",\n  \"until\": \"2026-05-07T23:59:59Z\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 202,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "7f2f6561-db58-8459-85cf-ba5c27cbebab",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create a missed-event replay",
                "description": {
                  "content": "Queues redelivery of events the endpoint missed: deliveries that failed as well as\nevents never attempted (for example while the endpoint was paused). Events the\nendpoint already received successfully are skipped, so a replay never double-delivers.\nThe window runs from `since` (default: the last 24 hours) to `until`.\n\nThe `202` response means the replay is queued. Events are redelivered asynchronously\nand retried like any other delivery; no count or task ID is returned, so track results\nwith [List delivery attempts](https://bird.com/docs/api/reference/list-webhook-attempts).\n\nReplays are limited to 20 per organization per UTC day; beyond that the request\nreturns a `429` `WebhookReplayQuotaExceeded`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "replay"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"since\": \"2026-05-07T00:00:00Z\",\n  \"until\": \"2026-05-07T23:59:59Z\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d6502247-c49b-865b-8a00-99c787677f6a",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create a missed-event replay",
                "description": {
                  "content": "Queues redelivery of events the endpoint missed: deliveries that failed as well as\nevents never attempted (for example while the endpoint was paused). Events the\nendpoint already received successfully are skipped, so a replay never double-delivers.\nThe window runs from `since` (default: the last 24 hours) to `until`.\n\nThe `202` response means the replay is queued. Events are redelivered asynchronously\nand retried like any other delivery; no count or task ID is returned, so track results\nwith [List delivery attempts](https://bird.com/docs/api/reference/list-webhook-attempts).\n\nReplays are limited to 20 per organization per UTC day; beyond that the request\nreturns a `429` `WebhookReplayQuotaExceeded`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "replay"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"since\": \"2026-05-07T00:00:00Z\",\n  \"until\": \"2026-05-07T23:59:59Z\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "337bacbe-023f-8d3b-8cba-09a65059f227",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create a missed-event replay",
                "description": {
                  "content": "Queues redelivery of events the endpoint missed: deliveries that failed as well as\nevents never attempted (for example while the endpoint was paused). Events the\nendpoint already received successfully are skipped, so a replay never double-delivers.\nThe window runs from `since` (default: the last 24 hours) to `until`.\n\nThe `202` response means the replay is queued. Events are redelivered asynchronously\nand retried like any other delivery; no count or task ID is returned, so track results\nwith [List delivery attempts](https://bird.com/docs/api/reference/list-webhook-attempts).\n\nReplays are limited to 20 per organization per UTC day; beyond that the request\nreturns a `429` `WebhookReplayQuotaExceeded`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "replay"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"since\": \"2026-05-07T00:00:00Z\",\n  \"until\": \"2026-05-07T23:59:59Z\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f32a29f2-1ace-8211-8f3e-04b794ae4302",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Create a missed-event replay",
                "description": {
                  "content": "Queues redelivery of events the endpoint missed: deliveries that failed as well as\nevents never attempted (for example while the endpoint was paused). Events the\nendpoint already received successfully are skipped, so a replay never double-delivers.\nThe window runs from `since` (default: the last 24 hours) to `until`.\n\nThe `202` response means the replay is queued. Events are redelivered asynchronously\nand retried like any other delivery; no count or task ID is returned, so track results\nwith [List delivery attempts](https://bird.com/docs/api/reference/list-webhook-attempts).\n\nReplays are limited to 20 per organization per UTC day; beyond that the request\nreturns a `429` `WebhookReplayQuotaExceeded`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "replay"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"since\": \"2026-05-07T00:00:00Z\",\n  \"until\": \"2026-05-07T23:59:59Z\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6259fb78-24a8-89d4-8c62-8d31c3de779d",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create a missed-event replay",
                "description": {
                  "content": "Queues redelivery of events the endpoint missed: deliveries that failed as well as\nevents never attempted (for example while the endpoint was paused). Events the\nendpoint already received successfully are skipped, so a replay never double-delivers.\nThe window runs from `since` (default: the last 24 hours) to `until`.\n\nThe `202` response means the replay is queued. Events are redelivered asynchronously\nand retried like any other delivery; no count or task ID is returned, so track results\nwith [List delivery attempts](https://bird.com/docs/api/reference/list-webhook-attempts).\n\nReplays are limited to 20 per organization per UTC day; beyond that the request\nreturns a `429` `WebhookReplayQuotaExceeded`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "replay"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"since\": \"2026-05-07T00:00:00Z\",\n  \"until\": \"2026-05-07T23:59:59Z\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f87787c4-5cdd-8975-861e-b911c68ec8b7",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create a missed-event replay",
                "description": {
                  "content": "Queues redelivery of events the endpoint missed: deliveries that failed as well as\nevents never attempted (for example while the endpoint was paused). Events the\nendpoint already received successfully are skipped, so a replay never double-delivers.\nThe window runs from `since` (default: the last 24 hours) to `until`.\n\nThe `202` response means the replay is queued. Events are redelivered asynchronously\nand retried like any other delivery; no count or task ID is returned, so track results\nwith [List delivery attempts](https://bird.com/docs/api/reference/list-webhook-attempts).\n\nReplays are limited to 20 per organization per UTC day; beyond that the request\nreturns a `429` `WebhookReplayQuotaExceeded`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "replay"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"since\": \"2026-05-07T00:00:00Z\",\n  \"until\": \"2026-05-07T23:59:59Z\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "bc888781-acc4-815e-8611-deea247f3528",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create a missed-event replay",
                "description": {
                  "content": "Queues redelivery of events the endpoint missed: deliveries that failed as well as\nevents never attempted (for example while the endpoint was paused). Events the\nendpoint already received successfully are skipped, so a replay never double-delivers.\nThe window runs from `since` (default: the last 24 hours) to `until`.\n\nThe `202` response means the replay is queued. Events are redelivered asynchronously\nand retried like any other delivery; no count or task ID is returned, so track results\nwith [List delivery attempts](https://bird.com/docs/api/reference/list-webhook-attempts).\n\nReplays are limited to 20 per organization per UTC day; beyond that the request\nreturns a `429` `WebhookReplayQuotaExceeded`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "replay"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"since\": \"2026-05-07T00:00:00Z\",\n  \"until\": \"2026-05-07T23:59:59Z\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "b1d84e7e-7e9d-8a9c-865b-b5601b2f4dca",
          "name": "List delivery attempts",
          "request": {
            "name": "List delivery attempts",
            "description": {
              "content": "Returns the endpoint's recent delivery attempts, newest first. Each entry is one HTTP\nrequest, so a retried event appears once per try; use it to see what failed and why\nbefore requesting redelivery with\n[Replay missed events](https://bird.com/docs/api/reference/create-webhook-replay).\n\nBound the window with the `before`/`after` timestamps and cap the page with `limit`.\nTo page further back without a cursor, pass the oldest `attempted_at`\nyou received as `before`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "webhooks",
                ":webhook_id",
                "attempts"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "50",
                  "description": "Maximum number of attempts to return. Defaults to 50, capped at 100."
                },
                {
                  "disabled": true,
                  "key": "before",
                  "value": "",
                  "description": "Only return attempts strictly before this timestamp."
                },
                {
                  "disabled": true,
                  "key": "after",
                  "value": "",
                  "description": "Only return attempts strictly after this timestamp."
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                  "key": "webhook_id",
                  "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "f13b426c-f0d6-8126-803b-a5d5e5c94c29",
              "name": "Recent delivery attempts.",
              "originalRequest": {
                "name": "List delivery attempts",
                "description": {
                  "content": "Returns the endpoint's recent delivery attempts, newest first. Each entry is one HTTP\nrequest, so a retried event appears once per try; use it to see what failed and why\nbefore requesting redelivery with\n[Replay missed events](https://bird.com/docs/api/reference/create-webhook-replay).\n\nBound the window with the `before`/`after` timestamps and cap the page with `limit`.\nTo page further back without a cursor, pass the oldest `attempted_at`\nyou received as `before`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "attempts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of attempts to return. Defaults to 50, capped at 100."
                    },
                    {
                      "disabled": true,
                      "key": "before",
                      "value": "",
                      "description": "Only return attempts strictly before this timestamp."
                    },
                    {
                      "disabled": true,
                      "key": "after",
                      "value": "",
                      "description": "Only return attempts strictly after this timestamp."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"msgatt_3FdaB1NkOmM6m8AxhgEYTJgqHU3\",\n      \"event_id\": \"whe_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"event_type\": \"domain.failed\",\n      \"status\": \"delivered\",\n      \"url\": \"https://example.com/webhooks\",\n      \"response_status_code\": 200,\n      \"response_body\": \"{\\\"ok\\\":true}\",\n      \"response_duration_ms\": 87,\n      \"attempted_at\": \"2026-05-22T11:50:38.080Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "877c156e-d0af-82b9-8aa0-f7f6976ec75e",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List delivery attempts",
                "description": {
                  "content": "Returns the endpoint's recent delivery attempts, newest first. Each entry is one HTTP\nrequest, so a retried event appears once per try; use it to see what failed and why\nbefore requesting redelivery with\n[Replay missed events](https://bird.com/docs/api/reference/create-webhook-replay).\n\nBound the window with the `before`/`after` timestamps and cap the page with `limit`.\nTo page further back without a cursor, pass the oldest `attempted_at`\nyou received as `before`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "attempts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of attempts to return. Defaults to 50, capped at 100."
                    },
                    {
                      "disabled": true,
                      "key": "before",
                      "value": "",
                      "description": "Only return attempts strictly before this timestamp."
                    },
                    {
                      "disabled": true,
                      "key": "after",
                      "value": "",
                      "description": "Only return attempts strictly after this timestamp."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"msgatt_3FdaB1NkOmM6m8AxhgEYTJgqHU3\",\n      \"event_id\": \"whe_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"event_type\": \"domain.failed\",\n      \"status\": \"delivered\",\n      \"url\": \"https://example.com/webhooks\",\n      \"response_status_code\": 200,\n      \"response_body\": \"{\\\"ok\\\":true}\",\n      \"response_duration_ms\": 87,\n      \"attempted_at\": \"2026-05-22T11:50:38.080Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e0e41702-6a9d-826c-85fd-f06a7060a496",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List delivery attempts",
                "description": {
                  "content": "Returns the endpoint's recent delivery attempts, newest first. Each entry is one HTTP\nrequest, so a retried event appears once per try; use it to see what failed and why\nbefore requesting redelivery with\n[Replay missed events](https://bird.com/docs/api/reference/create-webhook-replay).\n\nBound the window with the `before`/`after` timestamps and cap the page with `limit`.\nTo page further back without a cursor, pass the oldest `attempted_at`\nyou received as `before`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "attempts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of attempts to return. Defaults to 50, capped at 100."
                    },
                    {
                      "disabled": true,
                      "key": "before",
                      "value": "",
                      "description": "Only return attempts strictly before this timestamp."
                    },
                    {
                      "disabled": true,
                      "key": "after",
                      "value": "",
                      "description": "Only return attempts strictly after this timestamp."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"msgatt_3FdaB1NkOmM6m8AxhgEYTJgqHU3\",\n      \"event_id\": \"whe_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"event_type\": \"domain.failed\",\n      \"status\": \"delivered\",\n      \"url\": \"https://example.com/webhooks\",\n      \"response_status_code\": 200,\n      \"response_body\": \"{\\\"ok\\\":true}\",\n      \"response_duration_ms\": 87,\n      \"attempted_at\": \"2026-05-22T11:50:38.080Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ff76c56e-9666-8576-8842-368b180023cd",
              "name": "Resource not found",
              "originalRequest": {
                "name": "List delivery attempts",
                "description": {
                  "content": "Returns the endpoint's recent delivery attempts, newest first. Each entry is one HTTP\nrequest, so a retried event appears once per try; use it to see what failed and why\nbefore requesting redelivery with\n[Replay missed events](https://bird.com/docs/api/reference/create-webhook-replay).\n\nBound the window with the `before`/`after` timestamps and cap the page with `limit`.\nTo page further back without a cursor, pass the oldest `attempted_at`\nyou received as `before`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "attempts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of attempts to return. Defaults to 50, capped at 100."
                    },
                    {
                      "disabled": true,
                      "key": "before",
                      "value": "",
                      "description": "Only return attempts strictly before this timestamp."
                    },
                    {
                      "disabled": true,
                      "key": "after",
                      "value": "",
                      "description": "Only return attempts strictly after this timestamp."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"msgatt_3FdaB1NkOmM6m8AxhgEYTJgqHU3\",\n      \"event_id\": \"whe_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"event_type\": \"domain.failed\",\n      \"status\": \"delivered\",\n      \"url\": \"https://example.com/webhooks\",\n      \"response_status_code\": 200,\n      \"response_body\": \"{\\\"ok\\\":true}\",\n      \"response_duration_ms\": 87,\n      \"attempted_at\": \"2026-05-22T11:50:38.080Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0b5950f8-fefa-8ace-8745-8ab82236700f",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List delivery attempts",
                "description": {
                  "content": "Returns the endpoint's recent delivery attempts, newest first. Each entry is one HTTP\nrequest, so a retried event appears once per try; use it to see what failed and why\nbefore requesting redelivery with\n[Replay missed events](https://bird.com/docs/api/reference/create-webhook-replay).\n\nBound the window with the `before`/`after` timestamps and cap the page with `limit`.\nTo page further back without a cursor, pass the oldest `attempted_at`\nyou received as `before`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "attempts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of attempts to return. Defaults to 50, capped at 100."
                    },
                    {
                      "disabled": true,
                      "key": "before",
                      "value": "",
                      "description": "Only return attempts strictly before this timestamp."
                    },
                    {
                      "disabled": true,
                      "key": "after",
                      "value": "",
                      "description": "Only return attempts strictly after this timestamp."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"msgatt_3FdaB1NkOmM6m8AxhgEYTJgqHU3\",\n      \"event_id\": \"whe_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"event_type\": \"domain.failed\",\n      \"status\": \"delivered\",\n      \"url\": \"https://example.com/webhooks\",\n      \"response_status_code\": 200,\n      \"response_body\": \"{\\\"ok\\\":true}\",\n      \"response_duration_ms\": 87,\n      \"attempted_at\": \"2026-05-22T11:50:38.080Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "beb8aeb8-e94a-8c85-8b5e-586eae974736",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List delivery attempts",
                "description": {
                  "content": "Returns the endpoint's recent delivery attempts, newest first. Each entry is one HTTP\nrequest, so a retried event appears once per try; use it to see what failed and why\nbefore requesting redelivery with\n[Replay missed events](https://bird.com/docs/api/reference/create-webhook-replay).\n\nBound the window with the `before`/`after` timestamps and cap the page with `limit`.\nTo page further back without a cursor, pass the oldest `attempted_at`\nyou received as `before`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "attempts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of attempts to return. Defaults to 50, capped at 100."
                    },
                    {
                      "disabled": true,
                      "key": "before",
                      "value": "",
                      "description": "Only return attempts strictly before this timestamp."
                    },
                    {
                      "disabled": true,
                      "key": "after",
                      "value": "",
                      "description": "Only return attempts strictly after this timestamp."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"msgatt_3FdaB1NkOmM6m8AxhgEYTJgqHU3\",\n      \"event_id\": \"whe_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"event_type\": \"domain.failed\",\n      \"status\": \"delivered\",\n      \"url\": \"https://example.com/webhooks\",\n      \"response_status_code\": 200,\n      \"response_body\": \"{\\\"ok\\\":true}\",\n      \"response_duration_ms\": 87,\n      \"attempted_at\": \"2026-05-22T11:50:38.080Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "eb475a2c-5dbf-8a17-8230-c54b04f0daa0",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List delivery attempts",
                "description": {
                  "content": "Returns the endpoint's recent delivery attempts, newest first. Each entry is one HTTP\nrequest, so a retried event appears once per try; use it to see what failed and why\nbefore requesting redelivery with\n[Replay missed events](https://bird.com/docs/api/reference/create-webhook-replay).\n\nBound the window with the `before`/`after` timestamps and cap the page with `limit`.\nTo page further back without a cursor, pass the oldest `attempted_at`\nyou received as `before`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhooks",
                    ":webhook_id",
                    "attempts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "50",
                      "description": "Maximum number of attempts to return. Defaults to 50, capped at 100."
                    },
                    {
                      "disabled": true,
                      "key": "before",
                      "value": "",
                      "description": "Only return attempts strictly before this timestamp."
                    },
                    {
                      "disabled": true,
                      "key": "after",
                      "value": "",
                      "description": "Only return attempts strictly after this timestamp."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "whk_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "webhook_id",
                      "description": "(Required) ID of the webhook endpoint (`whk_` prefix), as returned when it was created."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"msgatt_3FdaB1NkOmM6m8AxhgEYTJgqHU3\",\n      \"event_id\": \"whe_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"event_type\": \"domain.failed\",\n      \"status\": \"delivered\",\n      \"url\": \"https://example.com/webhooks\",\n      \"response_status_code\": 200,\n      \"response_body\": \"{\\\"ok\\\":true}\",\n      \"response_duration_ms\": 87,\n      \"attempted_at\": \"2026-05-22T11:50:38.080Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "8425919d-838f-8a59-8a5b-9f9fbe8ddf2e",
      "name": "numbers",
      "description": {
        "content": "Phone number catalog and purchasing.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "e567da44-e3a6-8271-8315-822f96602ee2",
          "name": "List your allocated numbers",
          "request": {
            "name": "List your allocated numbers",
            "description": {
              "content": "Returns a paginated list of the phone numbers currently allocated to your workspace, newest first. Each entry is either a dedicated number you bought or a shared number managed for you, as its `kind` field indicates. Pass `number` to look one up, or narrow the list with `country_code`, `number_type`, `prefix`, and `capabilities`. An allocated number is not always enough to send from it: some countries also require an approved registration for the sender.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "numbers"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "number",
                  "value": "",
                  "description": "Return only the number matching these digits. Give a full number with its country code, however your own records spell it: `+12025550188`, `12025550188`, `0012025550188`, and `+1 202 555 0188` all resolve to the same number. Spacing and punctuation are fine once a leading `+` or `00` marks the country code, or when `country_code` names the country; a grouped spelling without either is refused rather than guessed at, and a national spelling (bare digits without the country code) matches only when `country_code` names the country. A short code is matched on its bare digits instead, and since the same short code can be allocated in more than one country, pass `country_code` alongside it to name which one. This filter narrows the list like the others rather than replacing them, so a country or capability filter still applies. To match a range of numbers rather than one, use `prefix`."
                },
                {
                  "disabled": true,
                  "key": "country_code",
                  "value": "",
                  "description": "Filter by the country a number belongs to, as an ISO 3166-1 alpha-2 code."
                },
                {
                  "disabled": true,
                  "key": "number_type",
                  "value": "",
                  "description": "Return only allocated numbers of this physical type after applying the country and prefix filters."
                },
                {
                  "disabled": true,
                  "key": "prefix",
                  "value": "",
                  "description": "Return only numbers that start with these digits. With `country_code`, the digits are national ones, matched right after the country dial code: with `country_code=US`, `prefix=212` returns the +1 212 area-code numbers allocated to you. Leave out the dial code and any national dialing prefix such as a leading 0; short codes never match a country-anchored prefix search. Without `country_code`, the digits are matched from the start of each stored number, ignoring a leading `+`, so short codes are reachable and a full number in digits finds itself. Digits only: up to 10 of them with `country_code`, 15 without."
                },
                {
                  "disabled": true,
                  "key": "capabilities",
                  "value": "",
                  "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                },
                {
                  "disabled": true,
                  "key": "capabilities",
                  "value": "",
                  "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "67fcb291-75ca-8c41-8797-8e5a694fefd4",
              "name": "List of the numbers allocated to the workspace.",
              "originalRequest": {
                "name": "List your allocated numbers",
                "description": {
                  "content": "Returns a paginated list of the phone numbers currently allocated to your workspace, newest first. Each entry is either a dedicated number you bought or a shared number managed for you, as its `kind` field indicates. Pass `number` to look one up, or narrow the list with `country_code`, `number_type`, `prefix`, and `capabilities`. An allocated number is not always enough to send from it: some countries also require an approved registration for the sender.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "number",
                      "value": "",
                      "description": "Return only the number matching these digits. Give a full number with its country code, however your own records spell it: `+12025550188`, `12025550188`, `0012025550188`, and `+1 202 555 0188` all resolve to the same number. Spacing and punctuation are fine once a leading `+` or `00` marks the country code, or when `country_code` names the country; a grouped spelling without either is refused rather than guessed at, and a national spelling (bare digits without the country code) matches only when `country_code` names the country. A short code is matched on its bare digits instead, and since the same short code can be allocated in more than one country, pass `country_code` alongside it to name which one. This filter narrows the list like the others rather than replacing them, so a country or capability filter still applies. To match a range of numbers rather than one, use `prefix`."
                    },
                    {
                      "disabled": true,
                      "key": "country_code",
                      "value": "",
                      "description": "Filter by the country a number belongs to, as an ISO 3166-1 alpha-2 code."
                    },
                    {
                      "disabled": true,
                      "key": "number_type",
                      "value": "",
                      "description": "Return only allocated numbers of this physical type after applying the country and prefix filters."
                    },
                    {
                      "disabled": true,
                      "key": "prefix",
                      "value": "",
                      "description": "Return only numbers that start with these digits. With `country_code`, the digits are national ones, matched right after the country dial code: with `country_code=US`, `prefix=212` returns the +1 212 area-code numbers allocated to you. Leave out the dial code and any national dialing prefix such as a leading 0; short codes never match a country-anchored prefix search. Without `country_code`, the digits are matched from the start of each stored number, ignoring a leading `+`, so short codes are reachable and a full number in digits finds itself. Digits only: up to 10 of them with `country_code`, 15 without."
                    },
                    {
                      "disabled": true,
                      "key": "capabilities",
                      "value": "",
                      "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                    },
                    {
                      "disabled": true,
                      "key": "capabilities",
                      "value": "",
                      "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"kind\": \"dedicated\",\n      \"country_code\": \"US\",\n      \"number_type\": \"mobile\",\n      \"capabilities\": [\n        \"sms\"\n      ],\n      \"status\": \"active\",\n      \"ownership\": {\n        \"next\": [\n          {\n            \"kind\": \"operation\"\n          }\n        ]\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e1ac104f-b73a-885c-8437-c73be909a702",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List your allocated numbers",
                "description": {
                  "content": "Returns a paginated list of the phone numbers currently allocated to your workspace, newest first. Each entry is either a dedicated number you bought or a shared number managed for you, as its `kind` field indicates. Pass `number` to look one up, or narrow the list with `country_code`, `number_type`, `prefix`, and `capabilities`. An allocated number is not always enough to send from it: some countries also require an approved registration for the sender.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "number",
                      "value": "",
                      "description": "Return only the number matching these digits. Give a full number with its country code, however your own records spell it: `+12025550188`, `12025550188`, `0012025550188`, and `+1 202 555 0188` all resolve to the same number. Spacing and punctuation are fine once a leading `+` or `00` marks the country code, or when `country_code` names the country; a grouped spelling without either is refused rather than guessed at, and a national spelling (bare digits without the country code) matches only when `country_code` names the country. A short code is matched on its bare digits instead, and since the same short code can be allocated in more than one country, pass `country_code` alongside it to name which one. This filter narrows the list like the others rather than replacing them, so a country or capability filter still applies. To match a range of numbers rather than one, use `prefix`."
                    },
                    {
                      "disabled": true,
                      "key": "country_code",
                      "value": "",
                      "description": "Filter by the country a number belongs to, as an ISO 3166-1 alpha-2 code."
                    },
                    {
                      "disabled": true,
                      "key": "number_type",
                      "value": "",
                      "description": "Return only allocated numbers of this physical type after applying the country and prefix filters."
                    },
                    {
                      "disabled": true,
                      "key": "prefix",
                      "value": "",
                      "description": "Return only numbers that start with these digits. With `country_code`, the digits are national ones, matched right after the country dial code: with `country_code=US`, `prefix=212` returns the +1 212 area-code numbers allocated to you. Leave out the dial code and any national dialing prefix such as a leading 0; short codes never match a country-anchored prefix search. Without `country_code`, the digits are matched from the start of each stored number, ignoring a leading `+`, so short codes are reachable and a full number in digits finds itself. Digits only: up to 10 of them with `country_code`, 15 without."
                    },
                    {
                      "disabled": true,
                      "key": "capabilities",
                      "value": "",
                      "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                    },
                    {
                      "disabled": true,
                      "key": "capabilities",
                      "value": "",
                      "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"kind\": \"dedicated\",\n      \"country_code\": \"US\",\n      \"number_type\": \"mobile\",\n      \"capabilities\": [\n        \"sms\"\n      ],\n      \"status\": \"active\",\n      \"ownership\": {\n        \"next\": [\n          {\n            \"kind\": \"operation\"\n          }\n        ]\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0a3ca898-2aa6-8b8a-89b8-7ca96d5d9a33",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List your allocated numbers",
                "description": {
                  "content": "Returns a paginated list of the phone numbers currently allocated to your workspace, newest first. Each entry is either a dedicated number you bought or a shared number managed for you, as its `kind` field indicates. Pass `number` to look one up, or narrow the list with `country_code`, `number_type`, `prefix`, and `capabilities`. An allocated number is not always enough to send from it: some countries also require an approved registration for the sender.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "number",
                      "value": "",
                      "description": "Return only the number matching these digits. Give a full number with its country code, however your own records spell it: `+12025550188`, `12025550188`, `0012025550188`, and `+1 202 555 0188` all resolve to the same number. Spacing and punctuation are fine once a leading `+` or `00` marks the country code, or when `country_code` names the country; a grouped spelling without either is refused rather than guessed at, and a national spelling (bare digits without the country code) matches only when `country_code` names the country. A short code is matched on its bare digits instead, and since the same short code can be allocated in more than one country, pass `country_code` alongside it to name which one. This filter narrows the list like the others rather than replacing them, so a country or capability filter still applies. To match a range of numbers rather than one, use `prefix`."
                    },
                    {
                      "disabled": true,
                      "key": "country_code",
                      "value": "",
                      "description": "Filter by the country a number belongs to, as an ISO 3166-1 alpha-2 code."
                    },
                    {
                      "disabled": true,
                      "key": "number_type",
                      "value": "",
                      "description": "Return only allocated numbers of this physical type after applying the country and prefix filters."
                    },
                    {
                      "disabled": true,
                      "key": "prefix",
                      "value": "",
                      "description": "Return only numbers that start with these digits. With `country_code`, the digits are national ones, matched right after the country dial code: with `country_code=US`, `prefix=212` returns the +1 212 area-code numbers allocated to you. Leave out the dial code and any national dialing prefix such as a leading 0; short codes never match a country-anchored prefix search. Without `country_code`, the digits are matched from the start of each stored number, ignoring a leading `+`, so short codes are reachable and a full number in digits finds itself. Digits only: up to 10 of them with `country_code`, 15 without."
                    },
                    {
                      "disabled": true,
                      "key": "capabilities",
                      "value": "",
                      "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                    },
                    {
                      "disabled": true,
                      "key": "capabilities",
                      "value": "",
                      "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"kind\": \"dedicated\",\n      \"country_code\": \"US\",\n      \"number_type\": \"mobile\",\n      \"capabilities\": [\n        \"sms\"\n      ],\n      \"status\": \"active\",\n      \"ownership\": {\n        \"next\": [\n          {\n            \"kind\": \"operation\"\n          }\n        ]\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8c8c5257-f941-8eda-8b7d-83901dfdc78d",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List your allocated numbers",
                "description": {
                  "content": "Returns a paginated list of the phone numbers currently allocated to your workspace, newest first. Each entry is either a dedicated number you bought or a shared number managed for you, as its `kind` field indicates. Pass `number` to look one up, or narrow the list with `country_code`, `number_type`, `prefix`, and `capabilities`. An allocated number is not always enough to send from it: some countries also require an approved registration for the sender.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "number",
                      "value": "",
                      "description": "Return only the number matching these digits. Give a full number with its country code, however your own records spell it: `+12025550188`, `12025550188`, `0012025550188`, and `+1 202 555 0188` all resolve to the same number. Spacing and punctuation are fine once a leading `+` or `00` marks the country code, or when `country_code` names the country; a grouped spelling without either is refused rather than guessed at, and a national spelling (bare digits without the country code) matches only when `country_code` names the country. A short code is matched on its bare digits instead, and since the same short code can be allocated in more than one country, pass `country_code` alongside it to name which one. This filter narrows the list like the others rather than replacing them, so a country or capability filter still applies. To match a range of numbers rather than one, use `prefix`."
                    },
                    {
                      "disabled": true,
                      "key": "country_code",
                      "value": "",
                      "description": "Filter by the country a number belongs to, as an ISO 3166-1 alpha-2 code."
                    },
                    {
                      "disabled": true,
                      "key": "number_type",
                      "value": "",
                      "description": "Return only allocated numbers of this physical type after applying the country and prefix filters."
                    },
                    {
                      "disabled": true,
                      "key": "prefix",
                      "value": "",
                      "description": "Return only numbers that start with these digits. With `country_code`, the digits are national ones, matched right after the country dial code: with `country_code=US`, `prefix=212` returns the +1 212 area-code numbers allocated to you. Leave out the dial code and any national dialing prefix such as a leading 0; short codes never match a country-anchored prefix search. Without `country_code`, the digits are matched from the start of each stored number, ignoring a leading `+`, so short codes are reachable and a full number in digits finds itself. Digits only: up to 10 of them with `country_code`, 15 without."
                    },
                    {
                      "disabled": true,
                      "key": "capabilities",
                      "value": "",
                      "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                    },
                    {
                      "disabled": true,
                      "key": "capabilities",
                      "value": "",
                      "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"kind\": \"dedicated\",\n      \"country_code\": \"US\",\n      \"number_type\": \"mobile\",\n      \"capabilities\": [\n        \"sms\"\n      ],\n      \"status\": \"active\",\n      \"ownership\": {\n        \"next\": [\n          {\n            \"kind\": \"operation\"\n          }\n        ]\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e2f34f79-6508-8e84-8b52-a085865a3663",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List your allocated numbers",
                "description": {
                  "content": "Returns a paginated list of the phone numbers currently allocated to your workspace, newest first. Each entry is either a dedicated number you bought or a shared number managed for you, as its `kind` field indicates. Pass `number` to look one up, or narrow the list with `country_code`, `number_type`, `prefix`, and `capabilities`. An allocated number is not always enough to send from it: some countries also require an approved registration for the sender.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "number",
                      "value": "",
                      "description": "Return only the number matching these digits. Give a full number with its country code, however your own records spell it: `+12025550188`, `12025550188`, `0012025550188`, and `+1 202 555 0188` all resolve to the same number. Spacing and punctuation are fine once a leading `+` or `00` marks the country code, or when `country_code` names the country; a grouped spelling without either is refused rather than guessed at, and a national spelling (bare digits without the country code) matches only when `country_code` names the country. A short code is matched on its bare digits instead, and since the same short code can be allocated in more than one country, pass `country_code` alongside it to name which one. This filter narrows the list like the others rather than replacing them, so a country or capability filter still applies. To match a range of numbers rather than one, use `prefix`."
                    },
                    {
                      "disabled": true,
                      "key": "country_code",
                      "value": "",
                      "description": "Filter by the country a number belongs to, as an ISO 3166-1 alpha-2 code."
                    },
                    {
                      "disabled": true,
                      "key": "number_type",
                      "value": "",
                      "description": "Return only allocated numbers of this physical type after applying the country and prefix filters."
                    },
                    {
                      "disabled": true,
                      "key": "prefix",
                      "value": "",
                      "description": "Return only numbers that start with these digits. With `country_code`, the digits are national ones, matched right after the country dial code: with `country_code=US`, `prefix=212` returns the +1 212 area-code numbers allocated to you. Leave out the dial code and any national dialing prefix such as a leading 0; short codes never match a country-anchored prefix search. Without `country_code`, the digits are matched from the start of each stored number, ignoring a leading `+`, so short codes are reachable and a full number in digits finds itself. Digits only: up to 10 of them with `country_code`, 15 without."
                    },
                    {
                      "disabled": true,
                      "key": "capabilities",
                      "value": "",
                      "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                    },
                    {
                      "disabled": true,
                      "key": "capabilities",
                      "value": "",
                      "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"kind\": \"dedicated\",\n      \"country_code\": \"US\",\n      \"number_type\": \"mobile\",\n      \"capabilities\": [\n        \"sms\"\n      ],\n      \"status\": \"active\",\n      \"ownership\": {\n        \"next\": [\n          {\n            \"kind\": \"operation\"\n          }\n        ]\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e6be794d-517d-8112-8e66-feb8843f09bc",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List your allocated numbers",
                "description": {
                  "content": "Returns a paginated list of the phone numbers currently allocated to your workspace, newest first. Each entry is either a dedicated number you bought or a shared number managed for you, as its `kind` field indicates. Pass `number` to look one up, or narrow the list with `country_code`, `number_type`, `prefix`, and `capabilities`. An allocated number is not always enough to send from it: some countries also require an approved registration for the sender.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "number",
                      "value": "",
                      "description": "Return only the number matching these digits. Give a full number with its country code, however your own records spell it: `+12025550188`, `12025550188`, `0012025550188`, and `+1 202 555 0188` all resolve to the same number. Spacing and punctuation are fine once a leading `+` or `00` marks the country code, or when `country_code` names the country; a grouped spelling without either is refused rather than guessed at, and a national spelling (bare digits without the country code) matches only when `country_code` names the country. A short code is matched on its bare digits instead, and since the same short code can be allocated in more than one country, pass `country_code` alongside it to name which one. This filter narrows the list like the others rather than replacing them, so a country or capability filter still applies. To match a range of numbers rather than one, use `prefix`."
                    },
                    {
                      "disabled": true,
                      "key": "country_code",
                      "value": "",
                      "description": "Filter by the country a number belongs to, as an ISO 3166-1 alpha-2 code."
                    },
                    {
                      "disabled": true,
                      "key": "number_type",
                      "value": "",
                      "description": "Return only allocated numbers of this physical type after applying the country and prefix filters."
                    },
                    {
                      "disabled": true,
                      "key": "prefix",
                      "value": "",
                      "description": "Return only numbers that start with these digits. With `country_code`, the digits are national ones, matched right after the country dial code: with `country_code=US`, `prefix=212` returns the +1 212 area-code numbers allocated to you. Leave out the dial code and any national dialing prefix such as a leading 0; short codes never match a country-anchored prefix search. Without `country_code`, the digits are matched from the start of each stored number, ignoring a leading `+`, so short codes are reachable and a full number in digits finds itself. Digits only: up to 10 of them with `country_code`, 15 without."
                    },
                    {
                      "disabled": true,
                      "key": "capabilities",
                      "value": "",
                      "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                    },
                    {
                      "disabled": true,
                      "key": "capabilities",
                      "value": "",
                      "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"kind\": \"dedicated\",\n      \"country_code\": \"US\",\n      \"number_type\": \"mobile\",\n      \"capabilities\": [\n        \"sms\"\n      ],\n      \"status\": \"active\",\n      \"ownership\": {\n        \"next\": [\n          {\n            \"kind\": \"operation\"\n          }\n        ]\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "a6b0e46e-0fd8-8008-89ba-3e164d9119a3",
          "name": "List available phone numbers",
          "request": {
            "name": "List available phone numbers",
            "description": {
              "content": "Returns phone numbers available for purchase in a country, newest first. Narrow the search with `number_type`, `capabilities`, and `prefix`. Inventory numbers are returned first and support pagination. The final page can include a live snapshot of numbers available from suppliers.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "numbers",
                "available"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "country_code",
                  "value": "",
                  "description": "(Required) ISO 3166-1 alpha-2 country code to search in."
                },
                {
                  "disabled": true,
                  "key": "number_type",
                  "value": "",
                  "description": "Return only numbers of this physical type after applying the country and prefix filters."
                },
                {
                  "disabled": true,
                  "key": "prefix",
                  "value": "",
                  "description": "Return only numbers that start with these digits, matched right after the country dial code: with `country_code=US`, `prefix=212` matches +1 212 area-code numbers and `prefix=833` matches 833 toll-free numbers. Digits only. Leave out the country dial code and any national dialing prefix such as a leading 0. Short codes never match a prefix search."
                },
                {
                  "disabled": true,
                  "key": "capabilities",
                  "value": "",
                  "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                },
                {
                  "disabled": true,
                  "key": "capabilities",
                  "value": "",
                  "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "206f2ccd-1d21-875c-8bea-9947341182a0",
              "name": "List of available phone numbers.",
              "originalRequest": {
                "name": "List available phone numbers",
                "description": {
                  "content": "Returns phone numbers available for purchase in a country, newest first. Narrow the search with `number_type`, `capabilities`, and `prefix`. Inventory numbers are returned first and support pagination. The final page can include a live snapshot of numbers available from suppliers.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "available"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "country_code",
                      "value": "",
                      "description": "(Required) ISO 3166-1 alpha-2 country code to search in."
                    },
                    {
                      "disabled": true,
                      "key": "number_type",
                      "value": "",
                      "description": "Return only numbers of this physical type after applying the country and prefix filters."
                    },
                    {
                      "disabled": true,
                      "key": "prefix",
                      "value": "",
                      "description": "Return only numbers that start with these digits, matched right after the country dial code: with `country_code=US`, `prefix=212` matches +1 212 area-code numbers and `prefix=833` matches 833 toll-free numbers. Digits only. Leave out the country dial code and any national dialing prefix such as a leading 0. Short codes never match a prefix search."
                    },
                    {
                      "disabled": true,
                      "key": "capabilities",
                      "value": "",
                      "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                    },
                    {
                      "disabled": true,
                      "key": "capabilities",
                      "value": "",
                      "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"country_code\": \"US\",\n      \"number_type\": \"mobile\",\n      \"capabilities\": [\n        \"sms\"\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8c1053f4-fc3e-8c28-8ebc-330e0cbc0ccb",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List available phone numbers",
                "description": {
                  "content": "Returns phone numbers available for purchase in a country, newest first. Narrow the search with `number_type`, `capabilities`, and `prefix`. Inventory numbers are returned first and support pagination. The final page can include a live snapshot of numbers available from suppliers.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "available"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "country_code",
                      "value": "",
                      "description": "(Required) ISO 3166-1 alpha-2 country code to search in."
                    },
                    {
                      "disabled": true,
                      "key": "number_type",
                      "value": "",
                      "description": "Return only numbers of this physical type after applying the country and prefix filters."
                    },
                    {
                      "disabled": true,
                      "key": "prefix",
                      "value": "",
                      "description": "Return only numbers that start with these digits, matched right after the country dial code: with `country_code=US`, `prefix=212` matches +1 212 area-code numbers and `prefix=833` matches 833 toll-free numbers. Digits only. Leave out the country dial code and any national dialing prefix such as a leading 0. Short codes never match a prefix search."
                    },
                    {
                      "disabled": true,
                      "key": "capabilities",
                      "value": "",
                      "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                    },
                    {
                      "disabled": true,
                      "key": "capabilities",
                      "value": "",
                      "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"country_code\": \"US\",\n      \"number_type\": \"mobile\",\n      \"capabilities\": [\n        \"sms\"\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1932fdb6-44e6-8781-822d-6420e9892077",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List available phone numbers",
                "description": {
                  "content": "Returns phone numbers available for purchase in a country, newest first. Narrow the search with `number_type`, `capabilities`, and `prefix`. Inventory numbers are returned first and support pagination. The final page can include a live snapshot of numbers available from suppliers.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "available"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "country_code",
                      "value": "",
                      "description": "(Required) ISO 3166-1 alpha-2 country code to search in."
                    },
                    {
                      "disabled": true,
                      "key": "number_type",
                      "value": "",
                      "description": "Return only numbers of this physical type after applying the country and prefix filters."
                    },
                    {
                      "disabled": true,
                      "key": "prefix",
                      "value": "",
                      "description": "Return only numbers that start with these digits, matched right after the country dial code: with `country_code=US`, `prefix=212` matches +1 212 area-code numbers and `prefix=833` matches 833 toll-free numbers. Digits only. Leave out the country dial code and any national dialing prefix such as a leading 0. Short codes never match a prefix search."
                    },
                    {
                      "disabled": true,
                      "key": "capabilities",
                      "value": "",
                      "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                    },
                    {
                      "disabled": true,
                      "key": "capabilities",
                      "value": "",
                      "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"country_code\": \"US\",\n      \"number_type\": \"mobile\",\n      \"capabilities\": [\n        \"sms\"\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b2a90ac9-3bc6-8adf-8814-8d4053706771",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List available phone numbers",
                "description": {
                  "content": "Returns phone numbers available for purchase in a country, newest first. Narrow the search with `number_type`, `capabilities`, and `prefix`. Inventory numbers are returned first and support pagination. The final page can include a live snapshot of numbers available from suppliers.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "available"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "country_code",
                      "value": "",
                      "description": "(Required) ISO 3166-1 alpha-2 country code to search in."
                    },
                    {
                      "disabled": true,
                      "key": "number_type",
                      "value": "",
                      "description": "Return only numbers of this physical type after applying the country and prefix filters."
                    },
                    {
                      "disabled": true,
                      "key": "prefix",
                      "value": "",
                      "description": "Return only numbers that start with these digits, matched right after the country dial code: with `country_code=US`, `prefix=212` matches +1 212 area-code numbers and `prefix=833` matches 833 toll-free numbers. Digits only. Leave out the country dial code and any national dialing prefix such as a leading 0. Short codes never match a prefix search."
                    },
                    {
                      "disabled": true,
                      "key": "capabilities",
                      "value": "",
                      "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                    },
                    {
                      "disabled": true,
                      "key": "capabilities",
                      "value": "",
                      "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"country_code\": \"US\",\n      \"number_type\": \"mobile\",\n      \"capabilities\": [\n        \"sms\"\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fe69c8e1-cd8a-8106-8427-80ce73626012",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List available phone numbers",
                "description": {
                  "content": "Returns phone numbers available for purchase in a country, newest first. Narrow the search with `number_type`, `capabilities`, and `prefix`. Inventory numbers are returned first and support pagination. The final page can include a live snapshot of numbers available from suppliers.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "available"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "country_code",
                      "value": "",
                      "description": "(Required) ISO 3166-1 alpha-2 country code to search in."
                    },
                    {
                      "disabled": true,
                      "key": "number_type",
                      "value": "",
                      "description": "Return only numbers of this physical type after applying the country and prefix filters."
                    },
                    {
                      "disabled": true,
                      "key": "prefix",
                      "value": "",
                      "description": "Return only numbers that start with these digits, matched right after the country dial code: with `country_code=US`, `prefix=212` matches +1 212 area-code numbers and `prefix=833` matches 833 toll-free numbers. Digits only. Leave out the country dial code and any national dialing prefix such as a leading 0. Short codes never match a prefix search."
                    },
                    {
                      "disabled": true,
                      "key": "capabilities",
                      "value": "",
                      "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                    },
                    {
                      "disabled": true,
                      "key": "capabilities",
                      "value": "",
                      "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"country_code\": \"US\",\n      \"number_type\": \"mobile\",\n      \"capabilities\": [\n        \"sms\"\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b367a722-db76-833c-885d-03fcbdab569e",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List available phone numbers",
                "description": {
                  "content": "Returns phone numbers available for purchase in a country, newest first. Narrow the search with `number_type`, `capabilities`, and `prefix`. Inventory numbers are returned first and support pagination. The final page can include a live snapshot of numbers available from suppliers.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "available"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "country_code",
                      "value": "",
                      "description": "(Required) ISO 3166-1 alpha-2 country code to search in."
                    },
                    {
                      "disabled": true,
                      "key": "number_type",
                      "value": "",
                      "description": "Return only numbers of this physical type after applying the country and prefix filters."
                    },
                    {
                      "disabled": true,
                      "key": "prefix",
                      "value": "",
                      "description": "Return only numbers that start with these digits, matched right after the country dial code: with `country_code=US`, `prefix=212` matches +1 212 area-code numbers and `prefix=833` matches 833 toll-free numbers. Digits only. Leave out the country dial code and any national dialing prefix such as a leading 0. Short codes never match a prefix search."
                    },
                    {
                      "disabled": true,
                      "key": "capabilities",
                      "value": "",
                      "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                    },
                    {
                      "disabled": true,
                      "key": "capabilities",
                      "value": "",
                      "description": "Filter by capability. Repeat the parameter to require several at once: `capabilities=sms&capabilities=voice` returns only numbers that support both."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"country_code\": \"US\",\n      \"number_type\": \"mobile\",\n      \"capabilities\": [\n        \"sms\"\n      ]\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "9123af7c-a6b6-848b-8e09-648f2e91d20e",
          "name": "Get an available phone number",
          "request": {
            "name": "Get an available phone number",
            "description": {
              "content": "Returns a single phone number available for purchase, whether it is already in inventory or can be acquired for you. Numbers supplied through a carrier remain available only while the carrier has them, so a number listed a moment ago may already be gone. A `404` means the number is currently unavailable for sale.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "numbers",
                "available",
                ":number"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "number",
                  "description": "(Required) Phone number in E.164 format. The leading `+` is optional."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "af424648-025d-8628-88bc-f82a1ba5a6d6",
              "name": "The available phone number.",
              "originalRequest": {
                "name": "Get an available phone number",
                "description": {
                  "content": "Returns a single phone number available for purchase, whether it is already in inventory or can be acquired for you. Numbers supplied through a carrier remain available only while the carrier has them, so a number listed a moment ago may already be gone. A `404` means the number is currently unavailable for sale.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "available",
                    ":number"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number",
                      "description": "(Required) Phone number in E.164 format. The leading `+` is optional."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"capabilities\": [\n    \"sms\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "80a36940-f105-8a26-8d5b-d0552fb91f72",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get an available phone number",
                "description": {
                  "content": "Returns a single phone number available for purchase, whether it is already in inventory or can be acquired for you. Numbers supplied through a carrier remain available only while the carrier has them, so a number listed a moment ago may already be gone. A `404` means the number is currently unavailable for sale.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "available",
                    ":number"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number",
                      "description": "(Required) Phone number in E.164 format. The leading `+` is optional."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"capabilities\": [\n    \"sms\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ae600ad8-b11d-84ad-83ee-319aa5185f71",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get an available phone number",
                "description": {
                  "content": "Returns a single phone number available for purchase, whether it is already in inventory or can be acquired for you. Numbers supplied through a carrier remain available only while the carrier has them, so a number listed a moment ago may already be gone. A `404` means the number is currently unavailable for sale.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "available",
                    ":number"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number",
                      "description": "(Required) Phone number in E.164 format. The leading `+` is optional."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"capabilities\": [\n    \"sms\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "508d4acd-74a2-8883-8302-1054895427b1",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get an available phone number",
                "description": {
                  "content": "Returns a single phone number available for purchase, whether it is already in inventory or can be acquired for you. Numbers supplied through a carrier remain available only while the carrier has them, so a number listed a moment ago may already be gone. A `404` means the number is currently unavailable for sale.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "available",
                    ":number"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number",
                      "description": "(Required) Phone number in E.164 format. The leading `+` is optional."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"capabilities\": [\n    \"sms\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e121d144-7435-89e1-83ae-04acf8d4a510",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get an available phone number",
                "description": {
                  "content": "Returns a single phone number available for purchase, whether it is already in inventory or can be acquired for you. Numbers supplied through a carrier remain available only while the carrier has them, so a number listed a moment ago may already be gone. A `404` means the number is currently unavailable for sale.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "available",
                    ":number"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number",
                      "description": "(Required) Phone number in E.164 format. The leading `+` is optional."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"capabilities\": [\n    \"sms\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "28d2bb95-380b-809b-830b-9a39b3b72362",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get an available phone number",
                "description": {
                  "content": "Returns a single phone number available for purchase, whether it is already in inventory or can be acquired for you. Numbers supplied through a carrier remain available only while the carrier has them, so a number listed a moment ago may already be gone. A `404` means the number is currently unavailable for sale.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "available",
                    ":number"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number",
                      "description": "(Required) Phone number in E.164 format. The leading `+` is optional."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"capabilities\": [\n    \"sms\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3a8e891a-d94d-87fc-8a38-064d3757d93f",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get an available phone number",
                "description": {
                  "content": "Returns a single phone number available for purchase, whether it is already in inventory or can be acquired for you. Numbers supplied through a carrier remain available only while the carrier has them, so a number listed a moment ago may already be gone. A `404` means the number is currently unavailable for sale.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "available",
                    ":number"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number",
                      "description": "(Required) Phone number in E.164 format. The leading `+` is optional."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"capabilities\": [\n    \"sms\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "0948e476-8c3e-8b09-8ec5-33bdb5ce3c12",
          "name": "Create a number order",
          "request": {
            "name": "Create a number order",
            "description": {
              "content": "Orders a number for your workspace and starts its monthly charge. Pass a\nnumber from `GET /v1/numbers/available`. Whether the number is already in\ninventory or acquired from a supplier, the response contains an order.\n\nMost orders complete immediately and return `201` with `status` of\n`completed` and `number_id` populated. Read the number with\n`GET /v1/numbers/{number_id}`. An order that cannot complete in the request\nreturns `202`; poll `GET /v1/numbers/orders/{order_id}` until it is\n`completed` or `failed`.\n\nA `412` means the workspace has not\ncompleted the identity verification required to acquire a sender. Complete\nit, then retry.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "numbers",
                "orders"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"number\": \"+18005550100\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "fe74dec3-fd5e-81ef-817f-2a7961977d0a",
              "name": "The order completed and the number is now allocated to your workspace. Its status is completed, with number and number_id populated.",
              "originalRequest": {
                "name": "Create a number order",
                "description": {
                  "content": "Orders a number for your workspace and starts its monthly charge. Pass a\nnumber from `GET /v1/numbers/available`. Whether the number is already in\ninventory or acquired from a supplier, the response contains an order.\n\nMost orders complete immediately and return `201` with `status` of\n`completed` and `number_id` populated. Read the number with\n`GET /v1/numbers/{number_id}`. An order that cannot complete in the request\nreturns `202`; poll `GET /v1/numbers/orders/{order_id}` until it is\n`completed` or `failed`.\n\nA `412` means the workspace has not\ncompleted the identity verification required to acquire a sender. Complete\nit, then retry.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"number\": \"+18005550100\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nor_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"status\": \"charging\",\n  \"number_id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "bccf637b-b027-865c-8db5-de1f4177949c",
              "name": "The order was accepted but could not complete in this request. Poll it for completion.",
              "originalRequest": {
                "name": "Create a number order",
                "description": {
                  "content": "Orders a number for your workspace and starts its monthly charge. Pass a\nnumber from `GET /v1/numbers/available`. Whether the number is already in\ninventory or acquired from a supplier, the response contains an order.\n\nMost orders complete immediately and return `201` with `status` of\n`completed` and `number_id` populated. Read the number with\n`GET /v1/numbers/{number_id}`. An order that cannot complete in the request\nreturns `202`; poll `GET /v1/numbers/orders/{order_id}` until it is\n`completed` or `failed`.\n\nA `412` means the workspace has not\ncompleted the identity verification required to acquire a sender. Complete\nit, then retry.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"number\": \"+18005550100\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Accepted",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nor_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"status\": \"charging\",\n  \"number_id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2ffcab12-4551-8154-883d-185175cf4492",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create a number order",
                "description": {
                  "content": "Orders a number for your workspace and starts its monthly charge. Pass a\nnumber from `GET /v1/numbers/available`. Whether the number is already in\ninventory or acquired from a supplier, the response contains an order.\n\nMost orders complete immediately and return `201` with `status` of\n`completed` and `number_id` populated. Read the number with\n`GET /v1/numbers/{number_id}`. An order that cannot complete in the request\nreturns `202`; poll `GET /v1/numbers/orders/{order_id}` until it is\n`completed` or `failed`.\n\nA `412` means the workspace has not\ncompleted the identity verification required to acquire a sender. Complete\nit, then retry.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"number\": \"+18005550100\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nor_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"status\": \"charging\",\n  \"number_id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a577ab5c-c396-8cfd-8301-793b8df4dd8f",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create a number order",
                "description": {
                  "content": "Orders a number for your workspace and starts its monthly charge. Pass a\nnumber from `GET /v1/numbers/available`. Whether the number is already in\ninventory or acquired from a supplier, the response contains an order.\n\nMost orders complete immediately and return `201` with `status` of\n`completed` and `number_id` populated. Read the number with\n`GET /v1/numbers/{number_id}`. An order that cannot complete in the request\nreturns `202`; poll `GET /v1/numbers/orders/{order_id}` until it is\n`completed` or `failed`.\n\nA `412` means the workspace has not\ncompleted the identity verification required to acquire a sender. Complete\nit, then retry.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"number\": \"+18005550100\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nor_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"status\": \"charging\",\n  \"number_id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "72b82566-f3d7-898f-89d7-872b45d43e56",
              "name": "Insufficient balance",
              "originalRequest": {
                "name": "Create a number order",
                "description": {
                  "content": "Orders a number for your workspace and starts its monthly charge. Pass a\nnumber from `GET /v1/numbers/available`. Whether the number is already in\ninventory or acquired from a supplier, the response contains an order.\n\nMost orders complete immediately and return `201` with `status` of\n`completed` and `number_id` populated. Read the number with\n`GET /v1/numbers/{number_id}`. An order that cannot complete in the request\nreturns `202`; poll `GET /v1/numbers/orders/{order_id}` until it is\n`completed` or `failed`.\n\nA `412` means the workspace has not\ncompleted the identity verification required to acquire a sender. Complete\nit, then retry.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"number\": \"+18005550100\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Payment Required",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nor_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"status\": \"charging\",\n  \"number_id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "51a9bf90-2e5a-8dce-85c9-0cd98bde4a6a",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create a number order",
                "description": {
                  "content": "Orders a number for your workspace and starts its monthly charge. Pass a\nnumber from `GET /v1/numbers/available`. Whether the number is already in\ninventory or acquired from a supplier, the response contains an order.\n\nMost orders complete immediately and return `201` with `status` of\n`completed` and `number_id` populated. Read the number with\n`GET /v1/numbers/{number_id}`. An order that cannot complete in the request\nreturns `202`; poll `GET /v1/numbers/orders/{order_id}` until it is\n`completed` or `failed`.\n\nA `412` means the workspace has not\ncompleted the identity verification required to acquire a sender. Complete\nit, then retry.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"number\": \"+18005550100\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nor_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"status\": \"charging\",\n  \"number_id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "957bb4b7-9b0b-8bc8-8089-203982ba4b11",
              "name": "Resource conflict",
              "originalRequest": {
                "name": "Create a number order",
                "description": {
                  "content": "Orders a number for your workspace and starts its monthly charge. Pass a\nnumber from `GET /v1/numbers/available`. Whether the number is already in\ninventory or acquired from a supplier, the response contains an order.\n\nMost orders complete immediately and return `201` with `status` of\n`completed` and `number_id` populated. Read the number with\n`GET /v1/numbers/{number_id}`. An order that cannot complete in the request\nreturns `202`; poll `GET /v1/numbers/orders/{order_id}` until it is\n`completed` or `failed`.\n\nA `412` means the workspace has not\ncompleted the identity verification required to acquire a sender. Complete\nit, then retry.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"number\": \"+18005550100\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nor_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"status\": \"charging\",\n  \"number_id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "acc6f960-66a0-86c8-87a9-f56834e31581",
              "name": "Precondition failed",
              "originalRequest": {
                "name": "Create a number order",
                "description": {
                  "content": "Orders a number for your workspace and starts its monthly charge. Pass a\nnumber from `GET /v1/numbers/available`. Whether the number is already in\ninventory or acquired from a supplier, the response contains an order.\n\nMost orders complete immediately and return `201` with `status` of\n`completed` and `number_id` populated. Read the number with\n`GET /v1/numbers/{number_id}`. An order that cannot complete in the request\nreturns `202`; poll `GET /v1/numbers/orders/{order_id}` until it is\n`completed` or `failed`.\n\nA `412` means the workspace has not\ncompleted the identity verification required to acquire a sender. Complete\nit, then retry.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"number\": \"+18005550100\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Precondition Failed",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nor_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"status\": \"charging\",\n  \"number_id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0c7c70f3-ba4c-8de1-89ca-8294bc80ae73",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create a number order",
                "description": {
                  "content": "Orders a number for your workspace and starts its monthly charge. Pass a\nnumber from `GET /v1/numbers/available`. Whether the number is already in\ninventory or acquired from a supplier, the response contains an order.\n\nMost orders complete immediately and return `201` with `status` of\n`completed` and `number_id` populated. Read the number with\n`GET /v1/numbers/{number_id}`. An order that cannot complete in the request\nreturns `202`; poll `GET /v1/numbers/orders/{order_id}` until it is\n`completed` or `failed`.\n\nA `412` means the workspace has not\ncompleted the identity verification required to acquire a sender. Complete\nit, then retry.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"number\": \"+18005550100\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nor_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"status\": \"charging\",\n  \"number_id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f6499719-8dff-8e4c-8c0b-0ecac78b9549",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create a number order",
                "description": {
                  "content": "Orders a number for your workspace and starts its monthly charge. Pass a\nnumber from `GET /v1/numbers/available`. Whether the number is already in\ninventory or acquired from a supplier, the response contains an order.\n\nMost orders complete immediately and return `201` with `status` of\n`completed` and `number_id` populated. Read the number with\n`GET /v1/numbers/{number_id}`. An order that cannot complete in the request\nreturns `202`; poll `GET /v1/numbers/orders/{order_id}` until it is\n`completed` or `failed`.\n\nA `412` means the workspace has not\ncompleted the identity verification required to acquire a sender. Complete\nit, then retry.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"number\": \"+18005550100\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 201,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nor_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"status\": \"charging\",\n  \"number_id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1ddca8d2-1ac7-860a-86c4-810ccc789498",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create a number order",
                "description": {
                  "content": "Orders a number for your workspace and starts its monthly charge. Pass a\nnumber from `GET /v1/numbers/available`. Whether the number is already in\ninventory or acquired from a supplier, the response contains an order.\n\nMost orders complete immediately and return `201` with `status` of\n`completed` and `number_id` populated. Read the number with\n`GET /v1/numbers/{number_id}`. An order that cannot complete in the request\nreturns `202`; poll `GET /v1/numbers/orders/{order_id}` until it is\n`completed` or `failed`.\n\nA `412` means the workspace has not\ncompleted the identity verification required to acquire a sender. Complete\nit, then retry.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"number\": \"+18005550100\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nor_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"status\": \"charging\",\n  \"number_id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "bbcb90cc-959f-828d-8c93-543c908c08b6",
          "name": "List your number orders",
          "request": {
            "name": "List your number orders",
            "description": {
              "content": "Returns your workspace's number orders, newest first. Filter by status to find in-progress or failed orders.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "numbers",
                "orders"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "status",
                  "value": "",
                  "description": "Return only orders with status `charging`, `ordering`, `pending`, `completed`, or `failed`."
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "e9578cc6-77c0-88a4-86fd-efe2afd4b89f",
              "name": "List of the workspace's number orders.",
              "originalRequest": {
                "name": "List your number orders",
                "description": {
                  "content": "Returns your workspace's number orders, newest first. Filter by status to find in-progress or failed orders.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Return only orders with status `charging`, `ordering`, `pending`, `completed`, or `failed`."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"nor_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"country_code\": \"US\",\n      \"number_type\": \"mobile\",\n      \"status\": \"charging\",\n      \"number_id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "829dc938-3c91-880f-8534-b4b1f37cfbdb",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List your number orders",
                "description": {
                  "content": "Returns your workspace's number orders, newest first. Filter by status to find in-progress or failed orders.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Return only orders with status `charging`, `ordering`, `pending`, `completed`, or `failed`."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"nor_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"country_code\": \"US\",\n      \"number_type\": \"mobile\",\n      \"status\": \"charging\",\n      \"number_id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8a7d7904-108b-8f5d-82c8-51a5684d7a26",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List your number orders",
                "description": {
                  "content": "Returns your workspace's number orders, newest first. Filter by status to find in-progress or failed orders.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Return only orders with status `charging`, `ordering`, `pending`, `completed`, or `failed`."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"nor_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"country_code\": \"US\",\n      \"number_type\": \"mobile\",\n      \"status\": \"charging\",\n      \"number_id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7ec45482-6b07-8fa6-8003-7e9b69aee7dd",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List your number orders",
                "description": {
                  "content": "Returns your workspace's number orders, newest first. Filter by status to find in-progress or failed orders.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Return only orders with status `charging`, `ordering`, `pending`, `completed`, or `failed`."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"nor_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"country_code\": \"US\",\n      \"number_type\": \"mobile\",\n      \"status\": \"charging\",\n      \"number_id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "01584df6-b66d-89eb-8e11-16c4daaef0a1",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List your number orders",
                "description": {
                  "content": "Returns your workspace's number orders, newest first. Filter by status to find in-progress or failed orders.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Return only orders with status `charging`, `ordering`, `pending`, `completed`, or `failed`."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"nor_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"country_code\": \"US\",\n      \"number_type\": \"mobile\",\n      \"status\": \"charging\",\n      \"number_id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f0dc2fdd-93ef-8205-88c9-55a1b3544a9a",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List your number orders",
                "description": {
                  "content": "Returns your workspace's number orders, newest first. Filter by status to find in-progress or failed orders.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "orders"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Return only orders with status `charging`, `ordering`, `pending`, `completed`, or `failed`."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"nor_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"country_code\": \"US\",\n      \"number_type\": \"mobile\",\n      \"status\": \"charging\",\n      \"number_id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "a8da5e94-7f90-8e11-8216-d18ab2ca2795",
          "name": "Get a number order",
          "request": {
            "name": "Get a number order",
            "description": {
              "content": "Returns a single number order by id, including its current lifecycle state and, once completed, the number it produced.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "numbers",
                "orders",
                ":order_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "order_id",
                  "description": "(Required) Identifier of the order."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "04c96e9c-a628-88c7-86c6-cf9003585218",
              "name": "The order.",
              "originalRequest": {
                "name": "Get a number order",
                "description": {
                  "content": "Returns a single number order by id, including its current lifecycle state and, once completed, the number it produced.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "orders",
                    ":order_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "order_id",
                      "description": "(Required) Identifier of the order."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nor_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"status\": \"charging\",\n  \"number_id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fa834983-adc8-8a93-841d-3205a583e7e0",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a number order",
                "description": {
                  "content": "Returns a single number order by id, including its current lifecycle state and, once completed, the number it produced.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "orders",
                    ":order_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "order_id",
                      "description": "(Required) Identifier of the order."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nor_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"status\": \"charging\",\n  \"number_id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9e24cb89-2737-8ebd-8934-7a488d89f063",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a number order",
                "description": {
                  "content": "Returns a single number order by id, including its current lifecycle state and, once completed, the number it produced.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "orders",
                    ":order_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "order_id",
                      "description": "(Required) Identifier of the order."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nor_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"status\": \"charging\",\n  \"number_id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "28d52d51-cd87-881c-8e1e-d3cedfce2309",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a number order",
                "description": {
                  "content": "Returns a single number order by id, including its current lifecycle state and, once completed, the number it produced.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "orders",
                    ":order_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "order_id",
                      "description": "(Required) Identifier of the order."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nor_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"status\": \"charging\",\n  \"number_id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "25ed393f-9186-846a-84c1-dfef367335f9",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a number order",
                "description": {
                  "content": "Returns a single number order by id, including its current lifecycle state and, once completed, the number it produced.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "orders",
                    ":order_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "order_id",
                      "description": "(Required) Identifier of the order."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nor_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"status\": \"charging\",\n  \"number_id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2ead4e7e-b1f6-828e-84b5-13cedf9fa78f",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a number order",
                "description": {
                  "content": "Returns a single number order by id, including its current lifecycle state and, once completed, the number it produced.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "orders",
                    ":order_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "order_id",
                      "description": "(Required) Identifier of the order."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nor_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"status\": \"charging\",\n  \"number_id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6c774b95-36ed-8a48-8d9d-52b98bb83fef",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a number order",
                "description": {
                  "content": "Returns a single number order by id, including its current lifecycle state and, once completed, the number it produced.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    "orders",
                    ":order_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "order_id",
                      "description": "(Required) Identifier of the order."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nor_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"status\": \"charging\",\n  \"number_id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "68e8b4a0-65b2-8354-88a0-805e4e387a4d",
          "name": "Get an allocated number",
          "request": {
            "name": "Get an allocated number",
            "description": {
              "content": "Returns a single phone number allocated to your workspace, whether it is a dedicated number you bought or a shared number managed for you. Numbers you have released are no longer returned. An allocated number is not always enough to send from it: some countries also require an approved registration for the sender.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "numbers",
                ":number_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "number_id",
                  "description": "(Required) Identifier of the number, as returned in the id field of GET /v1/numbers."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "c4e22b7f-5832-82fb-8a7c-3dc1beda36e1",
              "name": "The number.",
              "originalRequest": {
                "name": "Get an allocated number",
                "description": {
                  "content": "Returns a single phone number allocated to your workspace, whether it is a dedicated number you bought or a shared number managed for you. Numbers you have released are no longer returned. An allocated number is not always enough to send from it: some countries also require an approved registration for the sender.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    ":number_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number_id",
                      "description": "(Required) Identifier of the number, as returned in the id field of GET /v1/numbers."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"kind\": \"dedicated\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"capabilities\": [\n    \"sms\"\n  ],\n  \"status\": \"active\",\n  \"ownership\": {\n    \"next\": [\n      {\n        \"kind\": \"operation\"\n      }\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c952f3b2-7221-8d80-8a6a-5d1256825bbe",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get an allocated number",
                "description": {
                  "content": "Returns a single phone number allocated to your workspace, whether it is a dedicated number you bought or a shared number managed for you. Numbers you have released are no longer returned. An allocated number is not always enough to send from it: some countries also require an approved registration for the sender.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    ":number_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number_id",
                      "description": "(Required) Identifier of the number, as returned in the id field of GET /v1/numbers."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"kind\": \"dedicated\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"capabilities\": [\n    \"sms\"\n  ],\n  \"status\": \"active\",\n  \"ownership\": {\n    \"next\": [\n      {\n        \"kind\": \"operation\"\n      }\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f75d1830-0b8f-8d2c-8d2b-266022c2aa9a",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get an allocated number",
                "description": {
                  "content": "Returns a single phone number allocated to your workspace, whether it is a dedicated number you bought or a shared number managed for you. Numbers you have released are no longer returned. An allocated number is not always enough to send from it: some countries also require an approved registration for the sender.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    ":number_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number_id",
                      "description": "(Required) Identifier of the number, as returned in the id field of GET /v1/numbers."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"kind\": \"dedicated\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"capabilities\": [\n    \"sms\"\n  ],\n  \"status\": \"active\",\n  \"ownership\": {\n    \"next\": [\n      {\n        \"kind\": \"operation\"\n      }\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "279c7b52-8fa2-8290-8c4c-8b5b7d892bca",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get an allocated number",
                "description": {
                  "content": "Returns a single phone number allocated to your workspace, whether it is a dedicated number you bought or a shared number managed for you. Numbers you have released are no longer returned. An allocated number is not always enough to send from it: some countries also require an approved registration for the sender.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    ":number_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number_id",
                      "description": "(Required) Identifier of the number, as returned in the id field of GET /v1/numbers."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"kind\": \"dedicated\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"capabilities\": [\n    \"sms\"\n  ],\n  \"status\": \"active\",\n  \"ownership\": {\n    \"next\": [\n      {\n        \"kind\": \"operation\"\n      }\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1fa2331f-1f03-8e8b-811a-0335f2985d1f",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get an allocated number",
                "description": {
                  "content": "Returns a single phone number allocated to your workspace, whether it is a dedicated number you bought or a shared number managed for you. Numbers you have released are no longer returned. An allocated number is not always enough to send from it: some countries also require an approved registration for the sender.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    ":number_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number_id",
                      "description": "(Required) Identifier of the number, as returned in the id field of GET /v1/numbers."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"kind\": \"dedicated\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"capabilities\": [\n    \"sms\"\n  ],\n  \"status\": \"active\",\n  \"ownership\": {\n    \"next\": [\n      {\n        \"kind\": \"operation\"\n      }\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1ba6947f-20ce-8de2-8261-8b57fbfaf189",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get an allocated number",
                "description": {
                  "content": "Returns a single phone number allocated to your workspace, whether it is a dedicated number you bought or a shared number managed for you. Numbers you have released are no longer returned. An allocated number is not always enough to send from it: some countries also require an approved registration for the sender.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    ":number_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number_id",
                      "description": "(Required) Identifier of the number, as returned in the id field of GET /v1/numbers."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"kind\": \"dedicated\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"capabilities\": [\n    \"sms\"\n  ],\n  \"status\": \"active\",\n  \"ownership\": {\n    \"next\": [\n      {\n        \"kind\": \"operation\"\n      }\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c33b67c2-8b32-8314-88c4-c743c9ba4b8d",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get an allocated number",
                "description": {
                  "content": "Returns a single phone number allocated to your workspace, whether it is a dedicated number you bought or a shared number managed for you. Numbers you have released are no longer returned. An allocated number is not always enough to send from it: some countries also require an approved registration for the sender.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    ":number_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number_id",
                      "description": "(Required) Identifier of the number, as returned in the id field of GET /v1/numbers."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"nda_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"kind\": \"dedicated\",\n  \"country_code\": \"US\",\n  \"number_type\": \"mobile\",\n  \"capabilities\": [\n    \"sms\"\n  ],\n  \"status\": \"active\",\n  \"ownership\": {\n    \"next\": [\n      {\n        \"kind\": \"operation\"\n      }\n    ]\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "82b16dfb-cdb3-854c-814c-10e69220fc14",
          "name": "Release a dedicated number",
          "request": {
            "name": "Release a dedicated number",
            "description": {
              "content": "Releases one of your workspace's dedicated numbers and stops its monthly charge. Your workspace can no longer use the number after release. Shared numbers belong to Bird-managed shared infrastructure and cannot be released from your workspace.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "numbers",
                ":number_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "number_id",
                  "description": "(Required) Identifier of the number to release, as returned in the id field of GET /v1/numbers."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "DELETE"
          },
          "response": [
            {
              "id": "72a91daf-f74a-83c0-82d3-bec2fd686667",
              "name": "Number released.",
              "originalRequest": {
                "name": "Release a dedicated number",
                "description": {
                  "content": "Releases one of your workspace's dedicated numbers and stops its monthly charge. Your workspace can no longer use the number after release. Shared numbers belong to Bird-managed shared infrastructure and cannot be released from your workspace.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    ":number_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number_id",
                      "description": "(Required) Identifier of the number to release, as returned in the id field of GET /v1/numbers."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "5b01d617-e0e0-8455-80fc-6f632fe8f255",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Release a dedicated number",
                "description": {
                  "content": "Releases one of your workspace's dedicated numbers and stops its monthly charge. Your workspace can no longer use the number after release. Shared numbers belong to Bird-managed shared infrastructure and cannot be released from your workspace.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    ":number_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number_id",
                      "description": "(Required) Identifier of the number to release, as returned in the id field of GET /v1/numbers."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8b234966-aa9f-89f4-8dc2-832a8338f5f6",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Release a dedicated number",
                "description": {
                  "content": "Releases one of your workspace's dedicated numbers and stops its monthly charge. Your workspace can no longer use the number after release. Shared numbers belong to Bird-managed shared infrastructure and cannot be released from your workspace.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    ":number_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number_id",
                      "description": "(Required) Identifier of the number to release, as returned in the id field of GET /v1/numbers."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "85b3b04e-58ba-85d8-81ae-2a78d4cfa59b",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Release a dedicated number",
                "description": {
                  "content": "Releases one of your workspace's dedicated numbers and stops its monthly charge. Your workspace can no longer use the number after release. Shared numbers belong to Bird-managed shared infrastructure and cannot be released from your workspace.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    ":number_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number_id",
                      "description": "(Required) Identifier of the number to release, as returned in the id field of GET /v1/numbers."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1e0f7eff-5522-8859-87c2-7d95f3eb354c",
              "name": "Resource conflict",
              "originalRequest": {
                "name": "Release a dedicated number",
                "description": {
                  "content": "Releases one of your workspace's dedicated numbers and stops its monthly charge. Your workspace can no longer use the number after release. Shared numbers belong to Bird-managed shared infrastructure and cannot be released from your workspace.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    ":number_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number_id",
                      "description": "(Required) Identifier of the number to release, as returned in the id field of GET /v1/numbers."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Conflict",
              "code": 409,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8de6d08e-a930-8639-8be0-01db2390fc3d",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Release a dedicated number",
                "description": {
                  "content": "Releases one of your workspace's dedicated numbers and stops its monthly charge. Your workspace can no longer use the number after release. Shared numbers belong to Bird-managed shared infrastructure and cannot be released from your workspace.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    ":number_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number_id",
                      "description": "(Required) Identifier of the number to release, as returned in the id field of GET /v1/numbers."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f37b1580-aa78-8c6e-8e62-46ecd32fd168",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Release a dedicated number",
                "description": {
                  "content": "Releases one of your workspace's dedicated numbers and stops its monthly charge. Your workspace can no longer use the number after release. Shared numbers belong to Bird-managed shared infrastructure and cannot be released from your workspace.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    ":number_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number_id",
                      "description": "(Required) Identifier of the number to release, as returned in the id field of GET /v1/numbers."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e00ad23d-5965-84a4-8250-1cdfa6d4d09d",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Release a dedicated number",
                "description": {
                  "content": "Releases one of your workspace's dedicated numbers and stops its monthly charge. Your workspace can no longer use the number after release. Shared numbers belong to Bird-managed shared infrastructure and cannot be released from your workspace.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "numbers",
                    ":number_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number_id",
                      "description": "(Required) Identifier of the number to release, as returned in the id field of GET /v1/numbers."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "80216380-d231-8cda-8b42-387a1313143d",
      "name": "docs",
      "description": {
        "content": "Search our developer documentation.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "cd7642e5-4384-8751-8c17-8170c2e45e37",
          "name": "Get documentation search results",
          "request": {
            "name": "Get documentation search results",
            "description": {
              "content": "Searches the documentation and returns matching sections, best match first. Each result links to its section heading and includes the page's `slug`; read the full page with `GET /v1/docs/pages`.\n\nNo authentication is required. A blank query returns `400`, and `503` means search is temporarily unavailable.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "docs",
                "search"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "q",
                  "value": "",
                  "description": "(Required) The text to search the documentation for. Must not be blank."
                },
                {
                  "disabled": true,
                  "key": "locale",
                  "value": "",
                  "description": "Documentation locale to search, as a language-region code such as `en-us`. Defaults to `en-us` when omitted or unavailable."
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "10",
                  "description": "Maximum number of results to return (1–25)."
                },
                {
                  "disabled": false,
                  "key": "contents",
                  "value": "snippet",
                  "description": "How much of each matching section to return. `snippet` (the default) returns a short preview; `highlights` additionally returns the passages that match the query. For the full text, fetch a result's `markdown_url`."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "13eee25d-840c-8cd1-8afa-c0ee3cb84a09",
              "name": "Ranked search results.",
              "originalRequest": {
                "name": "Get documentation search results",
                "description": {
                  "content": "Searches the documentation and returns matching sections, best match first. Each result links to its section heading and includes the page's `slug`; read the full page with `GET /v1/docs/pages`.\n\nNo authentication is required. A blank query returns `400`, and `503` means search is temporarily unavailable.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "docs",
                    "search"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "q",
                      "value": "",
                      "description": "(Required) The text to search the documentation for. Must not be blank."
                    },
                    {
                      "disabled": true,
                      "key": "locale",
                      "value": "",
                      "description": "Documentation locale to search, as a language-region code such as `en-us`. Defaults to `en-us` when omitted or unavailable."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "10",
                      "description": "Maximum number of results to return (1–25)."
                    },
                    {
                      "disabled": false,
                      "key": "contents",
                      "value": "snippet",
                      "description": "How much of each matching section to return. `snippet` (the default) returns a short preview; `highlights` additionally returns the passages that match the query. For the full text, fetch a result's `markdown_url`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1b9f7b10-8b75-8363-85e0-9ea2513d5cd2",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get documentation search results",
                "description": {
                  "content": "Searches the documentation and returns matching sections, best match first. Each result links to its section heading and includes the page's `slug`; read the full page with `GET /v1/docs/pages`.\n\nNo authentication is required. A blank query returns `400`, and `503` means search is temporarily unavailable.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "docs",
                    "search"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "q",
                      "value": "",
                      "description": "(Required) The text to search the documentation for. Must not be blank."
                    },
                    {
                      "disabled": true,
                      "key": "locale",
                      "value": "",
                      "description": "Documentation locale to search, as a language-region code such as `en-us`. Defaults to `en-us` when omitted or unavailable."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "10",
                      "description": "Maximum number of results to return (1–25)."
                    },
                    {
                      "disabled": false,
                      "key": "contents",
                      "value": "snippet",
                      "description": "How much of each matching section to return. `snippet` (the default) returns a short preview; `highlights` additionally returns the passages that match the query. For the full text, fetch a result's `markdown_url`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "982c713c-b6bd-8285-878d-16cf95f91728",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get documentation search results",
                "description": {
                  "content": "Searches the documentation and returns matching sections, best match first. Each result links to its section heading and includes the page's `slug`; read the full page with `GET /v1/docs/pages`.\n\nNo authentication is required. A blank query returns `400`, and `503` means search is temporarily unavailable.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "docs",
                    "search"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "q",
                      "value": "",
                      "description": "(Required) The text to search the documentation for. Must not be blank."
                    },
                    {
                      "disabled": true,
                      "key": "locale",
                      "value": "",
                      "description": "Documentation locale to search, as a language-region code such as `en-us`. Defaults to `en-us` when omitted or unavailable."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "10",
                      "description": "Maximum number of results to return (1–25)."
                    },
                    {
                      "disabled": false,
                      "key": "contents",
                      "value": "snippet",
                      "description": "How much of each matching section to return. `snippet` (the default) returns a short preview; `highlights` additionally returns the passages that match the query. For the full text, fetch a result's `markdown_url`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8607d9c1-b711-8b3d-8a48-0223b4c34e3d",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get documentation search results",
                "description": {
                  "content": "Searches the documentation and returns matching sections, best match first. Each result links to its section heading and includes the page's `slug`; read the full page with `GET /v1/docs/pages`.\n\nNo authentication is required. A blank query returns `400`, and `503` means search is temporarily unavailable.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "docs",
                    "search"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "q",
                      "value": "",
                      "description": "(Required) The text to search the documentation for. Must not be blank."
                    },
                    {
                      "disabled": true,
                      "key": "locale",
                      "value": "",
                      "description": "Documentation locale to search, as a language-region code such as `en-us`. Defaults to `en-us` when omitted or unavailable."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "10",
                      "description": "Maximum number of results to return (1–25)."
                    },
                    {
                      "disabled": false,
                      "key": "contents",
                      "value": "snippet",
                      "description": "How much of each matching section to return. `snippet` (the default) returns a short preview; `highlights` additionally returns the passages that match the query. For the full text, fetch a result's `markdown_url`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "258fd4be-d8cb-8f4a-804e-440be7cf22fb",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get documentation search results",
                "description": {
                  "content": "Searches the documentation and returns matching sections, best match first. Each result links to its section heading and includes the page's `slug`; read the full page with `GET /v1/docs/pages`.\n\nNo authentication is required. A blank query returns `400`, and `503` means search is temporarily unavailable.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "docs",
                    "search"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "q",
                      "value": "",
                      "description": "(Required) The text to search the documentation for. Must not be blank."
                    },
                    {
                      "disabled": true,
                      "key": "locale",
                      "value": "",
                      "description": "Documentation locale to search, as a language-region code such as `en-us`. Defaults to `en-us` when omitted or unavailable."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "10",
                      "description": "Maximum number of results to return (1–25)."
                    },
                    {
                      "disabled": false,
                      "key": "contents",
                      "value": "snippet",
                      "description": "How much of each matching section to return. `snippet` (the default) returns a short preview; `highlights` additionally returns the passages that match the query. For the full text, fetch a result's `markdown_url`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cd35eecd-38eb-8ec3-87db-e5fce221afa1",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get documentation search results",
                "description": {
                  "content": "Searches the documentation and returns matching sections, best match first. Each result links to its section heading and includes the page's `slug`; read the full page with `GET /v1/docs/pages`.\n\nNo authentication is required. A blank query returns `400`, and `503` means search is temporarily unavailable.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "docs",
                    "search"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "q",
                      "value": "",
                      "description": "(Required) The text to search the documentation for. Must not be blank."
                    },
                    {
                      "disabled": true,
                      "key": "locale",
                      "value": "",
                      "description": "Documentation locale to search, as a language-region code such as `en-us`. Defaults to `en-us` when omitted or unavailable."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "10",
                      "description": "Maximum number of results to return (1–25)."
                    },
                    {
                      "disabled": false,
                      "key": "contents",
                      "value": "snippet",
                      "description": "How much of each matching section to return. `snippet` (the default) returns a short preview; `highlights` additionally returns the passages that match the query. For the full text, fetch a result's `markdown_url`."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "00299b2b-0597-8279-8720-1f945f60e995",
          "name": "Get a documentation page",
          "request": {
            "name": "Get a documentation page",
            "description": {
              "content": "Returns the full Markdown content of a documentation page. Get its `slug` from `GET /v1/docs/search`, or pass `index` for the documentation landing page.\n\nNo authentication is required. An unknown slug returns `404`, and `503` means the documentation backend is temporarily unavailable.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "docs",
                "pages"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "slug",
                  "value": "",
                  "description": "(Required) Slug of the page to read, as returned in the `slug` field of a search result (for example `guides/email/contacts`). Use `index` for the documentation landing page."
                },
                {
                  "disabled": true,
                  "key": "locale",
                  "value": "",
                  "description": "Documentation locale to read, as a language-region code such as `en-us`. Defaults to `en-us` when omitted or unavailable."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "a8031886-5c7d-852a-8a81-3975be071cf8",
              "name": "The documentation page content.",
              "originalRequest": {
                "name": "Get a documentation page",
                "description": {
                  "content": "Returns the full Markdown content of a documentation page. Get its `slug` from `GET /v1/docs/search`, or pass `index` for the documentation landing page.\n\nNo authentication is required. An unknown slug returns `404`, and `503` means the documentation backend is temporarily unavailable.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "docs",
                    "pages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "slug",
                      "value": "",
                      "description": "(Required) Slug of the page to read, as returned in the `slug` field of a search result (for example `guides/email/contacts`). Use `index` for the documentation landing page."
                    },
                    {
                      "disabled": true,
                      "key": "locale",
                      "value": "",
                      "description": "Documentation locale to read, as a language-region code such as `en-us`. Defaults to `en-us` when omitted or unavailable."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9db4eac8-b42c-8b32-898b-2aaface197de",
              "name": "Bad request",
              "originalRequest": {
                "name": "Get a documentation page",
                "description": {
                  "content": "Returns the full Markdown content of a documentation page. Get its `slug` from `GET /v1/docs/search`, or pass `index` for the documentation landing page.\n\nNo authentication is required. An unknown slug returns `404`, and `503` means the documentation backend is temporarily unavailable.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "docs",
                    "pages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "slug",
                      "value": "",
                      "description": "(Required) Slug of the page to read, as returned in the `slug` field of a search result (for example `guides/email/contacts`). Use `index` for the documentation landing page."
                    },
                    {
                      "disabled": true,
                      "key": "locale",
                      "value": "",
                      "description": "Documentation locale to read, as a language-region code such as `en-us`. Defaults to `en-us` when omitted or unavailable."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Bad Request",
              "code": 400,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3ca5430c-9d4e-8906-8b13-f914e1b96bb4",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a documentation page",
                "description": {
                  "content": "Returns the full Markdown content of a documentation page. Get its `slug` from `GET /v1/docs/search`, or pass `index` for the documentation landing page.\n\nNo authentication is required. An unknown slug returns `404`, and `503` means the documentation backend is temporarily unavailable.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "docs",
                    "pages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "slug",
                      "value": "",
                      "description": "(Required) Slug of the page to read, as returned in the `slug` field of a search result (for example `guides/email/contacts`). Use `index` for the documentation landing page."
                    },
                    {
                      "disabled": true,
                      "key": "locale",
                      "value": "",
                      "description": "Documentation locale to read, as a language-region code such as `en-us`. Defaults to `en-us` when omitted or unavailable."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "597f6966-7135-8089-8ee4-48e7233ba0ea",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a documentation page",
                "description": {
                  "content": "Returns the full Markdown content of a documentation page. Get its `slug` from `GET /v1/docs/search`, or pass `index` for the documentation landing page.\n\nNo authentication is required. An unknown slug returns `404`, and `503` means the documentation backend is temporarily unavailable.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "docs",
                    "pages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "slug",
                      "value": "",
                      "description": "(Required) Slug of the page to read, as returned in the `slug` field of a search result (for example `guides/email/contacts`). Use `index` for the documentation landing page."
                    },
                    {
                      "disabled": true,
                      "key": "locale",
                      "value": "",
                      "description": "Documentation locale to read, as a language-region code such as `en-us`. Defaults to `en-us` when omitted or unavailable."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "56c4cc07-0c54-86ae-82c9-75d14412b4ec",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a documentation page",
                "description": {
                  "content": "Returns the full Markdown content of a documentation page. Get its `slug` from `GET /v1/docs/search`, or pass `index` for the documentation landing page.\n\nNo authentication is required. An unknown slug returns `404`, and `503` means the documentation backend is temporarily unavailable.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "docs",
                    "pages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "slug",
                      "value": "",
                      "description": "(Required) Slug of the page to read, as returned in the `slug` field of a search result (for example `guides/email/contacts`). Use `index` for the documentation landing page."
                    },
                    {
                      "disabled": true,
                      "key": "locale",
                      "value": "",
                      "description": "Documentation locale to read, as a language-region code such as `en-us`. Defaults to `en-us` when omitted or unavailable."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "472da792-4673-85d6-892a-7529fb9cae40",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a documentation page",
                "description": {
                  "content": "Returns the full Markdown content of a documentation page. Get its `slug` from `GET /v1/docs/search`, or pass `index` for the documentation landing page.\n\nNo authentication is required. An unknown slug returns `404`, and `503` means the documentation backend is temporarily unavailable.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "docs",
                    "pages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "slug",
                      "value": "",
                      "description": "(Required) Slug of the page to read, as returned in the `slug` field of a search result (for example `guides/email/contacts`). Use `index` for the documentation landing page."
                    },
                    {
                      "disabled": true,
                      "key": "locale",
                      "value": "",
                      "description": "Documentation locale to read, as a language-region code such as `en-us`. Defaults to `en-us` when omitted or unavailable."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c63da2a3-232e-8c95-8355-877d7631ffd6",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get a documentation page",
                "description": {
                  "content": "Returns the full Markdown content of a documentation page. Get its `slug` from `GET /v1/docs/search`, or pass `index` for the documentation landing page.\n\nNo authentication is required. An unknown slug returns `404`, and `503` means the documentation backend is temporarily unavailable.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "docs",
                    "pages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "slug",
                      "value": "",
                      "description": "(Required) Slug of the page to read, as returned in the `slug` field of a search result (for example `guides/email/contacts`). Use `index` for the documentation landing page."
                    },
                    {
                      "disabled": true,
                      "key": "locale",
                      "value": "",
                      "description": "Documentation locale to read, as a language-region code such as `en-us`. Defaults to `en-us` when omitted or unavailable."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 503,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "c4b80b69-3fe2-8a16-8162-3795c34e6e63",
      "name": "voice-calls",
      "description": {
        "content": "Call records (CDR) for the workspace, in flight and completed.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "3f2d16d4-decb-8ae2-82f9-4cabee6c96fe",
          "name": "List calls",
          "request": {
            "name": "List calls",
            "description": {
              "content": "Returns a paginated list of the workspace's calls, ordered by start time\ndescending.\n\nThe `status` filter selects where in the lifecycle you look, and any\ncombination is a single page: in-flight statuses (`ringing`,\n`in_progress`), final ones, or both together. Omit it and you get\ncompleted calls, which is what this list has always returned.\n\nA call in flight carries no economics yet: `duration_ms`, `billable_ms`,\n`ended_at`, and `cost` are null until it ends. It keeps the same `id`\nthroughout, so the same call answers under one identity from the first\nring to settlement.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "voice",
                "calls"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "direction",
                  "value": "",
                  "description": "Return only calls in this direction."
                },
                {
                  "disabled": true,
                  "key": "status",
                  "value": "",
                  "description": "Return only calls with one of these statuses, comma-separated.\nIn-flight and final statuses may be combined freely.\n"
                },
                {
                  "disabled": true,
                  "key": "session_id",
                  "value": "",
                  "description": "Return only calls belonging to this session, which is how the legs of one multi-party or transferred call are correlated."
                },
                {
                  "disabled": true,
                  "key": "sip_trunk_id",
                  "value": "",
                  "description": "Return only calls carried by this SIP trunk."
                },
                {
                  "disabled": false,
                  "key": "from",
                  "value": "+14155551234",
                  "description": "Return only calls placed from this calling party number, matched as a whole number rather than as a fragment. Give it in international form: `+14155551234`, `14155551234`, and `0014155551234` all select the same calls. A number given without a country code is read as an international one, so give the country code to be sure of what you are matching. Use `number` instead to match part of a number, or either side of the call.\n"
                },
                {
                  "disabled": false,
                  "key": "to",
                  "value": "+16505559876",
                  "description": "Return only calls placed to this called party number, matched as a whole number rather than as a fragment. Give it in international form: `+16505559876`, `16505559876`, and `0016505559876` all select the same calls. A number given without a country code is read as an international one, so give the country code to be sure of what you are matching. Use `number` instead to match part of a number, or either side of the call.\n"
                },
                {
                  "disabled": true,
                  "key": "number",
                  "value": "",
                  "description": "Return only calls where the calling or called number contains this value. Matches a partial number, so a country or area-code prefix returns every call to or from it. Combines with `from`/`to`, which match one side exactly."
                },
                {
                  "disabled": true,
                  "key": "tag",
                  "value": "",
                  "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                },
                {
                  "disabled": true,
                  "key": "tag",
                  "value": "",
                  "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                },
                {
                  "disabled": true,
                  "key": "started_after",
                  "value": "",
                  "description": "Return only calls that started at or after this instant, inclusive. RFC 3339 timestamp."
                },
                {
                  "disabled": true,
                  "key": "started_before",
                  "value": "",
                  "description": "Return only calls that started at or before this instant, inclusive. RFC 3339 timestamp."
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "4ee10699-589e-8e87-81de-d3ee8df5b98d",
              "name": "Paginated list of call records.",
              "originalRequest": {
                "name": "List calls",
                "description": {
                  "content": "Returns a paginated list of the workspace's calls, ordered by start time\ndescending.\n\nThe `status` filter selects where in the lifecycle you look, and any\ncombination is a single page: in-flight statuses (`ringing`,\n`in_progress`), final ones, or both together. Omit it and you get\ncompleted calls, which is what this list has always returned.\n\nA call in flight carries no economics yet: `duration_ms`, `billable_ms`,\n`ended_at`, and `cost` are null until it ends. It keeps the same `id`\nthroughout, so the same call answers under one identity from the first\nring to settlement.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "voice",
                    "calls"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Return only calls in this direction."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Return only calls with one of these statuses, comma-separated.\nIn-flight and final statuses may be combined freely.\n"
                    },
                    {
                      "disabled": true,
                      "key": "session_id",
                      "value": "",
                      "description": "Return only calls belonging to this session, which is how the legs of one multi-party or transferred call are correlated."
                    },
                    {
                      "disabled": true,
                      "key": "sip_trunk_id",
                      "value": "",
                      "description": "Return only calls carried by this SIP trunk."
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "+14155551234",
                      "description": "Return only calls placed from this calling party number, matched as a whole number rather than as a fragment. Give it in international form: `+14155551234`, `14155551234`, and `0014155551234` all select the same calls. A number given without a country code is read as an international one, so give the country code to be sure of what you are matching. Use `number` instead to match part of a number, or either side of the call.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "+16505559876",
                      "description": "Return only calls placed to this called party number, matched as a whole number rather than as a fragment. Give it in international form: `+16505559876`, `16505559876`, and `0016505559876` all select the same calls. A number given without a country code is read as an international one, so give the country code to be sure of what you are matching. Use `number` instead to match part of a number, or either side of the call.\n"
                    },
                    {
                      "disabled": true,
                      "key": "number",
                      "value": "",
                      "description": "Return only calls where the calling or called number contains this value. Matches a partial number, so a country or area-code prefix returns every call to or from it. Combines with `from`/`to`, which match one side exactly."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "started_after",
                      "value": "",
                      "description": "Return only calls that started at or after this instant, inclusive. RFC 3339 timestamp."
                    },
                    {
                      "disabled": true,
                      "key": "started_before",
                      "value": "",
                      "description": "Return only calls that started at or before this instant, inclusive. RFC 3339 timestamp."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"vcl_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"session_id\": \"vcs_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"from\": \"+14155551234\",\n      \"to\": \"+16505559876\",\n      \"actor\": {\n        \"id\": \"usr_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"type\": \"user\"\n      },\n      \"sip_trunk_id\": \"spt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"status\": \"answered\",\n      \"sip_response_code\": 200,\n      \"rejection_reason\": \"destination_not_enabled\",\n      \"route\": {\n        \"type\": \"reject\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"duration_ms\": 65000,\n      \"pdd_ms\": 850,\n      \"billable_ms\": 60000,\n      \"media_quality\": {\n        \"mos\": 4.32,\n        \"jitter_ms\": 12,\n        \"packet_loss_pct\": 1.5,\n        \"round_trip_time_ms\": 42\n      },\n      \"cost\": {\n        \"amount\": \"0.013000\",\n        \"currency_code\": \"USD\",\n        \"outbound_amount\": \"0.013000\",\n        \"inbound_amount\": null,\n        \"call_handling_amount\": null,\n        \"recording_amount\": null,\n        \"transcription_amount\": null\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "648717df-9612-82d8-8724-e079a4304f12",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List calls",
                "description": {
                  "content": "Returns a paginated list of the workspace's calls, ordered by start time\ndescending.\n\nThe `status` filter selects where in the lifecycle you look, and any\ncombination is a single page: in-flight statuses (`ringing`,\n`in_progress`), final ones, or both together. Omit it and you get\ncompleted calls, which is what this list has always returned.\n\nA call in flight carries no economics yet: `duration_ms`, `billable_ms`,\n`ended_at`, and `cost` are null until it ends. It keeps the same `id`\nthroughout, so the same call answers under one identity from the first\nring to settlement.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "voice",
                    "calls"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Return only calls in this direction."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Return only calls with one of these statuses, comma-separated.\nIn-flight and final statuses may be combined freely.\n"
                    },
                    {
                      "disabled": true,
                      "key": "session_id",
                      "value": "",
                      "description": "Return only calls belonging to this session, which is how the legs of one multi-party or transferred call are correlated."
                    },
                    {
                      "disabled": true,
                      "key": "sip_trunk_id",
                      "value": "",
                      "description": "Return only calls carried by this SIP trunk."
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "+14155551234",
                      "description": "Return only calls placed from this calling party number, matched as a whole number rather than as a fragment. Give it in international form: `+14155551234`, `14155551234`, and `0014155551234` all select the same calls. A number given without a country code is read as an international one, so give the country code to be sure of what you are matching. Use `number` instead to match part of a number, or either side of the call.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "+16505559876",
                      "description": "Return only calls placed to this called party number, matched as a whole number rather than as a fragment. Give it in international form: `+16505559876`, `16505559876`, and `0016505559876` all select the same calls. A number given without a country code is read as an international one, so give the country code to be sure of what you are matching. Use `number` instead to match part of a number, or either side of the call.\n"
                    },
                    {
                      "disabled": true,
                      "key": "number",
                      "value": "",
                      "description": "Return only calls where the calling or called number contains this value. Matches a partial number, so a country or area-code prefix returns every call to or from it. Combines with `from`/`to`, which match one side exactly."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "started_after",
                      "value": "",
                      "description": "Return only calls that started at or after this instant, inclusive. RFC 3339 timestamp."
                    },
                    {
                      "disabled": true,
                      "key": "started_before",
                      "value": "",
                      "description": "Return only calls that started at or before this instant, inclusive. RFC 3339 timestamp."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"vcl_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"session_id\": \"vcs_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"from\": \"+14155551234\",\n      \"to\": \"+16505559876\",\n      \"actor\": {\n        \"id\": \"usr_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"type\": \"user\"\n      },\n      \"sip_trunk_id\": \"spt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"status\": \"answered\",\n      \"sip_response_code\": 200,\n      \"rejection_reason\": \"destination_not_enabled\",\n      \"route\": {\n        \"type\": \"reject\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"duration_ms\": 65000,\n      \"pdd_ms\": 850,\n      \"billable_ms\": 60000,\n      \"media_quality\": {\n        \"mos\": 4.32,\n        \"jitter_ms\": 12,\n        \"packet_loss_pct\": 1.5,\n        \"round_trip_time_ms\": 42\n      },\n      \"cost\": {\n        \"amount\": \"0.013000\",\n        \"currency_code\": \"USD\",\n        \"outbound_amount\": \"0.013000\",\n        \"inbound_amount\": null,\n        \"call_handling_amount\": null,\n        \"recording_amount\": null,\n        \"transcription_amount\": null\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "96237086-a6bd-8be2-8845-422781e7dcb0",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List calls",
                "description": {
                  "content": "Returns a paginated list of the workspace's calls, ordered by start time\ndescending.\n\nThe `status` filter selects where in the lifecycle you look, and any\ncombination is a single page: in-flight statuses (`ringing`,\n`in_progress`), final ones, or both together. Omit it and you get\ncompleted calls, which is what this list has always returned.\n\nA call in flight carries no economics yet: `duration_ms`, `billable_ms`,\n`ended_at`, and `cost` are null until it ends. It keeps the same `id`\nthroughout, so the same call answers under one identity from the first\nring to settlement.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "voice",
                    "calls"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Return only calls in this direction."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Return only calls with one of these statuses, comma-separated.\nIn-flight and final statuses may be combined freely.\n"
                    },
                    {
                      "disabled": true,
                      "key": "session_id",
                      "value": "",
                      "description": "Return only calls belonging to this session, which is how the legs of one multi-party or transferred call are correlated."
                    },
                    {
                      "disabled": true,
                      "key": "sip_trunk_id",
                      "value": "",
                      "description": "Return only calls carried by this SIP trunk."
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "+14155551234",
                      "description": "Return only calls placed from this calling party number, matched as a whole number rather than as a fragment. Give it in international form: `+14155551234`, `14155551234`, and `0014155551234` all select the same calls. A number given without a country code is read as an international one, so give the country code to be sure of what you are matching. Use `number` instead to match part of a number, or either side of the call.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "+16505559876",
                      "description": "Return only calls placed to this called party number, matched as a whole number rather than as a fragment. Give it in international form: `+16505559876`, `16505559876`, and `0016505559876` all select the same calls. A number given without a country code is read as an international one, so give the country code to be sure of what you are matching. Use `number` instead to match part of a number, or either side of the call.\n"
                    },
                    {
                      "disabled": true,
                      "key": "number",
                      "value": "",
                      "description": "Return only calls where the calling or called number contains this value. Matches a partial number, so a country or area-code prefix returns every call to or from it. Combines with `from`/`to`, which match one side exactly."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "started_after",
                      "value": "",
                      "description": "Return only calls that started at or after this instant, inclusive. RFC 3339 timestamp."
                    },
                    {
                      "disabled": true,
                      "key": "started_before",
                      "value": "",
                      "description": "Return only calls that started at or before this instant, inclusive. RFC 3339 timestamp."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"vcl_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"session_id\": \"vcs_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"from\": \"+14155551234\",\n      \"to\": \"+16505559876\",\n      \"actor\": {\n        \"id\": \"usr_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"type\": \"user\"\n      },\n      \"sip_trunk_id\": \"spt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"status\": \"answered\",\n      \"sip_response_code\": 200,\n      \"rejection_reason\": \"destination_not_enabled\",\n      \"route\": {\n        \"type\": \"reject\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"duration_ms\": 65000,\n      \"pdd_ms\": 850,\n      \"billable_ms\": 60000,\n      \"media_quality\": {\n        \"mos\": 4.32,\n        \"jitter_ms\": 12,\n        \"packet_loss_pct\": 1.5,\n        \"round_trip_time_ms\": 42\n      },\n      \"cost\": {\n        \"amount\": \"0.013000\",\n        \"currency_code\": \"USD\",\n        \"outbound_amount\": \"0.013000\",\n        \"inbound_amount\": null,\n        \"call_handling_amount\": null,\n        \"recording_amount\": null,\n        \"transcription_amount\": null\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b9887458-2c4e-875f-83e8-7d3fc14be61f",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List calls",
                "description": {
                  "content": "Returns a paginated list of the workspace's calls, ordered by start time\ndescending.\n\nThe `status` filter selects where in the lifecycle you look, and any\ncombination is a single page: in-flight statuses (`ringing`,\n`in_progress`), final ones, or both together. Omit it and you get\ncompleted calls, which is what this list has always returned.\n\nA call in flight carries no economics yet: `duration_ms`, `billable_ms`,\n`ended_at`, and `cost` are null until it ends. It keeps the same `id`\nthroughout, so the same call answers under one identity from the first\nring to settlement.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "voice",
                    "calls"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Return only calls in this direction."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Return only calls with one of these statuses, comma-separated.\nIn-flight and final statuses may be combined freely.\n"
                    },
                    {
                      "disabled": true,
                      "key": "session_id",
                      "value": "",
                      "description": "Return only calls belonging to this session, which is how the legs of one multi-party or transferred call are correlated."
                    },
                    {
                      "disabled": true,
                      "key": "sip_trunk_id",
                      "value": "",
                      "description": "Return only calls carried by this SIP trunk."
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "+14155551234",
                      "description": "Return only calls placed from this calling party number, matched as a whole number rather than as a fragment. Give it in international form: `+14155551234`, `14155551234`, and `0014155551234` all select the same calls. A number given without a country code is read as an international one, so give the country code to be sure of what you are matching. Use `number` instead to match part of a number, or either side of the call.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "+16505559876",
                      "description": "Return only calls placed to this called party number, matched as a whole number rather than as a fragment. Give it in international form: `+16505559876`, `16505559876`, and `0016505559876` all select the same calls. A number given without a country code is read as an international one, so give the country code to be sure of what you are matching. Use `number` instead to match part of a number, or either side of the call.\n"
                    },
                    {
                      "disabled": true,
                      "key": "number",
                      "value": "",
                      "description": "Return only calls where the calling or called number contains this value. Matches a partial number, so a country or area-code prefix returns every call to or from it. Combines with `from`/`to`, which match one side exactly."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "started_after",
                      "value": "",
                      "description": "Return only calls that started at or after this instant, inclusive. RFC 3339 timestamp."
                    },
                    {
                      "disabled": true,
                      "key": "started_before",
                      "value": "",
                      "description": "Return only calls that started at or before this instant, inclusive. RFC 3339 timestamp."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"vcl_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"session_id\": \"vcs_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"from\": \"+14155551234\",\n      \"to\": \"+16505559876\",\n      \"actor\": {\n        \"id\": \"usr_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"type\": \"user\"\n      },\n      \"sip_trunk_id\": \"spt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"status\": \"answered\",\n      \"sip_response_code\": 200,\n      \"rejection_reason\": \"destination_not_enabled\",\n      \"route\": {\n        \"type\": \"reject\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"duration_ms\": 65000,\n      \"pdd_ms\": 850,\n      \"billable_ms\": 60000,\n      \"media_quality\": {\n        \"mos\": 4.32,\n        \"jitter_ms\": 12,\n        \"packet_loss_pct\": 1.5,\n        \"round_trip_time_ms\": 42\n      },\n      \"cost\": {\n        \"amount\": \"0.013000\",\n        \"currency_code\": \"USD\",\n        \"outbound_amount\": \"0.013000\",\n        \"inbound_amount\": null,\n        \"call_handling_amount\": null,\n        \"recording_amount\": null,\n        \"transcription_amount\": null\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d64cfc4c-de0b-86a6-8ca5-1e22dbf02b54",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List calls",
                "description": {
                  "content": "Returns a paginated list of the workspace's calls, ordered by start time\ndescending.\n\nThe `status` filter selects where in the lifecycle you look, and any\ncombination is a single page: in-flight statuses (`ringing`,\n`in_progress`), final ones, or both together. Omit it and you get\ncompleted calls, which is what this list has always returned.\n\nA call in flight carries no economics yet: `duration_ms`, `billable_ms`,\n`ended_at`, and `cost` are null until it ends. It keeps the same `id`\nthroughout, so the same call answers under one identity from the first\nring to settlement.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "voice",
                    "calls"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Return only calls in this direction."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Return only calls with one of these statuses, comma-separated.\nIn-flight and final statuses may be combined freely.\n"
                    },
                    {
                      "disabled": true,
                      "key": "session_id",
                      "value": "",
                      "description": "Return only calls belonging to this session, which is how the legs of one multi-party or transferred call are correlated."
                    },
                    {
                      "disabled": true,
                      "key": "sip_trunk_id",
                      "value": "",
                      "description": "Return only calls carried by this SIP trunk."
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "+14155551234",
                      "description": "Return only calls placed from this calling party number, matched as a whole number rather than as a fragment. Give it in international form: `+14155551234`, `14155551234`, and `0014155551234` all select the same calls. A number given without a country code is read as an international one, so give the country code to be sure of what you are matching. Use `number` instead to match part of a number, or either side of the call.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "+16505559876",
                      "description": "Return only calls placed to this called party number, matched as a whole number rather than as a fragment. Give it in international form: `+16505559876`, `16505559876`, and `0016505559876` all select the same calls. A number given without a country code is read as an international one, so give the country code to be sure of what you are matching. Use `number` instead to match part of a number, or either side of the call.\n"
                    },
                    {
                      "disabled": true,
                      "key": "number",
                      "value": "",
                      "description": "Return only calls where the calling or called number contains this value. Matches a partial number, so a country or area-code prefix returns every call to or from it. Combines with `from`/`to`, which match one side exactly."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "started_after",
                      "value": "",
                      "description": "Return only calls that started at or after this instant, inclusive. RFC 3339 timestamp."
                    },
                    {
                      "disabled": true,
                      "key": "started_before",
                      "value": "",
                      "description": "Return only calls that started at or before this instant, inclusive. RFC 3339 timestamp."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"vcl_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"session_id\": \"vcs_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"from\": \"+14155551234\",\n      \"to\": \"+16505559876\",\n      \"actor\": {\n        \"id\": \"usr_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"type\": \"user\"\n      },\n      \"sip_trunk_id\": \"spt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"status\": \"answered\",\n      \"sip_response_code\": 200,\n      \"rejection_reason\": \"destination_not_enabled\",\n      \"route\": {\n        \"type\": \"reject\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"duration_ms\": 65000,\n      \"pdd_ms\": 850,\n      \"billable_ms\": 60000,\n      \"media_quality\": {\n        \"mos\": 4.32,\n        \"jitter_ms\": 12,\n        \"packet_loss_pct\": 1.5,\n        \"round_trip_time_ms\": 42\n      },\n      \"cost\": {\n        \"amount\": \"0.013000\",\n        \"currency_code\": \"USD\",\n        \"outbound_amount\": \"0.013000\",\n        \"inbound_amount\": null,\n        \"call_handling_amount\": null,\n        \"recording_amount\": null,\n        \"transcription_amount\": null\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "51d4685c-db1a-8777-893c-b3a9a39c33e1",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List calls",
                "description": {
                  "content": "Returns a paginated list of the workspace's calls, ordered by start time\ndescending.\n\nThe `status` filter selects where in the lifecycle you look, and any\ncombination is a single page: in-flight statuses (`ringing`,\n`in_progress`), final ones, or both together. Omit it and you get\ncompleted calls, which is what this list has always returned.\n\nA call in flight carries no economics yet: `duration_ms`, `billable_ms`,\n`ended_at`, and `cost` are null until it ends. It keeps the same `id`\nthroughout, so the same call answers under one identity from the first\nring to settlement.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "voice",
                    "calls"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "direction",
                      "value": "",
                      "description": "Return only calls in this direction."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "",
                      "description": "Return only calls with one of these statuses, comma-separated.\nIn-flight and final statuses may be combined freely.\n"
                    },
                    {
                      "disabled": true,
                      "key": "session_id",
                      "value": "",
                      "description": "Return only calls belonging to this session, which is how the legs of one multi-party or transferred call are correlated."
                    },
                    {
                      "disabled": true,
                      "key": "sip_trunk_id",
                      "value": "",
                      "description": "Return only calls carried by this SIP trunk."
                    },
                    {
                      "disabled": false,
                      "key": "from",
                      "value": "+14155551234",
                      "description": "Return only calls placed from this calling party number, matched as a whole number rather than as a fragment. Give it in international form: `+14155551234`, `14155551234`, and `0014155551234` all select the same calls. A number given without a country code is read as an international one, so give the country code to be sure of what you are matching. Use `number` instead to match part of a number, or either side of the call.\n"
                    },
                    {
                      "disabled": false,
                      "key": "to",
                      "value": "+16505559876",
                      "description": "Return only calls placed to this called party number, matched as a whole number rather than as a fragment. Give it in international form: `+16505559876`, `16505559876`, and `0016505559876` all select the same calls. A number given without a country code is read as an international one, so give the country code to be sure of what you are matching. Use `number` instead to match part of a number, or either side of the call.\n"
                    },
                    {
                      "disabled": true,
                      "key": "number",
                      "value": "",
                      "description": "Return only calls where the calling or called number contains this value. Matches a partial number, so a country or area-code prefix returns every call to or from it. Combines with `from`/`to`, which match one side exactly."
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "tag",
                      "value": "",
                      "description": "Filter by tag. Accepts `name` to match any record carrying that tag name, or `name:value` to match a specific tag pair (for example `category:welcome`). Repeat the parameter to add more tags. A record must match every tag listed to be returned.\n"
                    },
                    {
                      "disabled": true,
                      "key": "started_after",
                      "value": "",
                      "description": "Return only calls that started at or after this instant, inclusive. RFC 3339 timestamp."
                    },
                    {
                      "disabled": true,
                      "key": "started_before",
                      "value": "",
                      "description": "Return only calls that started at or before this instant, inclusive. RFC 3339 timestamp."
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"vcl_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"session_id\": \"vcs_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"direction\": \"outbound\",\n      \"from\": \"+14155551234\",\n      \"to\": \"+16505559876\",\n      \"actor\": {\n        \"id\": \"usr_01krdgeqcxet5s7t44vh8rt9mg\",\n        \"type\": \"user\"\n      },\n      \"sip_trunk_id\": \"spt_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"status\": \"answered\",\n      \"sip_response_code\": 200,\n      \"rejection_reason\": \"destination_not_enabled\",\n      \"route\": {\n        \"type\": \"reject\"\n      },\n      \"tags\": [\n        {\n          \"name\": \"category\",\n          \"value\": \"welcome\"\n        }\n      ],\n      \"duration_ms\": 65000,\n      \"pdd_ms\": 850,\n      \"billable_ms\": 60000,\n      \"media_quality\": {\n        \"mos\": 4.32,\n        \"jitter_ms\": 12,\n        \"packet_loss_pct\": 1.5,\n        \"round_trip_time_ms\": 42\n      },\n      \"cost\": {\n        \"amount\": \"0.013000\",\n        \"currency_code\": \"USD\",\n        \"outbound_amount\": \"0.013000\",\n        \"inbound_amount\": null,\n        \"call_handling_amount\": null,\n        \"recording_amount\": null,\n        \"transcription_amount\": null\n      }\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "ed45fd3b-a56a-877f-8599-486324204bca",
          "name": "Get a call",
          "request": {
            "name": "Get a call",
            "description": {
              "content": "Returns a single call at any point in its lifecycle. A call that is still ringing or connected answers with its in-flight `status` and no economics: `duration_ms`, `billable_ms`, `ended_at`, and `cost` fill in once it ends, at this same URL. Returns a 404 `not_found_error` if the call does not exist in the workspace.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "voice",
                "calls",
                ":call_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "vcl_01k0p3v9wera3v6q6xw3e9y2mh",
                  "key": "call_id",
                  "description": "(Required) "
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "141546cb-fd3f-86e8-8315-33e1aa884a2d",
              "name": "Call leg with its current status, timing, and routing details.",
              "originalRequest": {
                "name": "Get a call",
                "description": {
                  "content": "Returns a single call at any point in its lifecycle. A call that is still ringing or connected answers with its in-flight `status` and no economics: `duration_ms`, `billable_ms`, `ended_at`, and `cost` fill in once it ends, at this same URL. Returns a 404 `not_found_error` if the call does not exist in the workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "voice",
                    "calls",
                    ":call_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "vcl_01k0p3v9wera3v6q6xw3e9y2mh",
                      "key": "call_id",
                      "description": "(Required) "
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vcl_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"session_id\": \"vcs_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"from\": \"+14155551234\",\n  \"to\": \"+16505559876\",\n  \"actor\": {\n    \"id\": \"usr_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"type\": \"user\"\n  },\n  \"sip_trunk_id\": \"spt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"answered\",\n  \"sip_response_code\": 200,\n  \"rejection_reason\": \"destination_not_enabled\",\n  \"route\": {\n    \"type\": \"reject\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"duration_ms\": 65000,\n  \"pdd_ms\": 850,\n  \"billable_ms\": 60000,\n  \"media_quality\": {\n    \"mos\": 4.32,\n    \"jitter_ms\": 12,\n    \"packet_loss_pct\": 1.5,\n    \"round_trip_time_ms\": 42\n  },\n  \"cost\": {\n    \"amount\": \"0.013000\",\n    \"currency_code\": \"USD\",\n    \"outbound_amount\": \"0.013000\",\n    \"inbound_amount\": null,\n    \"call_handling_amount\": null,\n    \"recording_amount\": null,\n    \"transcription_amount\": null\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d1bd6858-565d-8846-8510-9dabc6254ed4",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a call",
                "description": {
                  "content": "Returns a single call at any point in its lifecycle. A call that is still ringing or connected answers with its in-flight `status` and no economics: `duration_ms`, `billable_ms`, `ended_at`, and `cost` fill in once it ends, at this same URL. Returns a 404 `not_found_error` if the call does not exist in the workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "voice",
                    "calls",
                    ":call_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "vcl_01k0p3v9wera3v6q6xw3e9y2mh",
                      "key": "call_id",
                      "description": "(Required) "
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vcl_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"session_id\": \"vcs_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"from\": \"+14155551234\",\n  \"to\": \"+16505559876\",\n  \"actor\": {\n    \"id\": \"usr_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"type\": \"user\"\n  },\n  \"sip_trunk_id\": \"spt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"answered\",\n  \"sip_response_code\": 200,\n  \"rejection_reason\": \"destination_not_enabled\",\n  \"route\": {\n    \"type\": \"reject\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"duration_ms\": 65000,\n  \"pdd_ms\": 850,\n  \"billable_ms\": 60000,\n  \"media_quality\": {\n    \"mos\": 4.32,\n    \"jitter_ms\": 12,\n    \"packet_loss_pct\": 1.5,\n    \"round_trip_time_ms\": 42\n  },\n  \"cost\": {\n    \"amount\": \"0.013000\",\n    \"currency_code\": \"USD\",\n    \"outbound_amount\": \"0.013000\",\n    \"inbound_amount\": null,\n    \"call_handling_amount\": null,\n    \"recording_amount\": null,\n    \"transcription_amount\": null\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ee50847d-b7fe-887c-8874-918da8a3a64f",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a call",
                "description": {
                  "content": "Returns a single call at any point in its lifecycle. A call that is still ringing or connected answers with its in-flight `status` and no economics: `duration_ms`, `billable_ms`, `ended_at`, and `cost` fill in once it ends, at this same URL. Returns a 404 `not_found_error` if the call does not exist in the workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "voice",
                    "calls",
                    ":call_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "vcl_01k0p3v9wera3v6q6xw3e9y2mh",
                      "key": "call_id",
                      "description": "(Required) "
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vcl_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"session_id\": \"vcs_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"from\": \"+14155551234\",\n  \"to\": \"+16505559876\",\n  \"actor\": {\n    \"id\": \"usr_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"type\": \"user\"\n  },\n  \"sip_trunk_id\": \"spt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"answered\",\n  \"sip_response_code\": 200,\n  \"rejection_reason\": \"destination_not_enabled\",\n  \"route\": {\n    \"type\": \"reject\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"duration_ms\": 65000,\n  \"pdd_ms\": 850,\n  \"billable_ms\": 60000,\n  \"media_quality\": {\n    \"mos\": 4.32,\n    \"jitter_ms\": 12,\n    \"packet_loss_pct\": 1.5,\n    \"round_trip_time_ms\": 42\n  },\n  \"cost\": {\n    \"amount\": \"0.013000\",\n    \"currency_code\": \"USD\",\n    \"outbound_amount\": \"0.013000\",\n    \"inbound_amount\": null,\n    \"call_handling_amount\": null,\n    \"recording_amount\": null,\n    \"transcription_amount\": null\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d0594874-9bce-84da-8540-2a19edfd274f",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a call",
                "description": {
                  "content": "Returns a single call at any point in its lifecycle. A call that is still ringing or connected answers with its in-flight `status` and no economics: `duration_ms`, `billable_ms`, `ended_at`, and `cost` fill in once it ends, at this same URL. Returns a 404 `not_found_error` if the call does not exist in the workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "voice",
                    "calls",
                    ":call_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "vcl_01k0p3v9wera3v6q6xw3e9y2mh",
                      "key": "call_id",
                      "description": "(Required) "
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vcl_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"session_id\": \"vcs_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"from\": \"+14155551234\",\n  \"to\": \"+16505559876\",\n  \"actor\": {\n    \"id\": \"usr_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"type\": \"user\"\n  },\n  \"sip_trunk_id\": \"spt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"answered\",\n  \"sip_response_code\": 200,\n  \"rejection_reason\": \"destination_not_enabled\",\n  \"route\": {\n    \"type\": \"reject\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"duration_ms\": 65000,\n  \"pdd_ms\": 850,\n  \"billable_ms\": 60000,\n  \"media_quality\": {\n    \"mos\": 4.32,\n    \"jitter_ms\": 12,\n    \"packet_loss_pct\": 1.5,\n    \"round_trip_time_ms\": 42\n  },\n  \"cost\": {\n    \"amount\": \"0.013000\",\n    \"currency_code\": \"USD\",\n    \"outbound_amount\": \"0.013000\",\n    \"inbound_amount\": null,\n    \"call_handling_amount\": null,\n    \"recording_amount\": null,\n    \"transcription_amount\": null\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "eb56e121-dc85-887e-8714-a3481dfe3d13",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a call",
                "description": {
                  "content": "Returns a single call at any point in its lifecycle. A call that is still ringing or connected answers with its in-flight `status` and no economics: `duration_ms`, `billable_ms`, `ended_at`, and `cost` fill in once it ends, at this same URL. Returns a 404 `not_found_error` if the call does not exist in the workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "voice",
                    "calls",
                    ":call_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "vcl_01k0p3v9wera3v6q6xw3e9y2mh",
                      "key": "call_id",
                      "description": "(Required) "
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vcl_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"session_id\": \"vcs_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"from\": \"+14155551234\",\n  \"to\": \"+16505559876\",\n  \"actor\": {\n    \"id\": \"usr_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"type\": \"user\"\n  },\n  \"sip_trunk_id\": \"spt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"answered\",\n  \"sip_response_code\": 200,\n  \"rejection_reason\": \"destination_not_enabled\",\n  \"route\": {\n    \"type\": \"reject\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"duration_ms\": 65000,\n  \"pdd_ms\": 850,\n  \"billable_ms\": 60000,\n  \"media_quality\": {\n    \"mos\": 4.32,\n    \"jitter_ms\": 12,\n    \"packet_loss_pct\": 1.5,\n    \"round_trip_time_ms\": 42\n  },\n  \"cost\": {\n    \"amount\": \"0.013000\",\n    \"currency_code\": \"USD\",\n    \"outbound_amount\": \"0.013000\",\n    \"inbound_amount\": null,\n    \"call_handling_amount\": null,\n    \"recording_amount\": null,\n    \"transcription_amount\": null\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "93cb8ed7-fe42-8124-838f-c47609ee4f17",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a call",
                "description": {
                  "content": "Returns a single call at any point in its lifecycle. A call that is still ringing or connected answers with its in-flight `status` and no economics: `duration_ms`, `billable_ms`, `ended_at`, and `cost` fill in once it ends, at this same URL. Returns a 404 `not_found_error` if the call does not exist in the workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "voice",
                    "calls",
                    ":call_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "vcl_01k0p3v9wera3v6q6xw3e9y2mh",
                      "key": "call_id",
                      "description": "(Required) "
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vcl_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"session_id\": \"vcs_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"from\": \"+14155551234\",\n  \"to\": \"+16505559876\",\n  \"actor\": {\n    \"id\": \"usr_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"type\": \"user\"\n  },\n  \"sip_trunk_id\": \"spt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"answered\",\n  \"sip_response_code\": 200,\n  \"rejection_reason\": \"destination_not_enabled\",\n  \"route\": {\n    \"type\": \"reject\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"duration_ms\": 65000,\n  \"pdd_ms\": 850,\n  \"billable_ms\": 60000,\n  \"media_quality\": {\n    \"mos\": 4.32,\n    \"jitter_ms\": 12,\n    \"packet_loss_pct\": 1.5,\n    \"round_trip_time_ms\": 42\n  },\n  \"cost\": {\n    \"amount\": \"0.013000\",\n    \"currency_code\": \"USD\",\n    \"outbound_amount\": \"0.013000\",\n    \"inbound_amount\": null,\n    \"call_handling_amount\": null,\n    \"recording_amount\": null,\n    \"transcription_amount\": null\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "51f04aff-878f-8915-8d29-ef0400882cd0",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a call",
                "description": {
                  "content": "Returns a single call at any point in its lifecycle. A call that is still ringing or connected answers with its in-flight `status` and no economics: `duration_ms`, `billable_ms`, `ended_at`, and `cost` fill in once it ends, at this same URL. Returns a 404 `not_found_error` if the call does not exist in the workspace.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "voice",
                    "calls",
                    ":call_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "vcl_01k0p3v9wera3v6q6xw3e9y2mh",
                      "key": "call_id",
                      "description": "(Required) "
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"vcl_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"session_id\": \"vcs_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"workspace_id\": \"ws_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"direction\": \"outbound\",\n  \"from\": \"+14155551234\",\n  \"to\": \"+16505559876\",\n  \"actor\": {\n    \"id\": \"usr_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"type\": \"user\"\n  },\n  \"sip_trunk_id\": \"spt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"status\": \"answered\",\n  \"sip_response_code\": 200,\n  \"rejection_reason\": \"destination_not_enabled\",\n  \"route\": {\n    \"type\": \"reject\"\n  },\n  \"tags\": [\n    {\n      \"name\": \"category\",\n      \"value\": \"welcome\"\n    }\n  ],\n  \"duration_ms\": 65000,\n  \"pdd_ms\": 850,\n  \"billable_ms\": 60000,\n  \"media_quality\": {\n    \"mos\": 4.32,\n    \"jitter_ms\": 12,\n    \"packet_loss_pct\": 1.5,\n    \"round_trip_time_ms\": 42\n  },\n  \"cost\": {\n    \"amount\": \"0.013000\",\n    \"currency_code\": \"USD\",\n    \"outbound_amount\": \"0.013000\",\n    \"inbound_amount\": null,\n    \"call_handling_amount\": null,\n    \"recording_amount\": null,\n    \"transcription_amount\": null\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "e0a5ee55-badd-80d9-8505-b995f5a58194",
      "name": "sms-keyword-rules",
      "description": {
        "content": "Manage the response when someone sends a keyword to one of your numbers. Each supported country starts with opt-out, opt-in, and help keywords. Create a rule to replace a default response or add campaign keywords.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "ffadf227-ca7d-8908-8132-5eed0e65f828",
          "name": "List SMS keyword rules",
          "request": {
            "name": "List SMS keyword rules",
            "description": {
              "content": "Returns the default and workspace keyword rules that apply to inbound messages, most specific first. Where the default catalog covers a country, opt-out, opt-in, and help keywords work without setup.\n\nUse the filters to narrow the full, unpaginated list. Set `scope=system` for default rules only. Set `number` for rules in evaluation order, and add `from_country` to account for the sender's country.\n\nDefault coverage varies by country. If a country has no default rules, the service does not recognize keywords, send replies, or record opt-outs there. You can add `custom` keywords for that country. Opt-out, opt-in, and help rules require default coverage.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "keyword-rules"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "country",
                  "value": "NL",
                  "description": "Keep only rules that apply in this country, as an ISO 3166-1 alpha-2 code. Omit for every country the default catalog covers, plus your own rules.\n"
                },
                {
                  "disabled": false,
                  "key": "number",
                  "value": "+18005551234",
                  "description": "Keep only the rules that apply to this number of yours, in E.164 format or as a short code, ordered the way they are applied to an inbound message.\n"
                },
                {
                  "disabled": false,
                  "key": "from_country",
                  "value": "CA",
                  "description": "The country a sender is messaging from, as an ISO 3166-1 alpha-2 code. Use it with `number` to see what someone in that country gets, which can differ from what a local sender gets. Ignored without `number`.\n"
                },
                {
                  "disabled": true,
                  "key": "operation",
                  "value": "",
                  "description": "Keep only rules for this operation. Omit for all of them."
                },
                {
                  "disabled": true,
                  "key": "scope",
                  "value": "",
                  "description": "Keep only default rules (`system`) or only the rules you created (`workspace`). Omit for both.\n"
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "bd4fc4d7-aff0-808d-88e2-bac15dab7aa6",
              "name": "The keyword rules that apply to your workspace.",
              "originalRequest": {
                "name": "List SMS keyword rules",
                "description": {
                  "content": "Returns the default and workspace keyword rules that apply to inbound messages, most specific first. Where the default catalog covers a country, opt-out, opt-in, and help keywords work without setup.\n\nUse the filters to narrow the full, unpaginated list. Set `scope=system` for default rules only. Set `number` for rules in evaluation order, and add `from_country` to account for the sender's country.\n\nDefault coverage varies by country. If a country has no default rules, the service does not recognize keywords, send replies, or record opt-outs there. You can add `custom` keywords for that country. Opt-out, opt-in, and help rules require default coverage.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "NL",
                      "description": "Keep only rules that apply in this country, as an ISO 3166-1 alpha-2 code. Omit for every country the default catalog covers, plus your own rules.\n"
                    },
                    {
                      "disabled": false,
                      "key": "number",
                      "value": "+18005551234",
                      "description": "Keep only the rules that apply to this number of yours, in E.164 format or as a short code, ordered the way they are applied to an inbound message.\n"
                    },
                    {
                      "disabled": false,
                      "key": "from_country",
                      "value": "CA",
                      "description": "The country a sender is messaging from, as an ISO 3166-1 alpha-2 code. Use it with `number` to see what someone in that country gets, which can differ from what a local sender gets. Ignored without `number`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "operation",
                      "value": "",
                      "description": "Keep only rules for this operation. Omit for all of them."
                    },
                    {
                      "disabled": true,
                      "key": "scope",
                      "value": "",
                      "description": "Keep only default rules (`system`) or only the rules you created (`workspace`). Omit for both.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"scope\": \"system\",\n      \"operation\": \"stop\",\n      \"country\": \"NL\",\n      \"language\": \"fr\",\n      \"number\": \"+18005551234\",\n      \"keywords\": [\n        \"pizza\",\n        \"menu\"\n      ],\n      \"effective_keywords\": [\n        \"stop\",\n        \"stoppen\",\n        \"afmelden\"\n      ],\n      \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n      \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n      \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n      \"mandatory\": true,\n      \"created_at\": \"2026-08-12T09:00:00Z\",\n      \"updated_at\": \"2026-08-12T09:00:00Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "77c0d938-8ede-8304-8cb7-84743a395514",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List SMS keyword rules",
                "description": {
                  "content": "Returns the default and workspace keyword rules that apply to inbound messages, most specific first. Where the default catalog covers a country, opt-out, opt-in, and help keywords work without setup.\n\nUse the filters to narrow the full, unpaginated list. Set `scope=system` for default rules only. Set `number` for rules in evaluation order, and add `from_country` to account for the sender's country.\n\nDefault coverage varies by country. If a country has no default rules, the service does not recognize keywords, send replies, or record opt-outs there. You can add `custom` keywords for that country. Opt-out, opt-in, and help rules require default coverage.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "NL",
                      "description": "Keep only rules that apply in this country, as an ISO 3166-1 alpha-2 code. Omit for every country the default catalog covers, plus your own rules.\n"
                    },
                    {
                      "disabled": false,
                      "key": "number",
                      "value": "+18005551234",
                      "description": "Keep only the rules that apply to this number of yours, in E.164 format or as a short code, ordered the way they are applied to an inbound message.\n"
                    },
                    {
                      "disabled": false,
                      "key": "from_country",
                      "value": "CA",
                      "description": "The country a sender is messaging from, as an ISO 3166-1 alpha-2 code. Use it with `number` to see what someone in that country gets, which can differ from what a local sender gets. Ignored without `number`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "operation",
                      "value": "",
                      "description": "Keep only rules for this operation. Omit for all of them."
                    },
                    {
                      "disabled": true,
                      "key": "scope",
                      "value": "",
                      "description": "Keep only default rules (`system`) or only the rules you created (`workspace`). Omit for both.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"scope\": \"system\",\n      \"operation\": \"stop\",\n      \"country\": \"NL\",\n      \"language\": \"fr\",\n      \"number\": \"+18005551234\",\n      \"keywords\": [\n        \"pizza\",\n        \"menu\"\n      ],\n      \"effective_keywords\": [\n        \"stop\",\n        \"stoppen\",\n        \"afmelden\"\n      ],\n      \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n      \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n      \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n      \"mandatory\": true,\n      \"created_at\": \"2026-08-12T09:00:00Z\",\n      \"updated_at\": \"2026-08-12T09:00:00Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9fdebf66-9ba3-8cbe-8e74-4a4cce43b018",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List SMS keyword rules",
                "description": {
                  "content": "Returns the default and workspace keyword rules that apply to inbound messages, most specific first. Where the default catalog covers a country, opt-out, opt-in, and help keywords work without setup.\n\nUse the filters to narrow the full, unpaginated list. Set `scope=system` for default rules only. Set `number` for rules in evaluation order, and add `from_country` to account for the sender's country.\n\nDefault coverage varies by country. If a country has no default rules, the service does not recognize keywords, send replies, or record opt-outs there. You can add `custom` keywords for that country. Opt-out, opt-in, and help rules require default coverage.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "NL",
                      "description": "Keep only rules that apply in this country, as an ISO 3166-1 alpha-2 code. Omit for every country the default catalog covers, plus your own rules.\n"
                    },
                    {
                      "disabled": false,
                      "key": "number",
                      "value": "+18005551234",
                      "description": "Keep only the rules that apply to this number of yours, in E.164 format or as a short code, ordered the way they are applied to an inbound message.\n"
                    },
                    {
                      "disabled": false,
                      "key": "from_country",
                      "value": "CA",
                      "description": "The country a sender is messaging from, as an ISO 3166-1 alpha-2 code. Use it with `number` to see what someone in that country gets, which can differ from what a local sender gets. Ignored without `number`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "operation",
                      "value": "",
                      "description": "Keep only rules for this operation. Omit for all of them."
                    },
                    {
                      "disabled": true,
                      "key": "scope",
                      "value": "",
                      "description": "Keep only default rules (`system`) or only the rules you created (`workspace`). Omit for both.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"scope\": \"system\",\n      \"operation\": \"stop\",\n      \"country\": \"NL\",\n      \"language\": \"fr\",\n      \"number\": \"+18005551234\",\n      \"keywords\": [\n        \"pizza\",\n        \"menu\"\n      ],\n      \"effective_keywords\": [\n        \"stop\",\n        \"stoppen\",\n        \"afmelden\"\n      ],\n      \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n      \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n      \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n      \"mandatory\": true,\n      \"created_at\": \"2026-08-12T09:00:00Z\",\n      \"updated_at\": \"2026-08-12T09:00:00Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7ed2beb9-3b29-8c8b-8e15-0fce31ed0281",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List SMS keyword rules",
                "description": {
                  "content": "Returns the default and workspace keyword rules that apply to inbound messages, most specific first. Where the default catalog covers a country, opt-out, opt-in, and help keywords work without setup.\n\nUse the filters to narrow the full, unpaginated list. Set `scope=system` for default rules only. Set `number` for rules in evaluation order, and add `from_country` to account for the sender's country.\n\nDefault coverage varies by country. If a country has no default rules, the service does not recognize keywords, send replies, or record opt-outs there. You can add `custom` keywords for that country. Opt-out, opt-in, and help rules require default coverage.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "NL",
                      "description": "Keep only rules that apply in this country, as an ISO 3166-1 alpha-2 code. Omit for every country the default catalog covers, plus your own rules.\n"
                    },
                    {
                      "disabled": false,
                      "key": "number",
                      "value": "+18005551234",
                      "description": "Keep only the rules that apply to this number of yours, in E.164 format or as a short code, ordered the way they are applied to an inbound message.\n"
                    },
                    {
                      "disabled": false,
                      "key": "from_country",
                      "value": "CA",
                      "description": "The country a sender is messaging from, as an ISO 3166-1 alpha-2 code. Use it with `number` to see what someone in that country gets, which can differ from what a local sender gets. Ignored without `number`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "operation",
                      "value": "",
                      "description": "Keep only rules for this operation. Omit for all of them."
                    },
                    {
                      "disabled": true,
                      "key": "scope",
                      "value": "",
                      "description": "Keep only default rules (`system`) or only the rules you created (`workspace`). Omit for both.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"scope\": \"system\",\n      \"operation\": \"stop\",\n      \"country\": \"NL\",\n      \"language\": \"fr\",\n      \"number\": \"+18005551234\",\n      \"keywords\": [\n        \"pizza\",\n        \"menu\"\n      ],\n      \"effective_keywords\": [\n        \"stop\",\n        \"stoppen\",\n        \"afmelden\"\n      ],\n      \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n      \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n      \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n      \"mandatory\": true,\n      \"created_at\": \"2026-08-12T09:00:00Z\",\n      \"updated_at\": \"2026-08-12T09:00:00Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d01bc386-b7fd-8bd5-8bae-7b94ec1c5c66",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List SMS keyword rules",
                "description": {
                  "content": "Returns the default and workspace keyword rules that apply to inbound messages, most specific first. Where the default catalog covers a country, opt-out, opt-in, and help keywords work without setup.\n\nUse the filters to narrow the full, unpaginated list. Set `scope=system` for default rules only. Set `number` for rules in evaluation order, and add `from_country` to account for the sender's country.\n\nDefault coverage varies by country. If a country has no default rules, the service does not recognize keywords, send replies, or record opt-outs there. You can add `custom` keywords for that country. Opt-out, opt-in, and help rules require default coverage.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "NL",
                      "description": "Keep only rules that apply in this country, as an ISO 3166-1 alpha-2 code. Omit for every country the default catalog covers, plus your own rules.\n"
                    },
                    {
                      "disabled": false,
                      "key": "number",
                      "value": "+18005551234",
                      "description": "Keep only the rules that apply to this number of yours, in E.164 format or as a short code, ordered the way they are applied to an inbound message.\n"
                    },
                    {
                      "disabled": false,
                      "key": "from_country",
                      "value": "CA",
                      "description": "The country a sender is messaging from, as an ISO 3166-1 alpha-2 code. Use it with `number` to see what someone in that country gets, which can differ from what a local sender gets. Ignored without `number`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "operation",
                      "value": "",
                      "description": "Keep only rules for this operation. Omit for all of them."
                    },
                    {
                      "disabled": true,
                      "key": "scope",
                      "value": "",
                      "description": "Keep only default rules (`system`) or only the rules you created (`workspace`). Omit for both.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"scope\": \"system\",\n      \"operation\": \"stop\",\n      \"country\": \"NL\",\n      \"language\": \"fr\",\n      \"number\": \"+18005551234\",\n      \"keywords\": [\n        \"pizza\",\n        \"menu\"\n      ],\n      \"effective_keywords\": [\n        \"stop\",\n        \"stoppen\",\n        \"afmelden\"\n      ],\n      \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n      \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n      \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n      \"mandatory\": true,\n      \"created_at\": \"2026-08-12T09:00:00Z\",\n      \"updated_at\": \"2026-08-12T09:00:00Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8089332e-c758-864e-8e8b-ce64acc29fa7",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List SMS keyword rules",
                "description": {
                  "content": "Returns the default and workspace keyword rules that apply to inbound messages, most specific first. Where the default catalog covers a country, opt-out, opt-in, and help keywords work without setup.\n\nUse the filters to narrow the full, unpaginated list. Set `scope=system` for default rules only. Set `number` for rules in evaluation order, and add `from_country` to account for the sender's country.\n\nDefault coverage varies by country. If a country has no default rules, the service does not recognize keywords, send replies, or record opt-outs there. You can add `custom` keywords for that country. Opt-out, opt-in, and help rules require default coverage.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "country",
                      "value": "NL",
                      "description": "Keep only rules that apply in this country, as an ISO 3166-1 alpha-2 code. Omit for every country the default catalog covers, plus your own rules.\n"
                    },
                    {
                      "disabled": false,
                      "key": "number",
                      "value": "+18005551234",
                      "description": "Keep only the rules that apply to this number of yours, in E.164 format or as a short code, ordered the way they are applied to an inbound message.\n"
                    },
                    {
                      "disabled": false,
                      "key": "from_country",
                      "value": "CA",
                      "description": "The country a sender is messaging from, as an ISO 3166-1 alpha-2 code. Use it with `number` to see what someone in that country gets, which can differ from what a local sender gets. Ignored without `number`.\n"
                    },
                    {
                      "disabled": true,
                      "key": "operation",
                      "value": "",
                      "description": "Keep only rules for this operation. Omit for all of them."
                    },
                    {
                      "disabled": true,
                      "key": "scope",
                      "value": "",
                      "description": "Keep only default rules (`system`) or only the rules you created (`workspace`). Omit for both.\n"
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"scope\": \"system\",\n      \"operation\": \"stop\",\n      \"country\": \"NL\",\n      \"language\": \"fr\",\n      \"number\": \"+18005551234\",\n      \"keywords\": [\n        \"pizza\",\n        \"menu\"\n      ],\n      \"effective_keywords\": [\n        \"stop\",\n        \"stoppen\",\n        \"afmelden\"\n      ],\n      \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n      \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n      \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n      \"mandatory\": true,\n      \"created_at\": \"2026-08-12T09:00:00Z\",\n      \"updated_at\": \"2026-08-12T09:00:00Z\"\n    }\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "1babab5f-6f46-8770-824c-64329adb4b7e",
          "name": "Create an SMS keyword rule",
          "request": {
            "name": "Create an SMS keyword rule",
            "description": {
              "content": "Creates a workspace keyword rule. Use it to replace the default opt-out, opt-in, or help reply for one country, or to add a `custom` keyword.\n\nYour rule takes precedence over the default for the same country and keeps default keywords unless you add more. Opt-out and opt-in keywords cannot be assigned to another operation.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "keyword-rules"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"confirmed_self_managed\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "939219d5-49e5-825e-842e-7ec9c30efa0e",
              "name": "The created rule.",
              "originalRequest": {
                "name": "Create an SMS keyword rule",
                "description": {
                  "content": "Creates a workspace keyword rule. Use it to replace the default opt-out, opt-in, or help reply for one country, or to add a `custom` keyword.\n\nYour rule takes precedence over the default for the same country and keeps default keywords unless you add more. Opt-out and opt-in keywords cannot be assigned to another operation.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"confirmed_self_managed\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"scope\": \"system\",\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"effective_keywords\": [\n    \"stop\",\n    \"stoppen\",\n    \"afmelden\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n  \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n  \"mandatory\": true,\n  \"created_at\": \"2026-08-12T09:00:00Z\",\n  \"updated_at\": \"2026-08-12T09:00:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "98b7da3d-3cd4-867b-83fd-ae8cec2da068",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create an SMS keyword rule",
                "description": {
                  "content": "Creates a workspace keyword rule. Use it to replace the default opt-out, opt-in, or help reply for one country, or to add a `custom` keyword.\n\nYour rule takes precedence over the default for the same country and keeps default keywords unless you add more. Opt-out and opt-in keywords cannot be assigned to another operation.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"confirmed_self_managed\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"scope\": \"system\",\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"effective_keywords\": [\n    \"stop\",\n    \"stoppen\",\n    \"afmelden\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n  \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n  \"mandatory\": true,\n  \"created_at\": \"2026-08-12T09:00:00Z\",\n  \"updated_at\": \"2026-08-12T09:00:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ff256a52-ce98-8a24-8f31-0d088e137012",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create an SMS keyword rule",
                "description": {
                  "content": "Creates a workspace keyword rule. Use it to replace the default opt-out, opt-in, or help reply for one country, or to add a `custom` keyword.\n\nYour rule takes precedence over the default for the same country and keeps default keywords unless you add more. Opt-out and opt-in keywords cannot be assigned to another operation.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"confirmed_self_managed\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"scope\": \"system\",\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"effective_keywords\": [\n    \"stop\",\n    \"stoppen\",\n    \"afmelden\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n  \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n  \"mandatory\": true,\n  \"created_at\": \"2026-08-12T09:00:00Z\",\n  \"updated_at\": \"2026-08-12T09:00:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "96b9dc55-dee0-8f76-8667-d3e9b50f3f2e",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create an SMS keyword rule",
                "description": {
                  "content": "Creates a workspace keyword rule. Use it to replace the default opt-out, opt-in, or help reply for one country, or to add a `custom` keyword.\n\nYour rule takes precedence over the default for the same country and keeps default keywords unless you add more. Opt-out and opt-in keywords cannot be assigned to another operation.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"confirmed_self_managed\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"scope\": \"system\",\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"effective_keywords\": [\n    \"stop\",\n    \"stoppen\",\n    \"afmelden\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n  \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n  \"mandatory\": true,\n  \"created_at\": \"2026-08-12T09:00:00Z\",\n  \"updated_at\": \"2026-08-12T09:00:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "64d77f54-d0c8-871b-8114-6c16d28d9557",
              "name": "Resource conflict",
              "originalRequest": {
                "name": "Create an SMS keyword rule",
                "description": {
                  "content": "Creates a workspace keyword rule. Use it to replace the default opt-out, opt-in, or help reply for one country, or to add a `custom` keyword.\n\nYour rule takes precedence over the default for the same country and keeps default keywords unless you add more. Opt-out and opt-in keywords cannot be assigned to another operation.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"confirmed_self_managed\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"scope\": \"system\",\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"effective_keywords\": [\n    \"stop\",\n    \"stoppen\",\n    \"afmelden\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n  \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n  \"mandatory\": true,\n  \"created_at\": \"2026-08-12T09:00:00Z\",\n  \"updated_at\": \"2026-08-12T09:00:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "51cc657a-6432-8b7a-81f7-e5a3e2d9c78b",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create an SMS keyword rule",
                "description": {
                  "content": "Creates a workspace keyword rule. Use it to replace the default opt-out, opt-in, or help reply for one country, or to add a `custom` keyword.\n\nYour rule takes precedence over the default for the same country and keeps default keywords unless you add more. Opt-out and opt-in keywords cannot be assigned to another operation.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"confirmed_self_managed\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"scope\": \"system\",\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"effective_keywords\": [\n    \"stop\",\n    \"stoppen\",\n    \"afmelden\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n  \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n  \"mandatory\": true,\n  \"created_at\": \"2026-08-12T09:00:00Z\",\n  \"updated_at\": \"2026-08-12T09:00:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9ef26d6c-2141-8440-8c00-5906a94ea86f",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create an SMS keyword rule",
                "description": {
                  "content": "Creates a workspace keyword rule. Use it to replace the default opt-out, opt-in, or help reply for one country, or to add a `custom` keyword.\n\nYour rule takes precedence over the default for the same country and keeps default keywords unless you add more. Opt-out and opt-in keywords cannot be assigned to another operation.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"confirmed_self_managed\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 201,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"scope\": \"system\",\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"effective_keywords\": [\n    \"stop\",\n    \"stoppen\",\n    \"afmelden\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n  \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n  \"mandatory\": true,\n  \"created_at\": \"2026-08-12T09:00:00Z\",\n  \"updated_at\": \"2026-08-12T09:00:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "beafacc2-fafa-8120-887f-3fb5e2517322",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create an SMS keyword rule",
                "description": {
                  "content": "Creates a workspace keyword rule. Use it to replace the default opt-out, opt-in, or help reply for one country, or to add a `custom` keyword.\n\nYour rule takes precedence over the default for the same country and keeps default keywords unless you add more. Opt-out and opt-in keywords cannot be assigned to another operation.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"confirmed_self_managed\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 201,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"scope\": \"system\",\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"effective_keywords\": [\n    \"stop\",\n    \"stoppen\",\n    \"afmelden\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n  \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n  \"mandatory\": true,\n  \"created_at\": \"2026-08-12T09:00:00Z\",\n  \"updated_at\": \"2026-08-12T09:00:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "1feb23d8-61eb-8b71-8464-afa431393c9b",
          "name": "Get an SMS keyword rule",
          "request": {
            "name": "Get an SMS keyword rule",
            "description": {
              "content": "Returns one keyword rule, either one of Bird's defaults or one you created, including\nevery keyword that matches it and the reply it sends.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "keyword-rules",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "id",
                  "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "302825c5-db0a-8ed5-87c4-9910e9df16a0",
              "name": "The keyword rule.",
              "originalRequest": {
                "name": "Get an SMS keyword rule",
                "description": {
                  "content": "Returns one keyword rule, either one of Bird's defaults or one you created, including\nevery keyword that matches it and the reply it sends.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "id",
                      "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"scope\": \"system\",\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"effective_keywords\": [\n    \"stop\",\n    \"stoppen\",\n    \"afmelden\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n  \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n  \"mandatory\": true,\n  \"created_at\": \"2026-08-12T09:00:00Z\",\n  \"updated_at\": \"2026-08-12T09:00:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "316e07bf-7f97-8c66-843d-c97d51596cf7",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get an SMS keyword rule",
                "description": {
                  "content": "Returns one keyword rule, either one of Bird's defaults or one you created, including\nevery keyword that matches it and the reply it sends.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "id",
                      "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"scope\": \"system\",\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"effective_keywords\": [\n    \"stop\",\n    \"stoppen\",\n    \"afmelden\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n  \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n  \"mandatory\": true,\n  \"created_at\": \"2026-08-12T09:00:00Z\",\n  \"updated_at\": \"2026-08-12T09:00:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d4abf903-c112-8980-8a5c-c9a9a06c694c",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get an SMS keyword rule",
                "description": {
                  "content": "Returns one keyword rule, either one of Bird's defaults or one you created, including\nevery keyword that matches it and the reply it sends.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "id",
                      "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"scope\": \"system\",\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"effective_keywords\": [\n    \"stop\",\n    \"stoppen\",\n    \"afmelden\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n  \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n  \"mandatory\": true,\n  \"created_at\": \"2026-08-12T09:00:00Z\",\n  \"updated_at\": \"2026-08-12T09:00:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8bf4cf58-055a-8817-8203-85b4ffc48fde",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get an SMS keyword rule",
                "description": {
                  "content": "Returns one keyword rule, either one of Bird's defaults or one you created, including\nevery keyword that matches it and the reply it sends.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "id",
                      "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"scope\": \"system\",\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"effective_keywords\": [\n    \"stop\",\n    \"stoppen\",\n    \"afmelden\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n  \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n  \"mandatory\": true,\n  \"created_at\": \"2026-08-12T09:00:00Z\",\n  \"updated_at\": \"2026-08-12T09:00:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "37cdf4a0-049e-8985-8816-11b0b47bb0b4",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get an SMS keyword rule",
                "description": {
                  "content": "Returns one keyword rule, either one of Bird's defaults or one you created, including\nevery keyword that matches it and the reply it sends.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "id",
                      "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"scope\": \"system\",\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"effective_keywords\": [\n    \"stop\",\n    \"stoppen\",\n    \"afmelden\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n  \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n  \"mandatory\": true,\n  \"created_at\": \"2026-08-12T09:00:00Z\",\n  \"updated_at\": \"2026-08-12T09:00:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d050d07a-c302-886e-8b6b-cc4b10f9e151",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get an SMS keyword rule",
                "description": {
                  "content": "Returns one keyword rule, either one of Bird's defaults or one you created, including\nevery keyword that matches it and the reply it sends.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "id",
                      "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"scope\": \"system\",\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"effective_keywords\": [\n    \"stop\",\n    \"stoppen\",\n    \"afmelden\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n  \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n  \"mandatory\": true,\n  \"created_at\": \"2026-08-12T09:00:00Z\",\n  \"updated_at\": \"2026-08-12T09:00:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ab76c351-ad21-8e95-8e66-1e909181bd7e",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get an SMS keyword rule",
                "description": {
                  "content": "Returns one keyword rule, either one of Bird's defaults or one you created, including\nevery keyword that matches it and the reply it sends.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "id",
                      "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"scope\": \"system\",\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"effective_keywords\": [\n    \"stop\",\n    \"stoppen\",\n    \"afmelden\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n  \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n  \"mandatory\": true,\n  \"created_at\": \"2026-08-12T09:00:00Z\",\n  \"updated_at\": \"2026-08-12T09:00:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "a14ae7fa-0556-8799-820f-be67dadb0ed2",
          "name": "Update an SMS keyword rule",
          "request": {
            "name": "Update an SMS keyword rule",
            "description": {
              "content": "Changes the reply or the added keywords of a rule you created. Bird's defaults cannot be\nchanged. To replace one, create a rule with the same operation and country and yours\ntakes precedence.\n\nWhat the rule applies to is fixed once created, so this changes the reply and the keywords\nonly.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "keyword-rules",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "id",
                  "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "PATCH",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"confirmed_self_managed\": true\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "cdfd746d-c458-82fd-8675-fa4165304cb2",
              "name": "The updated rule.",
              "originalRequest": {
                "name": "Update an SMS keyword rule",
                "description": {
                  "content": "Changes the reply or the added keywords of a rule you created. Bird's defaults cannot be\nchanged. To replace one, create a rule with the same operation and country and yours\ntakes precedence.\n\nWhat the rule applies to is fixed once created, so this changes the reply and the keywords\nonly.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "id",
                      "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"confirmed_self_managed\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"scope\": \"system\",\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"effective_keywords\": [\n    \"stop\",\n    \"stoppen\",\n    \"afmelden\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n  \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n  \"mandatory\": true,\n  \"created_at\": \"2026-08-12T09:00:00Z\",\n  \"updated_at\": \"2026-08-12T09:00:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "11b09d2b-7b2e-8aaa-872b-6e8a2cc28ba9",
              "name": "Bad request",
              "originalRequest": {
                "name": "Update an SMS keyword rule",
                "description": {
                  "content": "Changes the reply or the added keywords of a rule you created. Bird's defaults cannot be\nchanged. To replace one, create a rule with the same operation and country and yours\ntakes precedence.\n\nWhat the rule applies to is fixed once created, so this changes the reply and the keywords\nonly.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "id",
                      "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"confirmed_self_managed\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"scope\": \"system\",\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"effective_keywords\": [\n    \"stop\",\n    \"stoppen\",\n    \"afmelden\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n  \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n  \"mandatory\": true,\n  \"created_at\": \"2026-08-12T09:00:00Z\",\n  \"updated_at\": \"2026-08-12T09:00:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1d2daee6-fd96-88f0-8e8a-82a7fd3d26d4",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Update an SMS keyword rule",
                "description": {
                  "content": "Changes the reply or the added keywords of a rule you created. Bird's defaults cannot be\nchanged. To replace one, create a rule with the same operation and country and yours\ntakes precedence.\n\nWhat the rule applies to is fixed once created, so this changes the reply and the keywords\nonly.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "id",
                      "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"confirmed_self_managed\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"scope\": \"system\",\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"effective_keywords\": [\n    \"stop\",\n    \"stoppen\",\n    \"afmelden\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n  \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n  \"mandatory\": true,\n  \"created_at\": \"2026-08-12T09:00:00Z\",\n  \"updated_at\": \"2026-08-12T09:00:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c2d66214-cba6-862c-8853-097496ad52c5",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Update an SMS keyword rule",
                "description": {
                  "content": "Changes the reply or the added keywords of a rule you created. Bird's defaults cannot be\nchanged. To replace one, create a rule with the same operation and country and yours\ntakes precedence.\n\nWhat the rule applies to is fixed once created, so this changes the reply and the keywords\nonly.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "id",
                      "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"confirmed_self_managed\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"scope\": \"system\",\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"effective_keywords\": [\n    \"stop\",\n    \"stoppen\",\n    \"afmelden\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n  \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n  \"mandatory\": true,\n  \"created_at\": \"2026-08-12T09:00:00Z\",\n  \"updated_at\": \"2026-08-12T09:00:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1811596b-4cb2-8731-8367-764e5da9fd60",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Update an SMS keyword rule",
                "description": {
                  "content": "Changes the reply or the added keywords of a rule you created. Bird's defaults cannot be\nchanged. To replace one, create a rule with the same operation and country and yours\ntakes precedence.\n\nWhat the rule applies to is fixed once created, so this changes the reply and the keywords\nonly.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "id",
                      "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"confirmed_self_managed\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"scope\": \"system\",\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"effective_keywords\": [\n    \"stop\",\n    \"stoppen\",\n    \"afmelden\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n  \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n  \"mandatory\": true,\n  \"created_at\": \"2026-08-12T09:00:00Z\",\n  \"updated_at\": \"2026-08-12T09:00:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "aaa5a6a4-c041-83ce-87fa-119d2ff4136e",
              "name": "Resource conflict",
              "originalRequest": {
                "name": "Update an SMS keyword rule",
                "description": {
                  "content": "Changes the reply or the added keywords of a rule you created. Bird's defaults cannot be\nchanged. To replace one, create a rule with the same operation and country and yours\ntakes precedence.\n\nWhat the rule applies to is fixed once created, so this changes the reply and the keywords\nonly.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "id",
                      "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"confirmed_self_managed\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Conflict",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"scope\": \"system\",\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"effective_keywords\": [\n    \"stop\",\n    \"stoppen\",\n    \"afmelden\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n  \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n  \"mandatory\": true,\n  \"created_at\": \"2026-08-12T09:00:00Z\",\n  \"updated_at\": \"2026-08-12T09:00:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0438ab8c-34a0-8ef0-8287-72d482781aa7",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Update an SMS keyword rule",
                "description": {
                  "content": "Changes the reply or the added keywords of a rule you created. Bird's defaults cannot be\nchanged. To replace one, create a rule with the same operation and country and yours\ntakes precedence.\n\nWhat the rule applies to is fixed once created, so this changes the reply and the keywords\nonly.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "id",
                      "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"confirmed_self_managed\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"scope\": \"system\",\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"effective_keywords\": [\n    \"stop\",\n    \"stoppen\",\n    \"afmelden\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n  \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n  \"mandatory\": true,\n  \"created_at\": \"2026-08-12T09:00:00Z\",\n  \"updated_at\": \"2026-08-12T09:00:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c9925043-ba1b-8e8e-8daf-f30190256fb9",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Update an SMS keyword rule",
                "description": {
                  "content": "Changes the reply or the added keywords of a rule you created. Bird's defaults cannot be\nchanged. To replace one, create a rule with the same operation and country and yours\ntakes precedence.\n\nWhat the rule applies to is fixed once created, so this changes the reply and the keywords\nonly.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "id",
                      "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"confirmed_self_managed\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"scope\": \"system\",\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"effective_keywords\": [\n    \"stop\",\n    \"stoppen\",\n    \"afmelden\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n  \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n  \"mandatory\": true,\n  \"created_at\": \"2026-08-12T09:00:00Z\",\n  \"updated_at\": \"2026-08-12T09:00:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "771e1cf5-0d82-8b17-8d42-be2b127d5f19",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Update an SMS keyword rule",
                "description": {
                  "content": "Changes the reply or the added keywords of a rule you created. Bird's defaults cannot be\nchanged. To replace one, create a rule with the same operation and country and yours\ntakes precedence.\n\nWhat the rule applies to is fixed once created, so this changes the reply and the keywords\nonly.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "id",
                      "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"confirmed_self_managed\": true\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"skw_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"scope\": \"system\",\n  \"operation\": \"stop\",\n  \"country\": \"NL\",\n  \"language\": \"fr\",\n  \"number\": \"+18005551234\",\n  \"keywords\": [\n    \"pizza\",\n    \"menu\"\n  ],\n  \"effective_keywords\": [\n    \"stop\",\n    \"stoppen\",\n    \"afmelden\"\n  ],\n  \"reply\": \"You have been unsubscribed and will receive no further messages.\",\n  \"reply_suffix\": \"Msg&data rates may apply. Reply STOP to unsubscribe.\",\n  \"reply_disabled_at\": \"2026-08-12T09:00:00Z\",\n  \"mandatory\": true,\n  \"created_at\": \"2026-08-12T09:00:00Z\",\n  \"updated_at\": \"2026-08-12T09:00:00Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "3224662f-97bc-83a0-83bf-4199ff7aaa5b",
          "name": "Delete an SMS keyword rule",
          "request": {
            "name": "Delete an SMS keyword rule",
            "description": {
              "content": "Deletes a rule you created. Bird's default for that operation and country applies again straight away, so deleting an opt-out rule restores Bird's reply rather than switching opt-out off. Bird's defaults cannot be deleted.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "keyword-rules",
                ":id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "id",
                  "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "DELETE"
          },
          "response": [
            {
              "id": "97d6c8dd-da13-8604-8020-4f334f73f365",
              "name": "The rule was deleted.",
              "originalRequest": {
                "name": "Delete an SMS keyword rule",
                "description": {
                  "content": "Deletes a rule you created. Bird's default for that operation and country applies again straight away, so deleting an opt-out rule restores Bird's reply rather than switching opt-out off. Bird's defaults cannot be deleted.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "id",
                      "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "d32e5761-f440-8d22-8f20-f120f33b16cf",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Delete an SMS keyword rule",
                "description": {
                  "content": "Deletes a rule you created. Bird's default for that operation and country applies again straight away, so deleting an opt-out rule restores Bird's reply rather than switching opt-out off. Bird's defaults cannot be deleted.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "id",
                      "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a4f8917f-8f04-80ca-8786-20d1ccc9724f",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Delete an SMS keyword rule",
                "description": {
                  "content": "Deletes a rule you created. Bird's default for that operation and country applies again straight away, so deleting an opt-out rule restores Bird's reply rather than switching opt-out off. Bird's defaults cannot be deleted.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "id",
                      "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "8cd9a647-bf8f-88c7-8574-4bbaf0602fed",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Delete an SMS keyword rule",
                "description": {
                  "content": "Deletes a rule you created. Bird's default for that operation and country applies again straight away, so deleting an opt-out rule restores Bird's reply rather than switching opt-out off. Bird's defaults cannot be deleted.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "id",
                      "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b4a02865-02b1-846e-8475-f67dc5ae11c2",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Delete an SMS keyword rule",
                "description": {
                  "content": "Deletes a rule you created. Bird's default for that operation and country applies again straight away, so deleting an opt-out rule restores Bird's reply rather than switching opt-out off. Bird's defaults cannot be deleted.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "id",
                      "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e9a64cbe-7d48-8ca8-835e-284c244efa91",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Delete an SMS keyword rule",
                "description": {
                  "content": "Deletes a rule you created. Bird's default for that operation and country applies again straight away, so deleting an opt-out rule restores Bird's reply rather than switching opt-out off. Bird's defaults cannot be deleted.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "id",
                      "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3f50a077-d0a4-81b0-863d-5828ee4c778a",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Delete an SMS keyword rule",
                "description": {
                  "content": "Deletes a rule you created. Bird's default for that operation and country applies again straight away, so deleting an opt-out rule restores Bird's reply rather than switching opt-out off. Bird's defaults cannot be deleted.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "keyword-rules",
                    ":id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "id",
                      "description": "(Required) ID of the default or workspace keyword rule, as returned by the list operation."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "67284b26-d03b-8be2-8d40-b0a11247f2e5",
      "name": "lookup",
      "description": {
        "content": "Inspect a recipient before sending. Phone-number lookups return carrier, portability, number type, reachability, roaming, SIM-change, and fraud-risk data when requested. Email lookups return deliverability, confidence, failure reasons, and suggested corrections for likely misspellings.\n",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "9ae267b1-d749-809b-8999-831ef6d50baf",
          "name": "Create a phone number lookup",
          "request": {
            "name": "Create a phone number lookup",
            "description": {
              "content": "Returns the number's serving and issuing networks, porting state, country, and line type. The baseline fields are included in each lookup. Request additional `type` blocks for classification, presence, roaming, SIM-swap, porting-history, or credibility data. Each block reports its own `status`; only blocks with an `ok` status incur an additional charge.\n\nThis form keeps the number out of the URL. The [URL form](https://bird.com/docs/api/reference/get-phone-number-lookup) performs the same lookup but cannot use an idempotency key. With this form, reuse an `Idempotency-Key` to return the stored result without another lookup or charge.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "lookup",
                "phone-number"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"phone_number\": \"+31612345678\",\n  \"type\": [\n    \"classification\",\n    \"presence\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "758bfe77-2235-8cef-8548-aeac450ef6fc",
              "name": "Available network and number-intelligence information.",
              "originalRequest": {
                "name": "Create a phone number lookup",
                "description": {
                  "content": "Returns the number's serving and issuing networks, porting state, country, and line type. The baseline fields are included in each lookup. Request additional `type` blocks for classification, presence, roaming, SIM-swap, porting-history, or credibility data. Each block reports its own `status`; only blocks with an `ok` status incur an additional charge.\n\nThis form keeps the number out of the URL. The [URL form](https://bird.com/docs/api/reference/get-phone-number-lookup) performs the same lookup but cannot use an idempotency key. With this form, reuse an `Idempotency-Key` to return the stored result without another lookup or charge.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "phone-number"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+31612345678\",\n  \"type\": [\n    \"classification\",\n    \"presence\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"phone_number\": \"+441904123456\",\n  \"country_code\": \"GB\",\n  \"network_info\": {\n    \"carrier_name\": \"BT\",\n    \"mcc\": \"234\",\n    \"mnc\": \"00\"\n  },\n  \"original_network_info\": null,\n  \"flags\": [],\n  \"line_type\": \"service\",\n  \"classification\": {\n    \"status\": \"ok\",\n    \"value\": \"premium_rate\"\n  },\n  \"score\": {\n    \"status\": \"ok\",\n    \"value\": 48\n  },\n  \"presence\": {\n    \"status\": \"ok\",\n    \"reachable\": true\n  },\n  \"roaming\": {\n    \"status\": \"unavailable\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "01ad7804-701e-8471-80fb-b41543b6800e",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create a phone number lookup",
                "description": {
                  "content": "Returns the number's serving and issuing networks, porting state, country, and line type. The baseline fields are included in each lookup. Request additional `type` blocks for classification, presence, roaming, SIM-swap, porting-history, or credibility data. Each block reports its own `status`; only blocks with an `ok` status incur an additional charge.\n\nThis form keeps the number out of the URL. The [URL form](https://bird.com/docs/api/reference/get-phone-number-lookup) performs the same lookup but cannot use an idempotency key. With this form, reuse an `Idempotency-Key` to return the stored result without another lookup or charge.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "phone-number"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+31612345678\",\n  \"type\": [\n    \"classification\",\n    \"presence\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"phone_number\": \"+441904123456\",\n  \"country_code\": \"GB\",\n  \"network_info\": {\n    \"carrier_name\": \"BT\",\n    \"mcc\": \"234\",\n    \"mnc\": \"00\"\n  },\n  \"original_network_info\": null,\n  \"flags\": [],\n  \"line_type\": \"service\",\n  \"classification\": {\n    \"status\": \"ok\",\n    \"value\": \"premium_rate\"\n  },\n  \"score\": {\n    \"status\": \"ok\",\n    \"value\": 48\n  },\n  \"presence\": {\n    \"status\": \"ok\",\n    \"reachable\": true\n  },\n  \"roaming\": {\n    \"status\": \"unavailable\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "12e74fc9-f029-8bea-8b26-28db61b3b202",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create a phone number lookup",
                "description": {
                  "content": "Returns the number's serving and issuing networks, porting state, country, and line type. The baseline fields are included in each lookup. Request additional `type` blocks for classification, presence, roaming, SIM-swap, porting-history, or credibility data. Each block reports its own `status`; only blocks with an `ok` status incur an additional charge.\n\nThis form keeps the number out of the URL. The [URL form](https://bird.com/docs/api/reference/get-phone-number-lookup) performs the same lookup but cannot use an idempotency key. With this form, reuse an `Idempotency-Key` to return the stored result without another lookup or charge.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "phone-number"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+31612345678\",\n  \"type\": [\n    \"classification\",\n    \"presence\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"phone_number\": \"+441904123456\",\n  \"country_code\": \"GB\",\n  \"network_info\": {\n    \"carrier_name\": \"BT\",\n    \"mcc\": \"234\",\n    \"mnc\": \"00\"\n  },\n  \"original_network_info\": null,\n  \"flags\": [],\n  \"line_type\": \"service\",\n  \"classification\": {\n    \"status\": \"ok\",\n    \"value\": \"premium_rate\"\n  },\n  \"score\": {\n    \"status\": \"ok\",\n    \"value\": 48\n  },\n  \"presence\": {\n    \"status\": \"ok\",\n    \"reachable\": true\n  },\n  \"roaming\": {\n    \"status\": \"unavailable\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e158f552-f55a-8235-8947-c4b0ed8dc49a",
              "name": "Insufficient balance",
              "originalRequest": {
                "name": "Create a phone number lookup",
                "description": {
                  "content": "Returns the number's serving and issuing networks, porting state, country, and line type. The baseline fields are included in each lookup. Request additional `type` blocks for classification, presence, roaming, SIM-swap, porting-history, or credibility data. Each block reports its own `status`; only blocks with an `ok` status incur an additional charge.\n\nThis form keeps the number out of the URL. The [URL form](https://bird.com/docs/api/reference/get-phone-number-lookup) performs the same lookup but cannot use an idempotency key. With this form, reuse an `Idempotency-Key` to return the stored result without another lookup or charge.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "phone-number"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+31612345678\",\n  \"type\": [\n    \"classification\",\n    \"presence\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Payment Required",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"phone_number\": \"+441904123456\",\n  \"country_code\": \"GB\",\n  \"network_info\": {\n    \"carrier_name\": \"BT\",\n    \"mcc\": \"234\",\n    \"mnc\": \"00\"\n  },\n  \"original_network_info\": null,\n  \"flags\": [],\n  \"line_type\": \"service\",\n  \"classification\": {\n    \"status\": \"ok\",\n    \"value\": \"premium_rate\"\n  },\n  \"score\": {\n    \"status\": \"ok\",\n    \"value\": 48\n  },\n  \"presence\": {\n    \"status\": \"ok\",\n    \"reachable\": true\n  },\n  \"roaming\": {\n    \"status\": \"unavailable\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ef7bc336-1b38-80f9-891d-76fb1ebe433f",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create a phone number lookup",
                "description": {
                  "content": "Returns the number's serving and issuing networks, porting state, country, and line type. The baseline fields are included in each lookup. Request additional `type` blocks for classification, presence, roaming, SIM-swap, porting-history, or credibility data. Each block reports its own `status`; only blocks with an `ok` status incur an additional charge.\n\nThis form keeps the number out of the URL. The [URL form](https://bird.com/docs/api/reference/get-phone-number-lookup) performs the same lookup but cannot use an idempotency key. With this form, reuse an `Idempotency-Key` to return the stored result without another lookup or charge.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "phone-number"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+31612345678\",\n  \"type\": [\n    \"classification\",\n    \"presence\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"phone_number\": \"+441904123456\",\n  \"country_code\": \"GB\",\n  \"network_info\": {\n    \"carrier_name\": \"BT\",\n    \"mcc\": \"234\",\n    \"mnc\": \"00\"\n  },\n  \"original_network_info\": null,\n  \"flags\": [],\n  \"line_type\": \"service\",\n  \"classification\": {\n    \"status\": \"ok\",\n    \"value\": \"premium_rate\"\n  },\n  \"score\": {\n    \"status\": \"ok\",\n    \"value\": 48\n  },\n  \"presence\": {\n    \"status\": \"ok\",\n    \"reachable\": true\n  },\n  \"roaming\": {\n    \"status\": \"unavailable\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6158ca07-1efc-8eea-83b1-5cd72fea63d4",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create a phone number lookup",
                "description": {
                  "content": "Returns the number's serving and issuing networks, porting state, country, and line type. The baseline fields are included in each lookup. Request additional `type` blocks for classification, presence, roaming, SIM-swap, porting-history, or credibility data. Each block reports its own `status`; only blocks with an `ok` status incur an additional charge.\n\nThis form keeps the number out of the URL. The [URL form](https://bird.com/docs/api/reference/get-phone-number-lookup) performs the same lookup but cannot use an idempotency key. With this form, reuse an `Idempotency-Key` to return the stored result without another lookup or charge.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "phone-number"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+31612345678\",\n  \"type\": [\n    \"classification\",\n    \"presence\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"phone_number\": \"+441904123456\",\n  \"country_code\": \"GB\",\n  \"network_info\": {\n    \"carrier_name\": \"BT\",\n    \"mcc\": \"234\",\n    \"mnc\": \"00\"\n  },\n  \"original_network_info\": null,\n  \"flags\": [],\n  \"line_type\": \"service\",\n  \"classification\": {\n    \"status\": \"ok\",\n    \"value\": \"premium_rate\"\n  },\n  \"score\": {\n    \"status\": \"ok\",\n    \"value\": 48\n  },\n  \"presence\": {\n    \"status\": \"ok\",\n    \"reachable\": true\n  },\n  \"roaming\": {\n    \"status\": \"unavailable\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "db2bbbf3-8f59-858e-8e76-a82cd5019613",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create a phone number lookup",
                "description": {
                  "content": "Returns the number's serving and issuing networks, porting state, country, and line type. The baseline fields are included in each lookup. Request additional `type` blocks for classification, presence, roaming, SIM-swap, porting-history, or credibility data. Each block reports its own `status`; only blocks with an `ok` status incur an additional charge.\n\nThis form keeps the number out of the URL. The [URL form](https://bird.com/docs/api/reference/get-phone-number-lookup) performs the same lookup but cannot use an idempotency key. With this form, reuse an `Idempotency-Key` to return the stored result without another lookup or charge.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "phone-number"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+31612345678\",\n  \"type\": [\n    \"classification\",\n    \"presence\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"phone_number\": \"+441904123456\",\n  \"country_code\": \"GB\",\n  \"network_info\": {\n    \"carrier_name\": \"BT\",\n    \"mcc\": \"234\",\n    \"mnc\": \"00\"\n  },\n  \"original_network_info\": null,\n  \"flags\": [],\n  \"line_type\": \"service\",\n  \"classification\": {\n    \"status\": \"ok\",\n    \"value\": \"premium_rate\"\n  },\n  \"score\": {\n    \"status\": \"ok\",\n    \"value\": 48\n  },\n  \"presence\": {\n    \"status\": \"ok\",\n    \"reachable\": true\n  },\n  \"roaming\": {\n    \"status\": \"unavailable\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2e7487fa-753c-8262-88c1-91a02c1fc276",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create a phone number lookup",
                "description": {
                  "content": "Returns the number's serving and issuing networks, porting state, country, and line type. The baseline fields are included in each lookup. Request additional `type` blocks for classification, presence, roaming, SIM-swap, porting-history, or credibility data. Each block reports its own `status`; only blocks with an `ok` status incur an additional charge.\n\nThis form keeps the number out of the URL. The [URL form](https://bird.com/docs/api/reference/get-phone-number-lookup) performs the same lookup but cannot use an idempotency key. With this form, reuse an `Idempotency-Key` to return the stored result without another lookup or charge.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "phone-number"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+31612345678\",\n  \"type\": [\n    \"classification\",\n    \"presence\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"phone_number\": \"+441904123456\",\n  \"country_code\": \"GB\",\n  \"network_info\": {\n    \"carrier_name\": \"BT\",\n    \"mcc\": \"234\",\n    \"mnc\": \"00\"\n  },\n  \"original_network_info\": null,\n  \"flags\": [],\n  \"line_type\": \"service\",\n  \"classification\": {\n    \"status\": \"ok\",\n    \"value\": \"premium_rate\"\n  },\n  \"score\": {\n    \"status\": \"ok\",\n    \"value\": 48\n  },\n  \"presence\": {\n    \"status\": \"ok\",\n    \"reachable\": true\n  },\n  \"roaming\": {\n    \"status\": \"unavailable\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "74e824ce-0f47-8dc7-8b80-b69b668c991d",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Create a phone number lookup",
                "description": {
                  "content": "Returns the number's serving and issuing networks, porting state, country, and line type. The baseline fields are included in each lookup. Request additional `type` blocks for classification, presence, roaming, SIM-swap, porting-history, or credibility data. Each block reports its own `status`; only blocks with an `ok` status incur an additional charge.\n\nThis form keeps the number out of the URL. The [URL form](https://bird.com/docs/api/reference/get-phone-number-lookup) performs the same lookup but cannot use an idempotency key. With this form, reuse an `Idempotency-Key` to return the stored result without another lookup or charge.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "phone-number"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"phone_number\": \"+31612345678\",\n  \"type\": [\n    \"classification\",\n    \"presence\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"phone_number\": \"+441904123456\",\n  \"country_code\": \"GB\",\n  \"network_info\": {\n    \"carrier_name\": \"BT\",\n    \"mcc\": \"234\",\n    \"mnc\": \"00\"\n  },\n  \"original_network_info\": null,\n  \"flags\": [],\n  \"line_type\": \"service\",\n  \"classification\": {\n    \"status\": \"ok\",\n    \"value\": \"premium_rate\"\n  },\n  \"score\": {\n    \"status\": \"ok\",\n    \"value\": 48\n  },\n  \"presence\": {\n    \"status\": \"ok\",\n    \"reachable\": true\n  },\n  \"roaming\": {\n    \"status\": \"unavailable\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "f7dd69a7-1755-8a6d-8def-4f4fa94710b3",
          "name": "Get a phone number lookup by URL",
          "request": {
            "name": "Get a phone number lookup by URL",
            "description": {
              "content": "Performs the same lookup as [Create a phone number lookup](https://bird.com/docs/api/reference/create-phone-number-lookup), with the number in the URL. The response includes the number's serving and issuing networks, porting state, country, and line type. Repeat `type` to request additional blocks, such as `?type=classification&type=score`; only blocks with an `ok` status incur an additional charge.\n\nBecause the number is in the URL, it can appear in proxies, access logs, and browser history. This form does not accept an `Idempotency-Key`; each retry performs and charges for another lookup.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "lookup",
                "phone-number",
                ":number"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "type",
                  "value": "",
                  "description": "An additional data block to request. Repeat the parameter for multiple blocks; each block is billed separately only when its status is `ok`."
                },
                {
                  "disabled": true,
                  "key": "type",
                  "value": "",
                  "description": "An additional data block to request. Repeat the parameter for multiple blocks; each block is billed separately only when its status is `ok`."
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "number",
                  "description": "(Required) The number to look up, in international format. The leading `+` is optional, and `00` works in its place, so `31612345678` and `+31612345678` are the same number, with nothing to percent-encode. If you do send the `+`, percent-encode it as `%2B` when your client does not do that for you."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "47959de7-5924-8607-8443-a5c94cd5c430",
              "name": "Available network and number-intelligence information.",
              "originalRequest": {
                "name": "Get a phone number lookup by URL",
                "description": {
                  "content": "Performs the same lookup as [Create a phone number lookup](https://bird.com/docs/api/reference/create-phone-number-lookup), with the number in the URL. The response includes the number's serving and issuing networks, porting state, country, and line type. Repeat `type` to request additional blocks, such as `?type=classification&type=score`; only blocks with an `ok` status incur an additional charge.\n\nBecause the number is in the URL, it can appear in proxies, access logs, and browser history. This form does not accept an `Idempotency-Key`; each retry performs and charges for another lookup.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "phone-number",
                    ":number"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "An additional data block to request. Repeat the parameter for multiple blocks; each block is billed separately only when its status is `ok`."
                    },
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "An additional data block to request. Repeat the parameter for multiple blocks; each block is billed separately only when its status is `ok`."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number",
                      "description": "(Required) The number to look up, in international format. The leading `+` is optional, and `00` works in its place, so `31612345678` and `+31612345678` are the same number, with nothing to percent-encode. If you do send the `+`, percent-encode it as `%2B` when your client does not do that for you."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"phone_number\": \"+441904123456\",\n  \"country_code\": \"GB\",\n  \"network_info\": {\n    \"carrier_name\": \"BT\",\n    \"mcc\": \"234\",\n    \"mnc\": \"00\"\n  },\n  \"original_network_info\": null,\n  \"flags\": [],\n  \"line_type\": \"service\",\n  \"classification\": {\n    \"status\": \"ok\",\n    \"value\": \"premium_rate\"\n  },\n  \"score\": {\n    \"status\": \"ok\",\n    \"value\": 48\n  },\n  \"presence\": {\n    \"status\": \"ok\",\n    \"reachable\": true\n  },\n  \"roaming\": {\n    \"status\": \"unavailable\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3f727cc3-ac25-8f23-82fb-14e9f8a37276",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a phone number lookup by URL",
                "description": {
                  "content": "Performs the same lookup as [Create a phone number lookup](https://bird.com/docs/api/reference/create-phone-number-lookup), with the number in the URL. The response includes the number's serving and issuing networks, porting state, country, and line type. Repeat `type` to request additional blocks, such as `?type=classification&type=score`; only blocks with an `ok` status incur an additional charge.\n\nBecause the number is in the URL, it can appear in proxies, access logs, and browser history. This form does not accept an `Idempotency-Key`; each retry performs and charges for another lookup.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "phone-number",
                    ":number"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "An additional data block to request. Repeat the parameter for multiple blocks; each block is billed separately only when its status is `ok`."
                    },
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "An additional data block to request. Repeat the parameter for multiple blocks; each block is billed separately only when its status is `ok`."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number",
                      "description": "(Required) The number to look up, in international format. The leading `+` is optional, and `00` works in its place, so `31612345678` and `+31612345678` are the same number, with nothing to percent-encode. If you do send the `+`, percent-encode it as `%2B` when your client does not do that for you."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"phone_number\": \"+441904123456\",\n  \"country_code\": \"GB\",\n  \"network_info\": {\n    \"carrier_name\": \"BT\",\n    \"mcc\": \"234\",\n    \"mnc\": \"00\"\n  },\n  \"original_network_info\": null,\n  \"flags\": [],\n  \"line_type\": \"service\",\n  \"classification\": {\n    \"status\": \"ok\",\n    \"value\": \"premium_rate\"\n  },\n  \"score\": {\n    \"status\": \"ok\",\n    \"value\": 48\n  },\n  \"presence\": {\n    \"status\": \"ok\",\n    \"reachable\": true\n  },\n  \"roaming\": {\n    \"status\": \"unavailable\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "aff32a6e-1e1e-86a2-8ea0-09e00e6d8a19",
              "name": "Insufficient balance",
              "originalRequest": {
                "name": "Get a phone number lookup by URL",
                "description": {
                  "content": "Performs the same lookup as [Create a phone number lookup](https://bird.com/docs/api/reference/create-phone-number-lookup), with the number in the URL. The response includes the number's serving and issuing networks, porting state, country, and line type. Repeat `type` to request additional blocks, such as `?type=classification&type=score`; only blocks with an `ok` status incur an additional charge.\n\nBecause the number is in the URL, it can appear in proxies, access logs, and browser history. This form does not accept an `Idempotency-Key`; each retry performs and charges for another lookup.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "phone-number",
                    ":number"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "An additional data block to request. Repeat the parameter for multiple blocks; each block is billed separately only when its status is `ok`."
                    },
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "An additional data block to request. Repeat the parameter for multiple blocks; each block is billed separately only when its status is `ok`."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number",
                      "description": "(Required) The number to look up, in international format. The leading `+` is optional, and `00` works in its place, so `31612345678` and `+31612345678` are the same number, with nothing to percent-encode. If you do send the `+`, percent-encode it as `%2B` when your client does not do that for you."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Payment Required",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"phone_number\": \"+441904123456\",\n  \"country_code\": \"GB\",\n  \"network_info\": {\n    \"carrier_name\": \"BT\",\n    \"mcc\": \"234\",\n    \"mnc\": \"00\"\n  },\n  \"original_network_info\": null,\n  \"flags\": [],\n  \"line_type\": \"service\",\n  \"classification\": {\n    \"status\": \"ok\",\n    \"value\": \"premium_rate\"\n  },\n  \"score\": {\n    \"status\": \"ok\",\n    \"value\": 48\n  },\n  \"presence\": {\n    \"status\": \"ok\",\n    \"reachable\": true\n  },\n  \"roaming\": {\n    \"status\": \"unavailable\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "32c54f1f-121d-8a25-8b5c-d6a02aa94d51",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a phone number lookup by URL",
                "description": {
                  "content": "Performs the same lookup as [Create a phone number lookup](https://bird.com/docs/api/reference/create-phone-number-lookup), with the number in the URL. The response includes the number's serving and issuing networks, porting state, country, and line type. Repeat `type` to request additional blocks, such as `?type=classification&type=score`; only blocks with an `ok` status incur an additional charge.\n\nBecause the number is in the URL, it can appear in proxies, access logs, and browser history. This form does not accept an `Idempotency-Key`; each retry performs and charges for another lookup.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "phone-number",
                    ":number"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "An additional data block to request. Repeat the parameter for multiple blocks; each block is billed separately only when its status is `ok`."
                    },
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "An additional data block to request. Repeat the parameter for multiple blocks; each block is billed separately only when its status is `ok`."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number",
                      "description": "(Required) The number to look up, in international format. The leading `+` is optional, and `00` works in its place, so `31612345678` and `+31612345678` are the same number, with nothing to percent-encode. If you do send the `+`, percent-encode it as `%2B` when your client does not do that for you."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"phone_number\": \"+441904123456\",\n  \"country_code\": \"GB\",\n  \"network_info\": {\n    \"carrier_name\": \"BT\",\n    \"mcc\": \"234\",\n    \"mnc\": \"00\"\n  },\n  \"original_network_info\": null,\n  \"flags\": [],\n  \"line_type\": \"service\",\n  \"classification\": {\n    \"status\": \"ok\",\n    \"value\": \"premium_rate\"\n  },\n  \"score\": {\n    \"status\": \"ok\",\n    \"value\": 48\n  },\n  \"presence\": {\n    \"status\": \"ok\",\n    \"reachable\": true\n  },\n  \"roaming\": {\n    \"status\": \"unavailable\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "da3a4a61-9d82-8836-8946-d428887e78c6",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a phone number lookup by URL",
                "description": {
                  "content": "Performs the same lookup as [Create a phone number lookup](https://bird.com/docs/api/reference/create-phone-number-lookup), with the number in the URL. The response includes the number's serving and issuing networks, porting state, country, and line type. Repeat `type` to request additional blocks, such as `?type=classification&type=score`; only blocks with an `ok` status incur an additional charge.\n\nBecause the number is in the URL, it can appear in proxies, access logs, and browser history. This form does not accept an `Idempotency-Key`; each retry performs and charges for another lookup.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "phone-number",
                    ":number"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "An additional data block to request. Repeat the parameter for multiple blocks; each block is billed separately only when its status is `ok`."
                    },
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "An additional data block to request. Repeat the parameter for multiple blocks; each block is billed separately only when its status is `ok`."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number",
                      "description": "(Required) The number to look up, in international format. The leading `+` is optional, and `00` works in its place, so `31612345678` and `+31612345678` are the same number, with nothing to percent-encode. If you do send the `+`, percent-encode it as `%2B` when your client does not do that for you."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"phone_number\": \"+441904123456\",\n  \"country_code\": \"GB\",\n  \"network_info\": {\n    \"carrier_name\": \"BT\",\n    \"mcc\": \"234\",\n    \"mnc\": \"00\"\n  },\n  \"original_network_info\": null,\n  \"flags\": [],\n  \"line_type\": \"service\",\n  \"classification\": {\n    \"status\": \"ok\",\n    \"value\": \"premium_rate\"\n  },\n  \"score\": {\n    \"status\": \"ok\",\n    \"value\": 48\n  },\n  \"presence\": {\n    \"status\": \"ok\",\n    \"reachable\": true\n  },\n  \"roaming\": {\n    \"status\": \"unavailable\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d42da9d8-f7aa-827f-8eb7-84b1c53408c8",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a phone number lookup by URL",
                "description": {
                  "content": "Performs the same lookup as [Create a phone number lookup](https://bird.com/docs/api/reference/create-phone-number-lookup), with the number in the URL. The response includes the number's serving and issuing networks, porting state, country, and line type. Repeat `type` to request additional blocks, such as `?type=classification&type=score`; only blocks with an `ok` status incur an additional charge.\n\nBecause the number is in the URL, it can appear in proxies, access logs, and browser history. This form does not accept an `Idempotency-Key`; each retry performs and charges for another lookup.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "phone-number",
                    ":number"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "An additional data block to request. Repeat the parameter for multiple blocks; each block is billed separately only when its status is `ok`."
                    },
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "An additional data block to request. Repeat the parameter for multiple blocks; each block is billed separately only when its status is `ok`."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number",
                      "description": "(Required) The number to look up, in international format. The leading `+` is optional, and `00` works in its place, so `31612345678` and `+31612345678` are the same number, with nothing to percent-encode. If you do send the `+`, percent-encode it as `%2B` when your client does not do that for you."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"phone_number\": \"+441904123456\",\n  \"country_code\": \"GB\",\n  \"network_info\": {\n    \"carrier_name\": \"BT\",\n    \"mcc\": \"234\",\n    \"mnc\": \"00\"\n  },\n  \"original_network_info\": null,\n  \"flags\": [],\n  \"line_type\": \"service\",\n  \"classification\": {\n    \"status\": \"ok\",\n    \"value\": \"premium_rate\"\n  },\n  \"score\": {\n    \"status\": \"ok\",\n    \"value\": 48\n  },\n  \"presence\": {\n    \"status\": \"ok\",\n    \"reachable\": true\n  },\n  \"roaming\": {\n    \"status\": \"unavailable\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "05d81866-8af6-85b3-8133-c9e6b49a0bf0",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a phone number lookup by URL",
                "description": {
                  "content": "Performs the same lookup as [Create a phone number lookup](https://bird.com/docs/api/reference/create-phone-number-lookup), with the number in the URL. The response includes the number's serving and issuing networks, porting state, country, and line type. Repeat `type` to request additional blocks, such as `?type=classification&type=score`; only blocks with an `ok` status incur an additional charge.\n\nBecause the number is in the URL, it can appear in proxies, access logs, and browser history. This form does not accept an `Idempotency-Key`; each retry performs and charges for another lookup.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "phone-number",
                    ":number"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "An additional data block to request. Repeat the parameter for multiple blocks; each block is billed separately only when its status is `ok`."
                    },
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "An additional data block to request. Repeat the parameter for multiple blocks; each block is billed separately only when its status is `ok`."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number",
                      "description": "(Required) The number to look up, in international format. The leading `+` is optional, and `00` works in its place, so `31612345678` and `+31612345678` are the same number, with nothing to percent-encode. If you do send the `+`, percent-encode it as `%2B` when your client does not do that for you."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"phone_number\": \"+441904123456\",\n  \"country_code\": \"GB\",\n  \"network_info\": {\n    \"carrier_name\": \"BT\",\n    \"mcc\": \"234\",\n    \"mnc\": \"00\"\n  },\n  \"original_network_info\": null,\n  \"flags\": [],\n  \"line_type\": \"service\",\n  \"classification\": {\n    \"status\": \"ok\",\n    \"value\": \"premium_rate\"\n  },\n  \"score\": {\n    \"status\": \"ok\",\n    \"value\": 48\n  },\n  \"presence\": {\n    \"status\": \"ok\",\n    \"reachable\": true\n  },\n  \"roaming\": {\n    \"status\": \"unavailable\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "2b693c4e-e1e0-827c-8eb7-878608f84ee2",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get a phone number lookup by URL",
                "description": {
                  "content": "Performs the same lookup as [Create a phone number lookup](https://bird.com/docs/api/reference/create-phone-number-lookup), with the number in the URL. The response includes the number's serving and issuing networks, porting state, country, and line type. Repeat `type` to request additional blocks, such as `?type=classification&type=score`; only blocks with an `ok` status incur an additional charge.\n\nBecause the number is in the URL, it can appear in proxies, access logs, and browser history. This form does not accept an `Idempotency-Key`; each retry performs and charges for another lookup.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "phone-number",
                    ":number"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "An additional data block to request. Repeat the parameter for multiple blocks; each block is billed separately only when its status is `ok`."
                    },
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "",
                      "description": "An additional data block to request. Repeat the parameter for multiple blocks; each block is billed separately only when its status is `ok`."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "number",
                      "description": "(Required) The number to look up, in international format. The leading `+` is optional, and `00` works in its place, so `31612345678` and `+31612345678` are the same number, with nothing to percent-encode. If you do send the `+`, percent-encode it as `%2B` when your client does not do that for you."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"phone_number\": \"+441904123456\",\n  \"country_code\": \"GB\",\n  \"network_info\": {\n    \"carrier_name\": \"BT\",\n    \"mcc\": \"234\",\n    \"mnc\": \"00\"\n  },\n  \"original_network_info\": null,\n  \"flags\": [],\n  \"line_type\": \"service\",\n  \"classification\": {\n    \"status\": \"ok\",\n    \"value\": \"premium_rate\"\n  },\n  \"score\": {\n    \"status\": \"ok\",\n    \"value\": 48\n  },\n  \"presence\": {\n    \"status\": \"ok\",\n    \"reachable\": true\n  },\n  \"roaming\": {\n    \"status\": \"unavailable\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "d96c5cfe-f67e-8766-8240-9ac12defd7aa",
          "name": "Create an email address lookup",
          "request": {
            "name": "Create an email address lookup",
            "description": {
              "content": "Returns a deliverability `result`, a `delivery_confidence` score, address characteristics, an undeliverable `reason`, and a suggested correction when available. `result` and `reason` are open vocabularies. Handle unknown values and use `delivery_confidence` as the stable fallback. Each completed lookup incurs the same charge regardless of its result.\n\nThis form keeps the address out of the URL. The [URL form](https://bird.com/docs/api/reference/get-email-lookup) performs the same lookup but cannot use an idempotency key. With this form, reuse an `Idempotency-Key` to return the stored result without another lookup or charge.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "lookup",
                "email"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"email\": \"aisha.khan@example.com\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "b95b6aa9-f725-89b4-85d2-b066ca4473d6",
              "name": "Available deliverability information about the address.",
              "originalRequest": {
                "name": "Create an email address lookup",
                "description": {
                  "content": "Returns a deliverability `result`, a `delivery_confidence` score, address characteristics, an undeliverable `reason`, and a suggested correction when available. `result` and `reason` are open vocabularies. Handle unknown values and use `delivery_confidence` as the stable fallback. Each completed lookup incurs the same charge regardless of its result.\n\nThis form keeps the address out of the URL. The [URL form](https://bird.com/docs/api/reference/get-email-lookup) performs the same lookup but cannot use an idempotency key. With this form, reuse an `Idempotency-Key` to return the stored result without another lookup or charge.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "email"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"aisha.khan@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"email\": \"aisha.khan@example.com\",\n  \"valid\": true,\n  \"result\": \"risky\",\n  \"delivery_confidence\": 42,\n  \"flags\": [\n    \"role\",\n    \"free_provider\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3902173b-2092-8147-86b1-ef7b6d1a5421",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create an email address lookup",
                "description": {
                  "content": "Returns a deliverability `result`, a `delivery_confidence` score, address characteristics, an undeliverable `reason`, and a suggested correction when available. `result` and `reason` are open vocabularies. Handle unknown values and use `delivery_confidence` as the stable fallback. Each completed lookup incurs the same charge regardless of its result.\n\nThis form keeps the address out of the URL. The [URL form](https://bird.com/docs/api/reference/get-email-lookup) performs the same lookup but cannot use an idempotency key. With this form, reuse an `Idempotency-Key` to return the stored result without another lookup or charge.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "email"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"aisha.khan@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"email\": \"aisha.khan@example.com\",\n  \"valid\": true,\n  \"result\": \"risky\",\n  \"delivery_confidence\": 42,\n  \"flags\": [\n    \"role\",\n    \"free_provider\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "41f9fc29-1870-8c66-8174-dbccf4ab0c45",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create an email address lookup",
                "description": {
                  "content": "Returns a deliverability `result`, a `delivery_confidence` score, address characteristics, an undeliverable `reason`, and a suggested correction when available. `result` and `reason` are open vocabularies. Handle unknown values and use `delivery_confidence` as the stable fallback. Each completed lookup incurs the same charge regardless of its result.\n\nThis form keeps the address out of the URL. The [URL form](https://bird.com/docs/api/reference/get-email-lookup) performs the same lookup but cannot use an idempotency key. With this form, reuse an `Idempotency-Key` to return the stored result without another lookup or charge.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "email"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"aisha.khan@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"email\": \"aisha.khan@example.com\",\n  \"valid\": true,\n  \"result\": \"risky\",\n  \"delivery_confidence\": 42,\n  \"flags\": [\n    \"role\",\n    \"free_provider\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b1d264f7-882b-83d3-8f3c-76b49a1394ab",
              "name": "Insufficient balance",
              "originalRequest": {
                "name": "Create an email address lookup",
                "description": {
                  "content": "Returns a deliverability `result`, a `delivery_confidence` score, address characteristics, an undeliverable `reason`, and a suggested correction when available. `result` and `reason` are open vocabularies. Handle unknown values and use `delivery_confidence` as the stable fallback. Each completed lookup incurs the same charge regardless of its result.\n\nThis form keeps the address out of the URL. The [URL form](https://bird.com/docs/api/reference/get-email-lookup) performs the same lookup but cannot use an idempotency key. With this form, reuse an `Idempotency-Key` to return the stored result without another lookup or charge.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "email"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"aisha.khan@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Payment Required",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"email\": \"aisha.khan@example.com\",\n  \"valid\": true,\n  \"result\": \"risky\",\n  \"delivery_confidence\": 42,\n  \"flags\": [\n    \"role\",\n    \"free_provider\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f6499a8b-e6f7-890d-8746-f860307859a6",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create an email address lookup",
                "description": {
                  "content": "Returns a deliverability `result`, a `delivery_confidence` score, address characteristics, an undeliverable `reason`, and a suggested correction when available. `result` and `reason` are open vocabularies. Handle unknown values and use `delivery_confidence` as the stable fallback. Each completed lookup incurs the same charge regardless of its result.\n\nThis form keeps the address out of the URL. The [URL form](https://bird.com/docs/api/reference/get-email-lookup) performs the same lookup but cannot use an idempotency key. With this form, reuse an `Idempotency-Key` to return the stored result without another lookup or charge.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "email"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"aisha.khan@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"email\": \"aisha.khan@example.com\",\n  \"valid\": true,\n  \"result\": \"risky\",\n  \"delivery_confidence\": 42,\n  \"flags\": [\n    \"role\",\n    \"free_provider\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "87bf3154-791c-84d0-88e9-9dea29d4d2e4",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create an email address lookup",
                "description": {
                  "content": "Returns a deliverability `result`, a `delivery_confidence` score, address characteristics, an undeliverable `reason`, and a suggested correction when available. `result` and `reason` are open vocabularies. Handle unknown values and use `delivery_confidence` as the stable fallback. Each completed lookup incurs the same charge regardless of its result.\n\nThis form keeps the address out of the URL. The [URL form](https://bird.com/docs/api/reference/get-email-lookup) performs the same lookup but cannot use an idempotency key. With this form, reuse an `Idempotency-Key` to return the stored result without another lookup or charge.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "email"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"aisha.khan@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"email\": \"aisha.khan@example.com\",\n  \"valid\": true,\n  \"result\": \"risky\",\n  \"delivery_confidence\": 42,\n  \"flags\": [\n    \"role\",\n    \"free_provider\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7967853c-9dec-8c50-854e-01dbe85bd65e",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create an email address lookup",
                "description": {
                  "content": "Returns a deliverability `result`, a `delivery_confidence` score, address characteristics, an undeliverable `reason`, and a suggested correction when available. `result` and `reason` are open vocabularies. Handle unknown values and use `delivery_confidence` as the stable fallback. Each completed lookup incurs the same charge regardless of its result.\n\nThis form keeps the address out of the URL. The [URL form](https://bird.com/docs/api/reference/get-email-lookup) performs the same lookup but cannot use an idempotency key. With this form, reuse an `Idempotency-Key` to return the stored result without another lookup or charge.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "email"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"aisha.khan@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"email\": \"aisha.khan@example.com\",\n  \"valid\": true,\n  \"result\": \"risky\",\n  \"delivery_confidence\": 42,\n  \"flags\": [\n    \"role\",\n    \"free_provider\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1768ed3a-5f56-81c8-8e71-8ffe44b7fad6",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create an email address lookup",
                "description": {
                  "content": "Returns a deliverability `result`, a `delivery_confidence` score, address characteristics, an undeliverable `reason`, and a suggested correction when available. `result` and `reason` are open vocabularies. Handle unknown values and use `delivery_confidence` as the stable fallback. Each completed lookup incurs the same charge regardless of its result.\n\nThis form keeps the address out of the URL. The [URL form](https://bird.com/docs/api/reference/get-email-lookup) performs the same lookup but cannot use an idempotency key. With this form, reuse an `Idempotency-Key` to return the stored result without another lookup or charge.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "email"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"aisha.khan@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"email\": \"aisha.khan@example.com\",\n  \"valid\": true,\n  \"result\": \"risky\",\n  \"delivery_confidence\": 42,\n  \"flags\": [\n    \"role\",\n    \"free_provider\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4652825c-48df-8310-872a-0d263ef8ba92",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Create an email address lookup",
                "description": {
                  "content": "Returns a deliverability `result`, a `delivery_confidence` score, address characteristics, an undeliverable `reason`, and a suggested correction when available. `result` and `reason` are open vocabularies. Handle unknown values and use `delivery_confidence` as the stable fallback. Each completed lookup incurs the same charge regardless of its result.\n\nThis form keeps the address out of the URL. The [URL form](https://bird.com/docs/api/reference/get-email-lookup) performs the same lookup but cannot use an idempotency key. With this form, reuse an `Idempotency-Key` to return the stored result without another lookup or charge.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "email"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"email\": \"aisha.khan@example.com\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"email\": \"aisha.khan@example.com\",\n  \"valid\": true,\n  \"result\": \"risky\",\n  \"delivery_confidence\": 42,\n  \"flags\": [\n    \"role\",\n    \"free_provider\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "7fb7fece-3678-8acd-8f31-f1e512582e31",
          "name": "Get an email address lookup by URL",
          "request": {
            "name": "Get an email address lookup by URL",
            "description": {
              "content": "Performs the same deliverability lookup as [Create an email address lookup](https://bird.com/docs/api/reference/create-email-lookup), with the address in the URL. The response includes a result, confidence score, address characteristics, failure reason, and suggested correction when available. Treat unknown `result` and `reason` values as valid additions.\n\nBecause the address is in the URL, it can appear in proxies, access logs, and browser history. This form does not accept an `Idempotency-Key`; each retry performs and charges for another lookup.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "lookup",
                "email",
                ":address"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "",
                  "key": "address",
                  "description": "(Required) The email address to look up. Percent-encode it, because a local part may legally contain characters a URL path reads as structure. The `@` itself is safe either way."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                "key": "X-Workspace-Id",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "cedaed78-fc79-8aad-8407-af8044a05d0e",
              "name": "Available deliverability information about the address.",
              "originalRequest": {
                "name": "Get an email address lookup by URL",
                "description": {
                  "content": "Performs the same deliverability lookup as [Create an email address lookup](https://bird.com/docs/api/reference/create-email-lookup), with the address in the URL. The response includes a result, confidence score, address characteristics, failure reason, and suggested correction when available. Treat unknown `result` and `reason` values as valid additions.\n\nBecause the address is in the URL, it can appear in proxies, access logs, and browser history. This form does not accept an `Idempotency-Key`; each retry performs and charges for another lookup.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "email",
                    ":address"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "address",
                      "description": "(Required) The email address to look up. Percent-encode it, because a local part may legally contain characters a URL path reads as structure. The `@` itself is safe either way."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"email\": \"aisha.khan@example.com\",\n  \"valid\": true,\n  \"result\": \"risky\",\n  \"delivery_confidence\": 42,\n  \"flags\": [\n    \"role\",\n    \"free_provider\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "406c39ec-6b0d-866e-8e20-80ded13ae6a6",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get an email address lookup by URL",
                "description": {
                  "content": "Performs the same deliverability lookup as [Create an email address lookup](https://bird.com/docs/api/reference/create-email-lookup), with the address in the URL. The response includes a result, confidence score, address characteristics, failure reason, and suggested correction when available. Treat unknown `result` and `reason` values as valid additions.\n\nBecause the address is in the URL, it can appear in proxies, access logs, and browser history. This form does not accept an `Idempotency-Key`; each retry performs and charges for another lookup.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "email",
                    ":address"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "address",
                      "description": "(Required) The email address to look up. Percent-encode it, because a local part may legally contain characters a URL path reads as structure. The `@` itself is safe either way."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"email\": \"aisha.khan@example.com\",\n  \"valid\": true,\n  \"result\": \"risky\",\n  \"delivery_confidence\": 42,\n  \"flags\": [\n    \"role\",\n    \"free_provider\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "623655b1-abda-8199-8a4b-56d24e6efdf0",
              "name": "Insufficient balance",
              "originalRequest": {
                "name": "Get an email address lookup by URL",
                "description": {
                  "content": "Performs the same deliverability lookup as [Create an email address lookup](https://bird.com/docs/api/reference/create-email-lookup), with the address in the URL. The response includes a result, confidence score, address characteristics, failure reason, and suggested correction when available. Treat unknown `result` and `reason` values as valid additions.\n\nBecause the address is in the URL, it can appear in proxies, access logs, and browser history. This form does not accept an `Idempotency-Key`; each retry performs and charges for another lookup.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "email",
                    ":address"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "address",
                      "description": "(Required) The email address to look up. Percent-encode it, because a local part may legally contain characters a URL path reads as structure. The `@` itself is safe either way."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Payment Required",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"email\": \"aisha.khan@example.com\",\n  \"valid\": true,\n  \"result\": \"risky\",\n  \"delivery_confidence\": 42,\n  \"flags\": [\n    \"role\",\n    \"free_provider\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d9285b56-caea-86f4-874e-84c2f74afe23",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get an email address lookup by URL",
                "description": {
                  "content": "Performs the same deliverability lookup as [Create an email address lookup](https://bird.com/docs/api/reference/create-email-lookup), with the address in the URL. The response includes a result, confidence score, address characteristics, failure reason, and suggested correction when available. Treat unknown `result` and `reason` values as valid additions.\n\nBecause the address is in the URL, it can appear in proxies, access logs, and browser history. This form does not accept an `Idempotency-Key`; each retry performs and charges for another lookup.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "email",
                    ":address"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "address",
                      "description": "(Required) The email address to look up. Percent-encode it, because a local part may legally contain characters a URL path reads as structure. The `@` itself is safe either way."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"email\": \"aisha.khan@example.com\",\n  \"valid\": true,\n  \"result\": \"risky\",\n  \"delivery_confidence\": 42,\n  \"flags\": [\n    \"role\",\n    \"free_provider\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "fe6385e3-e829-8d7e-8d4a-fffddc122c1f",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get an email address lookup by URL",
                "description": {
                  "content": "Performs the same deliverability lookup as [Create an email address lookup](https://bird.com/docs/api/reference/create-email-lookup), with the address in the URL. The response includes a result, confidence score, address characteristics, failure reason, and suggested correction when available. Treat unknown `result` and `reason` values as valid additions.\n\nBecause the address is in the URL, it can appear in proxies, access logs, and browser history. This form does not accept an `Idempotency-Key`; each retry performs and charges for another lookup.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "email",
                    ":address"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "address",
                      "description": "(Required) The email address to look up. Percent-encode it, because a local part may legally contain characters a URL path reads as structure. The `@` itself is safe either way."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"email\": \"aisha.khan@example.com\",\n  \"valid\": true,\n  \"result\": \"risky\",\n  \"delivery_confidence\": 42,\n  \"flags\": [\n    \"role\",\n    \"free_provider\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0826e5b4-8cf8-847a-845c-8d55b14ce7b2",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get an email address lookup by URL",
                "description": {
                  "content": "Performs the same deliverability lookup as [Create an email address lookup](https://bird.com/docs/api/reference/create-email-lookup), with the address in the URL. The response includes a result, confidence score, address characteristics, failure reason, and suggested correction when available. Treat unknown `result` and `reason` values as valid additions.\n\nBecause the address is in the URL, it can appear in proxies, access logs, and browser history. This form does not accept an `Idempotency-Key`; each retry performs and charges for another lookup.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "email",
                    ":address"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "address",
                      "description": "(Required) The email address to look up. Percent-encode it, because a local part may legally contain characters a URL path reads as structure. The `@` itself is safe either way."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"email\": \"aisha.khan@example.com\",\n  \"valid\": true,\n  \"result\": \"risky\",\n  \"delivery_confidence\": 42,\n  \"flags\": [\n    \"role\",\n    \"free_provider\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "75ed9ba7-e463-8a72-8a76-a648fe6dcb31",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get an email address lookup by URL",
                "description": {
                  "content": "Performs the same deliverability lookup as [Create an email address lookup](https://bird.com/docs/api/reference/create-email-lookup), with the address in the URL. The response includes a result, confidence score, address characteristics, failure reason, and suggested correction when available. Treat unknown `result` and `reason` values as valid additions.\n\nBecause the address is in the URL, it can appear in proxies, access logs, and browser history. This form does not accept an `Idempotency-Key`; each retry performs and charges for another lookup.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "email",
                    ":address"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "address",
                      "description": "(Required) The email address to look up. Percent-encode it, because a local part may legally contain characters a URL path reads as structure. The `@` itself is safe either way."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"email\": \"aisha.khan@example.com\",\n  \"valid\": true,\n  \"result\": \"risky\",\n  \"delivery_confidence\": 42,\n  \"flags\": [\n    \"role\",\n    \"free_provider\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7f9e2016-5ced-8c27-81cd-cc0dff913896",
              "name": "The service is temporarily unavailable. The request is safe to retry after the delay in the `Retry-After` header.\n",
              "originalRequest": {
                "name": "Get an email address lookup by URL",
                "description": {
                  "content": "Performs the same deliverability lookup as [Create an email address lookup](https://bird.com/docs/api/reference/create-email-lookup), with the address in the URL. The response includes a result, confidence score, address characteristics, failure reason, and suggested correction when available. Treat unknown `result` and `reason` values as valid additions.\n\nBecause the address is in the URL, it can appear in proxies, access logs, and browser history. This form does not accept an `Idempotency-Key`; each retry performs and charges for another lookup.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "lookup",
                    "email",
                    ":address"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "",
                      "key": "address",
                      "description": "(Required) The email address to look up. Percent-encode it, because a local part may legally contain characters a URL path reads as structure. The `@` itself is safe either way."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Workspace context for the request. Required for dashboard authentication. An API key or access token carries its own workspace, so send either that workspace or no header at all; a different one is rejected.",
                    "key": "X-Workspace-Id",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Service Unavailable",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"email\": \"aisha.khan@example.com\",\n  \"valid\": true,\n  \"result\": \"risky\",\n  \"delivery_confidence\": 42,\n  \"flags\": [\n    \"role\",\n    \"free_provider\"\n  ]\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "17a70e30-2e87-8d0c-8885-4fa091e3133e",
      "name": "sms-suppressions",
      "description": {
        "content": "Sender and subscriber pairs that block SMS delivery.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "a483c5c3-c563-8a02-8ca8-4531d0787a79",
          "name": "List SMS suppressions",
          "request": {
            "name": "List SMS suppressions",
            "description": {
              "content": "Returns the suppressions currently stopping your messages, most recent opt-out first. Pass `destination` to look up one subscriber before sending to them.\n\nA suppression covers one sender and one subscriber, so the same number can appear more than once: opting out of one of your senders does not opt out of the others.\n\nEnded suppressions are excluded. A subscriber who opted back in is reachable again and does not appear in this list.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "suppressions"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "destination",
                  "value": "+15550001234",
                  "description": "Return only suppressions for this exact subscriber number in E.164 form. Prefix matching is unsupported.\n"
                },
                {
                  "disabled": false,
                  "key": "originator",
                  "value": "+15557654321",
                  "description": "Return only suppressions covering this sender."
                },
                {
                  "disabled": true,
                  "key": "reason",
                  "value": "",
                  "description": "Return only suppressions with this reason:\n\n- `keyword_stop`: The subscriber texted a stop keyword to the sender.\n- `carrier_opted_out`: Their carrier reported the opt-out.\n- `manual`: Added through the API or dashboard.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "3617ec5c-f8df-8412-8b53-f7b5cd0b9a15",
              "name": "Paginated list of SMS suppressions.",
              "originalRequest": {
                "name": "List SMS suppressions",
                "description": {
                  "content": "Returns the suppressions currently stopping your messages, most recent opt-out first. Pass `destination` to look up one subscriber before sending to them.\n\nA suppression covers one sender and one subscriber, so the same number can appear more than once: opting out of one of your senders does not opt out of the others.\n\nEnded suppressions are excluded. A subscriber who opted back in is reachable again and does not appear in this list.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "destination",
                      "value": "+15550001234",
                      "description": "Return only suppressions for this exact subscriber number in E.164 form. Prefix matching is unsupported.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "+15557654321",
                      "description": "Return only suppressions covering this sender."
                    },
                    {
                      "disabled": true,
                      "key": "reason",
                      "value": "",
                      "description": "Return only suppressions with this reason:\n\n- `keyword_stop`: The subscriber texted a stop keyword to the sender.\n- `carrier_opted_out`: Their carrier reported the opt-out.\n- `manual`: Added through the API or dashboard.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ssu_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"destination\": \"+15550001234\",\n      \"originator\": \"+15557654321\",\n      \"reason\": \"keyword_stop\",\n      \"origin\": \"keyword\",\n      \"applies_to\": \"all\",\n      \"source_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"ended_reason\": \"keyword_start\",\n      \"source_end_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ff61c033-53f6-8e83-8132-131c37f2138f",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List SMS suppressions",
                "description": {
                  "content": "Returns the suppressions currently stopping your messages, most recent opt-out first. Pass `destination` to look up one subscriber before sending to them.\n\nA suppression covers one sender and one subscriber, so the same number can appear more than once: opting out of one of your senders does not opt out of the others.\n\nEnded suppressions are excluded. A subscriber who opted back in is reachable again and does not appear in this list.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "destination",
                      "value": "+15550001234",
                      "description": "Return only suppressions for this exact subscriber number in E.164 form. Prefix matching is unsupported.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "+15557654321",
                      "description": "Return only suppressions covering this sender."
                    },
                    {
                      "disabled": true,
                      "key": "reason",
                      "value": "",
                      "description": "Return only suppressions with this reason:\n\n- `keyword_stop`: The subscriber texted a stop keyword to the sender.\n- `carrier_opted_out`: Their carrier reported the opt-out.\n- `manual`: Added through the API or dashboard.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ssu_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"destination\": \"+15550001234\",\n      \"originator\": \"+15557654321\",\n      \"reason\": \"keyword_stop\",\n      \"origin\": \"keyword\",\n      \"applies_to\": \"all\",\n      \"source_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"ended_reason\": \"keyword_start\",\n      \"source_end_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "bc02a9b4-0fbb-8304-85e2-908fee946407",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List SMS suppressions",
                "description": {
                  "content": "Returns the suppressions currently stopping your messages, most recent opt-out first. Pass `destination` to look up one subscriber before sending to them.\n\nA suppression covers one sender and one subscriber, so the same number can appear more than once: opting out of one of your senders does not opt out of the others.\n\nEnded suppressions are excluded. A subscriber who opted back in is reachable again and does not appear in this list.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "destination",
                      "value": "+15550001234",
                      "description": "Return only suppressions for this exact subscriber number in E.164 form. Prefix matching is unsupported.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "+15557654321",
                      "description": "Return only suppressions covering this sender."
                    },
                    {
                      "disabled": true,
                      "key": "reason",
                      "value": "",
                      "description": "Return only suppressions with this reason:\n\n- `keyword_stop`: The subscriber texted a stop keyword to the sender.\n- `carrier_opted_out`: Their carrier reported the opt-out.\n- `manual`: Added through the API or dashboard.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ssu_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"destination\": \"+15550001234\",\n      \"originator\": \"+15557654321\",\n      \"reason\": \"keyword_stop\",\n      \"origin\": \"keyword\",\n      \"applies_to\": \"all\",\n      \"source_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"ended_reason\": \"keyword_start\",\n      \"source_end_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6a48f3f7-c4e3-8769-8efd-6e2b7fee3f6f",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List SMS suppressions",
                "description": {
                  "content": "Returns the suppressions currently stopping your messages, most recent opt-out first. Pass `destination` to look up one subscriber before sending to them.\n\nA suppression covers one sender and one subscriber, so the same number can appear more than once: opting out of one of your senders does not opt out of the others.\n\nEnded suppressions are excluded. A subscriber who opted back in is reachable again and does not appear in this list.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "destination",
                      "value": "+15550001234",
                      "description": "Return only suppressions for this exact subscriber number in E.164 form. Prefix matching is unsupported.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "+15557654321",
                      "description": "Return only suppressions covering this sender."
                    },
                    {
                      "disabled": true,
                      "key": "reason",
                      "value": "",
                      "description": "Return only suppressions with this reason:\n\n- `keyword_stop`: The subscriber texted a stop keyword to the sender.\n- `carrier_opted_out`: Their carrier reported the opt-out.\n- `manual`: Added through the API or dashboard.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ssu_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"destination\": \"+15550001234\",\n      \"originator\": \"+15557654321\",\n      \"reason\": \"keyword_stop\",\n      \"origin\": \"keyword\",\n      \"applies_to\": \"all\",\n      \"source_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"ended_reason\": \"keyword_start\",\n      \"source_end_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "14c5466e-92d1-87a1-8f4d-c36b769a64ef",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List SMS suppressions",
                "description": {
                  "content": "Returns the suppressions currently stopping your messages, most recent opt-out first. Pass `destination` to look up one subscriber before sending to them.\n\nA suppression covers one sender and one subscriber, so the same number can appear more than once: opting out of one of your senders does not opt out of the others.\n\nEnded suppressions are excluded. A subscriber who opted back in is reachable again and does not appear in this list.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "destination",
                      "value": "+15550001234",
                      "description": "Return only suppressions for this exact subscriber number in E.164 form. Prefix matching is unsupported.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "+15557654321",
                      "description": "Return only suppressions covering this sender."
                    },
                    {
                      "disabled": true,
                      "key": "reason",
                      "value": "",
                      "description": "Return only suppressions with this reason:\n\n- `keyword_stop`: The subscriber texted a stop keyword to the sender.\n- `carrier_opted_out`: Their carrier reported the opt-out.\n- `manual`: Added through the API or dashboard.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ssu_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"destination\": \"+15550001234\",\n      \"originator\": \"+15557654321\",\n      \"reason\": \"keyword_stop\",\n      \"origin\": \"keyword\",\n      \"applies_to\": \"all\",\n      \"source_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"ended_reason\": \"keyword_start\",\n      \"source_end_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0124cf40-0c50-8356-8ded-ee59fe03747f",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List SMS suppressions",
                "description": {
                  "content": "Returns the suppressions currently stopping your messages, most recent opt-out first. Pass `destination` to look up one subscriber before sending to them.\n\nA suppression covers one sender and one subscriber, so the same number can appear more than once: opting out of one of your senders does not opt out of the others.\n\nEnded suppressions are excluded. A subscriber who opted back in is reachable again and does not appear in this list.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "destination",
                      "value": "+15550001234",
                      "description": "Return only suppressions for this exact subscriber number in E.164 form. Prefix matching is unsupported.\n"
                    },
                    {
                      "disabled": false,
                      "key": "originator",
                      "value": "+15557654321",
                      "description": "Return only suppressions covering this sender."
                    },
                    {
                      "disabled": true,
                      "key": "reason",
                      "value": "",
                      "description": "Return only suppressions with this reason:\n\n- `keyword_stop`: The subscriber texted a stop keyword to the sender.\n- `carrier_opted_out`: Their carrier reported the opt-out.\n- `manual`: Added through the API or dashboard.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"ssu_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"destination\": \"+15550001234\",\n      \"originator\": \"+15557654321\",\n      \"reason\": \"keyword_stop\",\n      \"origin\": \"keyword\",\n      \"applies_to\": \"all\",\n      \"source_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"ended_reason\": \"keyword_start\",\n      \"source_end_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "fd9d1df5-5fba-832b-8df6-4265045a4fc5",
          "name": "Create an SMS suppression",
          "request": {
            "name": "Create an SMS suppression",
            "description": {
              "content": "Stops a sender's messages to a subscriber, with reason `manual`, blocking every category including transactional. Both ends are required: a suppression covers a sender-and-subscriber pair, so stopping all of your senders means one call per sender.\n\nAdding is idempotent. A `201` means a new suppression was recorded, and a `200` means a `manual` one for that pair was already in place and is returned unchanged. A pair already stopped for another reason, such as the subscriber having texted a stop keyword, still gets its own `manual` record, and messages stay stopped until every one of them has ended.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "suppressions"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"destination\": \"+15550001234\",\n  \"originator\": \"+15557654321\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "c1987ef6-82ab-8c49-850a-ef0e9650cfd1",
              "name": "A manual suppression for this pair was already in place. The existing one is returned.",
              "originalRequest": {
                "name": "Create an SMS suppression",
                "description": {
                  "content": "Stops a sender's messages to a subscriber, with reason `manual`, blocking every category including transactional. Both ends are required: a suppression covers a sender-and-subscriber pair, so stopping all of your senders means one call per sender.\n\nAdding is idempotent. A `201` means a new suppression was recorded, and a `200` means a `manual` one for that pair was already in place and is returned unchanged. A pair already stopped for another reason, such as the subscriber having texted a stop keyword, still gets its own `manual` record, and messages stay stopped until every one of them has ended.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"destination\": \"+15550001234\",\n  \"originator\": \"+15557654321\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ssu_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"destination\": \"+15550001234\",\n  \"originator\": \"+15557654321\",\n  \"reason\": \"keyword_stop\",\n  \"origin\": \"keyword\",\n  \"applies_to\": \"all\",\n  \"source_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"ended_reason\": \"keyword_start\",\n  \"source_end_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cdccd86a-a083-8a3f-8ccd-226828292b75",
              "name": "Suppression recorded.",
              "originalRequest": {
                "name": "Create an SMS suppression",
                "description": {
                  "content": "Stops a sender's messages to a subscriber, with reason `manual`, blocking every category including transactional. Both ends are required: a suppression covers a sender-and-subscriber pair, so stopping all of your senders means one call per sender.\n\nAdding is idempotent. A `201` means a new suppression was recorded, and a `200` means a `manual` one for that pair was already in place and is returned unchanged. A pair already stopped for another reason, such as the subscriber having texted a stop keyword, still gets its own `manual` record, and messages stay stopped until every one of them has ended.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"destination\": \"+15550001234\",\n  \"originator\": \"+15557654321\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ssu_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"destination\": \"+15550001234\",\n  \"originator\": \"+15557654321\",\n  \"reason\": \"keyword_stop\",\n  \"origin\": \"keyword\",\n  \"applies_to\": \"all\",\n  \"source_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"ended_reason\": \"keyword_start\",\n  \"source_end_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "22951e70-54fa-88c2-841e-87d047cbd055",
              "name": "Bad request",
              "originalRequest": {
                "name": "Create an SMS suppression",
                "description": {
                  "content": "Stops a sender's messages to a subscriber, with reason `manual`, blocking every category including transactional. Both ends are required: a suppression covers a sender-and-subscriber pair, so stopping all of your senders means one call per sender.\n\nAdding is idempotent. A `201` means a new suppression was recorded, and a `200` means a `manual` one for that pair was already in place and is returned unchanged. A pair already stopped for another reason, such as the subscriber having texted a stop keyword, still gets its own `manual` record, and messages stay stopped until every one of them has ended.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"destination\": \"+15550001234\",\n  \"originator\": \"+15557654321\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ssu_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"destination\": \"+15550001234\",\n  \"originator\": \"+15557654321\",\n  \"reason\": \"keyword_stop\",\n  \"origin\": \"keyword\",\n  \"applies_to\": \"all\",\n  \"source_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"ended_reason\": \"keyword_start\",\n  \"source_end_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "675e74a0-d7fa-8ca2-8fa3-7565447a090a",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Create an SMS suppression",
                "description": {
                  "content": "Stops a sender's messages to a subscriber, with reason `manual`, blocking every category including transactional. Both ends are required: a suppression covers a sender-and-subscriber pair, so stopping all of your senders means one call per sender.\n\nAdding is idempotent. A `201` means a new suppression was recorded, and a `200` means a `manual` one for that pair was already in place and is returned unchanged. A pair already stopped for another reason, such as the subscriber having texted a stop keyword, still gets its own `manual` record, and messages stay stopped until every one of them has ended.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"destination\": \"+15550001234\",\n  \"originator\": \"+15557654321\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ssu_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"destination\": \"+15550001234\",\n  \"originator\": \"+15557654321\",\n  \"reason\": \"keyword_stop\",\n  \"origin\": \"keyword\",\n  \"applies_to\": \"all\",\n  \"source_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"ended_reason\": \"keyword_start\",\n  \"source_end_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ad001fdb-e99b-8567-8adb-1cd4387e85c7",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Create an SMS suppression",
                "description": {
                  "content": "Stops a sender's messages to a subscriber, with reason `manual`, blocking every category including transactional. Both ends are required: a suppression covers a sender-and-subscriber pair, so stopping all of your senders means one call per sender.\n\nAdding is idempotent. A `201` means a new suppression was recorded, and a `200` means a `manual` one for that pair was already in place and is returned unchanged. A pair already stopped for another reason, such as the subscriber having texted a stop keyword, still gets its own `manual` record, and messages stay stopped until every one of them has ended.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"destination\": \"+15550001234\",\n  \"originator\": \"+15557654321\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ssu_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"destination\": \"+15550001234\",\n  \"originator\": \"+15557654321\",\n  \"reason\": \"keyword_stop\",\n  \"origin\": \"keyword\",\n  \"applies_to\": \"all\",\n  \"source_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"ended_reason\": \"keyword_start\",\n  \"source_end_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "49b35aa2-cd2c-8204-8152-953f6889c3cd",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Create an SMS suppression",
                "description": {
                  "content": "Stops a sender's messages to a subscriber, with reason `manual`, blocking every category including transactional. Both ends are required: a suppression covers a sender-and-subscriber pair, so stopping all of your senders means one call per sender.\n\nAdding is idempotent. A `201` means a new suppression was recorded, and a `200` means a `manual` one for that pair was already in place and is returned unchanged. A pair already stopped for another reason, such as the subscriber having texted a stop keyword, still gets its own `manual` record, and messages stay stopped until every one of them has ended.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"destination\": \"+15550001234\",\n  \"originator\": \"+15557654321\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ssu_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"destination\": \"+15550001234\",\n  \"originator\": \"+15557654321\",\n  \"reason\": \"keyword_stop\",\n  \"origin\": \"keyword\",\n  \"applies_to\": \"all\",\n  \"source_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"ended_reason\": \"keyword_start\",\n  \"source_end_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9b20c58b-5c25-8e1b-821e-1b9d2b06bcc3",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Create an SMS suppression",
                "description": {
                  "content": "Stops a sender's messages to a subscriber, with reason `manual`, blocking every category including transactional. Both ends are required: a suppression covers a sender-and-subscriber pair, so stopping all of your senders means one call per sender.\n\nAdding is idempotent. A `201` means a new suppression was recorded, and a `200` means a `manual` one for that pair was already in place and is returned unchanged. A pair already stopped for another reason, such as the subscriber having texted a stop keyword, still gets its own `manual` record, and messages stay stopped until every one of them has ended.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"destination\": \"+15550001234\",\n  \"originator\": \"+15557654321\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ssu_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"destination\": \"+15550001234\",\n  \"originator\": \"+15557654321\",\n  \"reason\": \"keyword_stop\",\n  \"origin\": \"keyword\",\n  \"applies_to\": \"all\",\n  \"source_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"ended_reason\": \"keyword_start\",\n  \"source_end_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ecce0dce-d3f8-876f-8bb8-ba30c0ce3634",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Create an SMS suppression",
                "description": {
                  "content": "Stops a sender's messages to a subscriber, with reason `manual`, blocking every category including transactional. Both ends are required: a suppression covers a sender-and-subscriber pair, so stopping all of your senders means one call per sender.\n\nAdding is idempotent. A `201` means a new suppression was recorded, and a `200` means a `manual` one for that pair was already in place and is returned unchanged. A pair already stopped for another reason, such as the subscriber having texted a stop keyword, still gets its own `manual` record, and messages stay stopped until every one of them has ended.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"destination\": \"+15550001234\",\n  \"originator\": \"+15557654321\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ssu_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"destination\": \"+15550001234\",\n  \"originator\": \"+15557654321\",\n  \"reason\": \"keyword_stop\",\n  \"origin\": \"keyword\",\n  \"applies_to\": \"all\",\n  \"source_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"ended_reason\": \"keyword_start\",\n  \"source_end_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "bef7a4fb-f853-88a7-87e3-6f586590cdc3",
          "name": "Get an SMS suppression",
          "request": {
            "name": "Get an SMS suppression",
            "description": {
              "content": "Returns one suppression: the sender and subscriber it covers, why messages are stopped, how the record came to exist, what it blocks, and whether it is still in force.\n\nThis operation also returns a suppression that has already ended. The `blocking` field is `false`, and the `ended_*` fields say when and why. An ID you kept from a create or delete therefore stays readable. To find one when you only know the number, use `GET /v1/sms/suppressions` with the `destination` parameter. An ID that does not exist in the workspace returns `404`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "suppressions",
                ":suppression_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "ssu_01krdgeqcxet5s7t44vh8rt9mg",
                  "key": "suppression_id",
                  "description": "(Required) ID of the suppression, as returned when it was created or listed.\n"
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "02e6c645-0376-868b-84f0-524d6d8d49ce",
              "name": "SMS suppression.",
              "originalRequest": {
                "name": "Get an SMS suppression",
                "description": {
                  "content": "Returns one suppression: the sender and subscriber it covers, why messages are stopped, how the record came to exist, what it blocks, and whether it is still in force.\n\nThis operation also returns a suppression that has already ended. The `blocking` field is `false`, and the `ended_*` fields say when and why. An ID you kept from a create or delete therefore stays readable. To find one when you only know the number, use `GET /v1/sms/suppressions` with the `destination` parameter. An ID that does not exist in the workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "ssu_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression, as returned when it was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ssu_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"destination\": \"+15550001234\",\n  \"originator\": \"+15557654321\",\n  \"reason\": \"keyword_stop\",\n  \"origin\": \"keyword\",\n  \"applies_to\": \"all\",\n  \"source_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"ended_reason\": \"keyword_start\",\n  \"source_end_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6a9ef668-f8c4-881a-8aa6-04f42e0407f9",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get an SMS suppression",
                "description": {
                  "content": "Returns one suppression: the sender and subscriber it covers, why messages are stopped, how the record came to exist, what it blocks, and whether it is still in force.\n\nThis operation also returns a suppression that has already ended. The `blocking` field is `false`, and the `ended_*` fields say when and why. An ID you kept from a create or delete therefore stays readable. To find one when you only know the number, use `GET /v1/sms/suppressions` with the `destination` parameter. An ID that does not exist in the workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "ssu_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression, as returned when it was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ssu_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"destination\": \"+15550001234\",\n  \"originator\": \"+15557654321\",\n  \"reason\": \"keyword_stop\",\n  \"origin\": \"keyword\",\n  \"applies_to\": \"all\",\n  \"source_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"ended_reason\": \"keyword_start\",\n  \"source_end_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3e9ae079-ae1d-8622-8817-c908b9a4cf57",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get an SMS suppression",
                "description": {
                  "content": "Returns one suppression: the sender and subscriber it covers, why messages are stopped, how the record came to exist, what it blocks, and whether it is still in force.\n\nThis operation also returns a suppression that has already ended. The `blocking` field is `false`, and the `ended_*` fields say when and why. An ID you kept from a create or delete therefore stays readable. To find one when you only know the number, use `GET /v1/sms/suppressions` with the `destination` parameter. An ID that does not exist in the workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "ssu_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression, as returned when it was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ssu_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"destination\": \"+15550001234\",\n  \"originator\": \"+15557654321\",\n  \"reason\": \"keyword_stop\",\n  \"origin\": \"keyword\",\n  \"applies_to\": \"all\",\n  \"source_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"ended_reason\": \"keyword_start\",\n  \"source_end_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "865322e8-b4f0-865d-8633-135e54feb9bc",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get an SMS suppression",
                "description": {
                  "content": "Returns one suppression: the sender and subscriber it covers, why messages are stopped, how the record came to exist, what it blocks, and whether it is still in force.\n\nThis operation also returns a suppression that has already ended. The `blocking` field is `false`, and the `ended_*` fields say when and why. An ID you kept from a create or delete therefore stays readable. To find one when you only know the number, use `GET /v1/sms/suppressions` with the `destination` parameter. An ID that does not exist in the workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "ssu_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression, as returned when it was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ssu_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"destination\": \"+15550001234\",\n  \"originator\": \"+15557654321\",\n  \"reason\": \"keyword_stop\",\n  \"origin\": \"keyword\",\n  \"applies_to\": \"all\",\n  \"source_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"ended_reason\": \"keyword_start\",\n  \"source_end_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "32c875ae-e9f4-855a-8414-4c4de6a8144a",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get an SMS suppression",
                "description": {
                  "content": "Returns one suppression: the sender and subscriber it covers, why messages are stopped, how the record came to exist, what it blocks, and whether it is still in force.\n\nThis operation also returns a suppression that has already ended. The `blocking` field is `false`, and the `ended_*` fields say when and why. An ID you kept from a create or delete therefore stays readable. To find one when you only know the number, use `GET /v1/sms/suppressions` with the `destination` parameter. An ID that does not exist in the workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "ssu_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression, as returned when it was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ssu_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"destination\": \"+15550001234\",\n  \"originator\": \"+15557654321\",\n  \"reason\": \"keyword_stop\",\n  \"origin\": \"keyword\",\n  \"applies_to\": \"all\",\n  \"source_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"ended_reason\": \"keyword_start\",\n  \"source_end_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "0d7bb26e-cd74-80ae-89b3-2b31f1dec1e3",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get an SMS suppression",
                "description": {
                  "content": "Returns one suppression: the sender and subscriber it covers, why messages are stopped, how the record came to exist, what it blocks, and whether it is still in force.\n\nThis operation also returns a suppression that has already ended. The `blocking` field is `false`, and the `ended_*` fields say when and why. An ID you kept from a create or delete therefore stays readable. To find one when you only know the number, use `GET /v1/sms/suppressions` with the `destination` parameter. An ID that does not exist in the workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "ssu_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression, as returned when it was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ssu_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"destination\": \"+15550001234\",\n  \"originator\": \"+15557654321\",\n  \"reason\": \"keyword_stop\",\n  \"origin\": \"keyword\",\n  \"applies_to\": \"all\",\n  \"source_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"ended_reason\": \"keyword_start\",\n  \"source_end_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "4f4dc67e-c4f9-8ee6-8203-9e661b3372f8",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get an SMS suppression",
                "description": {
                  "content": "Returns one suppression: the sender and subscriber it covers, why messages are stopped, how the record came to exist, what it blocks, and whether it is still in force.\n\nThis operation also returns a suppression that has already ended. The `blocking` field is `false`, and the `ended_*` fields say when and why. An ID you kept from a create or delete therefore stays readable. To find one when you only know the number, use `GET /v1/sms/suppressions` with the `destination` parameter. An ID that does not exist in the workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "ssu_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression, as returned when it was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"ssu_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"destination\": \"+15550001234\",\n  \"originator\": \"+15557654321\",\n  \"reason\": \"keyword_stop\",\n  \"origin\": \"keyword\",\n  \"applies_to\": \"all\",\n  \"source_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"ended_reason\": \"keyword_start\",\n  \"source_end_sms_id\": \"sms_01krdgeqcxet5s7t44vh8rt9mg\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "795e1415-3f59-8618-857e-fce183130cc9",
          "name": "Delete an SMS suppression",
          "request": {
            "name": "Delete an SMS suppression",
            "description": {
              "content": "Ends a suppression, so the sender reaches the subscriber again. The record stays with the ending noted on it. This history helps answer later complaints or carrier audits.\n\n**Only the `manual` reason can be ended here.** A `keyword_stop` is the subscriber's own statement. It ends only when they text a start keyword to that sender. A `carrier_opted_out` mirrors what the carrier reported, so it ends when the carrier says so. Attempts to end either reason return `422`.\n\nEnding a suppression resumes messaging to someone your own records say did not want it, so do it only when you know why the `manual` record exists. An ID that does not exist in the workspace returns `404`, and one that has already ended returns `204`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "sms",
                "suppressions",
                ":suppression_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "ssu_01krdgeqcxet5s7t44vh8rt9mg",
                  "key": "suppression_id",
                  "description": "(Required) ID of the suppression, as returned when it was created or listed.\n"
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "DELETE"
          },
          "response": [
            {
              "id": "b7c2de29-c352-86fe-8466-05efe6623da4",
              "name": "Suppression ended.",
              "originalRequest": {
                "name": "Delete an SMS suppression",
                "description": {
                  "content": "Ends a suppression, so the sender reaches the subscriber again. The record stays with the ending noted on it. This history helps answer later complaints or carrier audits.\n\n**Only the `manual` reason can be ended here.** A `keyword_stop` is the subscriber's own statement. It ends only when they text a start keyword to that sender. A `carrier_opted_out` mirrors what the carrier reported, so it ends when the carrier says so. Attempts to end either reason return `422`.\n\nEnding a suppression resumes messaging to someone your own records say did not want it, so do it only when you know why the `manual` record exists. An ID that does not exist in the workspace returns `404`, and one that has already ended returns `204`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "ssu_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression, as returned when it was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "No Content",
              "code": 204,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "text/plain"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "text"
            },
            {
              "id": "aa5b1515-be86-8c61-82a5-fc49bd83bac1",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Delete an SMS suppression",
                "description": {
                  "content": "Ends a suppression, so the sender reaches the subscriber again. The record stays with the ending noted on it. This history helps answer later complaints or carrier audits.\n\n**Only the `manual` reason can be ended here.** A `keyword_stop` is the subscriber's own statement. It ends only when they text a start keyword to that sender. A `carrier_opted_out` mirrors what the carrier reported, so it ends when the carrier says so. Attempts to end either reason return `422`.\n\nEnding a suppression resumes messaging to someone your own records say did not want it, so do it only when you know why the `manual` record exists. An ID that does not exist in the workspace returns `404`, and one that has already ended returns `204`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "ssu_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression, as returned when it was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unauthorized",
              "code": 401,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ca048e56-a3d7-8d2b-85dc-d96e7e0714ed",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Delete an SMS suppression",
                "description": {
                  "content": "Ends a suppression, so the sender reaches the subscriber again. The record stays with the ending noted on it. This history helps answer later complaints or carrier audits.\n\n**Only the `manual` reason can be ended here.** A `keyword_stop` is the subscriber's own statement. It ends only when they text a start keyword to that sender. A `carrier_opted_out` mirrors what the carrier reported, so it ends when the carrier says so. Attempts to end either reason return `422`.\n\nEnding a suppression resumes messaging to someone your own records say did not want it, so do it only when you know why the `manual` record exists. An ID that does not exist in the workspace returns `404`, and one that has already ended returns `204`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "ssu_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression, as returned when it was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Forbidden",
              "code": 403,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "164a0f6c-077a-803b-8b2e-6fe030b61ae8",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Delete an SMS suppression",
                "description": {
                  "content": "Ends a suppression, so the sender reaches the subscriber again. The record stays with the ending noted on it. This history helps answer later complaints or carrier audits.\n\n**Only the `manual` reason can be ended here.** A `keyword_stop` is the subscriber's own statement. It ends only when they text a start keyword to that sender. A `carrier_opted_out` mirrors what the carrier reported, so it ends when the carrier says so. Attempts to end either reason return `422`.\n\nEnding a suppression resumes messaging to someone your own records say did not want it, so do it only when you know why the `manual` record exists. An ID that does not exist in the workspace returns `404`, and one that has already ended returns `204`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "ssu_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression, as returned when it was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Not Found",
              "code": 404,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "09a5f0a3-ca91-8afe-8869-aece19527598",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Delete an SMS suppression",
                "description": {
                  "content": "Ends a suppression, so the sender reaches the subscriber again. The record stays with the ending noted on it. This history helps answer later complaints or carrier audits.\n\n**Only the `manual` reason can be ended here.** A `keyword_stop` is the subscriber's own statement. It ends only when they text a start keyword to that sender. A `carrier_opted_out` mirrors what the carrier reported, so it ends when the carrier says so. Attempts to end either reason return `422`.\n\nEnding a suppression resumes messaging to someone your own records say did not want it, so do it only when you know why the `manual` record exists. An ID that does not exist in the workspace returns `404`, and one that has already ended returns `204`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "ssu_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression, as returned when it was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 422,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "cef97cfb-90eb-8e47-8291-2cd35056a9ff",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Delete an SMS suppression",
                "description": {
                  "content": "Ends a suppression, so the sender reaches the subscriber again. The record stays with the ending noted on it. This history helps answer later complaints or carrier audits.\n\n**Only the `manual` reason can be ended here.** A `keyword_stop` is the subscriber's own statement. It ends only when they text a start keyword to that sender. A `carrier_opted_out` mirrors what the carrier reported, so it ends when the carrier says so. Attempts to end either reason return `422`.\n\nEnding a suppression resumes messaging to someone your own records say did not want it, so do it only when you know why the `manual` record exists. An ID that does not exist in the workspace returns `404`, and one that has already ended returns `204`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "ssu_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression, as returned when it was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Too Many Requests",
              "code": 429,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "1d45ed17-cbea-8cd2-821d-f4a171afdf70",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Delete an SMS suppression",
                "description": {
                  "content": "Ends a suppression, so the sender reaches the subscriber again. The record stays with the ending noted on it. This history helps answer later complaints or carrier audits.\n\n**Only the `manual` reason can be ended here.** A `keyword_stop` is the subscriber's own statement. It ends only when they text a start keyword to that sender. A `carrier_opted_out` mirrors what the carrier reported, so it ends when the carrier says so. Attempts to end either reason return `422`.\n\nEnding a suppression resumes messaging to someone your own records say did not want it, so do it only when you know why the `manual` record exists. An ID that does not exist in the workspace returns `404`, and one that has already ended returns `204`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "sms",
                    "suppressions",
                    ":suppression_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "ssu_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "suppression_id",
                      "description": "(Required) ID of the suppression, as returned when it was created or listed.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Internal Server Error",
              "code": 500,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    },
    {
      "id": "7f33ede4-8410-8c57-804f-01586b4fd585",
      "name": "preferences",
      "description": {
        "content": "Stated messaging preferences (consent grants and opt-outs) recorded per handle across email, SMS, and WhatsApp, with causally ordered writes.",
        "type": "text/plain"
      },
      "item": [
        {
          "id": "64d08324-ff8c-8805-8c1f-312d97706ee3",
          "name": "List a contact's preferences",
          "request": {
            "name": "List a contact's preferences",
            "description": {
              "content": "Returns the preferences on record for the contact's current handles: rows keyed to their email address on the email channel, and to their phone number on SMS and WhatsApp. A contact with no handles, or with no statements on record, returns an empty page.\n\nRows are keyed by handle, not by contact: changing a contact's email address or phone number changes which rows this returns, and the old handle's rows remain in force for anything still sent to it.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "contacts",
                ":contact_id",
                "preferences"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                }
              ],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "con_01krdgeqcxet5s7t44vh8rt9mg",
                  "key": "contact_id",
                  "description": "(Required) ID of the contact."
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "846eea06-c170-8a0d-8840-85732c41b01a",
              "name": "Paginated list of the contact's preferences.",
              "originalRequest": {
                "name": "List a contact's preferences",
                "description": {
                  "content": "Returns the preferences on record for the contact's current handles: rows keyed to their email address on the email channel, and to their phone number on SMS and WhatsApp. A contact with no handles, or with no statements on record, returns an empty page.\n\nRows are keyed by handle, not by contact: changing a contact's email address or phone number changes which rows this returns, and the old handle's rows remain in force for anything still sent to it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id",
                    "preferences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "con_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"channel\": \"sms\",\n      \"handle\": \"+15550001234\",\n      \"sender_scope\": \"+15557654321\",\n      \"topic_id\": null,\n      \"status\": \"revoked\",\n      \"coverage\": \"non_transactional\",\n      \"origin\": \"api_key\",\n      \"source\": \"signup-form-v2\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "f48ebf0c-243e-8f19-8df1-1b8188bae252",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List a contact's preferences",
                "description": {
                  "content": "Returns the preferences on record for the contact's current handles: rows keyed to their email address on the email channel, and to their phone number on SMS and WhatsApp. A contact with no handles, or with no statements on record, returns an empty page.\n\nRows are keyed by handle, not by contact: changing a contact's email address or phone number changes which rows this returns, and the old handle's rows remain in force for anything still sent to it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id",
                    "preferences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "con_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"channel\": \"sms\",\n      \"handle\": \"+15550001234\",\n      \"sender_scope\": \"+15557654321\",\n      \"topic_id\": null,\n      \"status\": \"revoked\",\n      \"coverage\": \"non_transactional\",\n      \"origin\": \"api_key\",\n      \"source\": \"signup-form-v2\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b23edd5f-b52f-8eb8-801f-1223cae8bfb8",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List a contact's preferences",
                "description": {
                  "content": "Returns the preferences on record for the contact's current handles: rows keyed to their email address on the email channel, and to their phone number on SMS and WhatsApp. A contact with no handles, or with no statements on record, returns an empty page.\n\nRows are keyed by handle, not by contact: changing a contact's email address or phone number changes which rows this returns, and the old handle's rows remain in force for anything still sent to it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id",
                    "preferences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "con_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"channel\": \"sms\",\n      \"handle\": \"+15550001234\",\n      \"sender_scope\": \"+15557654321\",\n      \"topic_id\": null,\n      \"status\": \"revoked\",\n      \"coverage\": \"non_transactional\",\n      \"origin\": \"api_key\",\n      \"source\": \"signup-form-v2\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "a13fcccf-214c-8a56-8e23-a4c8a24f9e7c",
              "name": "Resource not found",
              "originalRequest": {
                "name": "List a contact's preferences",
                "description": {
                  "content": "Returns the preferences on record for the contact's current handles: rows keyed to their email address on the email channel, and to their phone number on SMS and WhatsApp. A contact with no handles, or with no statements on record, returns an empty page.\n\nRows are keyed by handle, not by contact: changing a contact's email address or phone number changes which rows this returns, and the old handle's rows remain in force for anything still sent to it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id",
                    "preferences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "con_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"channel\": \"sms\",\n      \"handle\": \"+15550001234\",\n      \"sender_scope\": \"+15557654321\",\n      \"topic_id\": null,\n      \"status\": \"revoked\",\n      \"coverage\": \"non_transactional\",\n      \"origin\": \"api_key\",\n      \"source\": \"signup-form-v2\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "3eb382e8-d363-8db0-81b0-9a7d5dbe6146",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List a contact's preferences",
                "description": {
                  "content": "Returns the preferences on record for the contact's current handles: rows keyed to their email address on the email channel, and to their phone number on SMS and WhatsApp. A contact with no handles, or with no statements on record, returns an empty page.\n\nRows are keyed by handle, not by contact: changing a contact's email address or phone number changes which rows this returns, and the old handle's rows remain in force for anything still sent to it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id",
                    "preferences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "con_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"channel\": \"sms\",\n      \"handle\": \"+15550001234\",\n      \"sender_scope\": \"+15557654321\",\n      \"topic_id\": null,\n      \"status\": \"revoked\",\n      \"coverage\": \"non_transactional\",\n      \"origin\": \"api_key\",\n      \"source\": \"signup-form-v2\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "67293024-d593-8b5b-8866-5e1a6a542573",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List a contact's preferences",
                "description": {
                  "content": "Returns the preferences on record for the contact's current handles: rows keyed to their email address on the email channel, and to their phone number on SMS and WhatsApp. A contact with no handles, or with no statements on record, returns an empty page.\n\nRows are keyed by handle, not by contact: changing a contact's email address or phone number changes which rows this returns, and the old handle's rows remain in force for anything still sent to it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id",
                    "preferences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "con_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"channel\": \"sms\",\n      \"handle\": \"+15550001234\",\n      \"sender_scope\": \"+15557654321\",\n      \"topic_id\": null,\n      \"status\": \"revoked\",\n      \"coverage\": \"non_transactional\",\n      \"origin\": \"api_key\",\n      \"source\": \"signup-form-v2\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7754168d-0461-8635-845e-75711eb43f0d",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List a contact's preferences",
                "description": {
                  "content": "Returns the preferences on record for the contact's current handles: rows keyed to their email address on the email channel, and to their phone number on SMS and WhatsApp. A contact with no handles, or with no statements on record, returns an empty page.\n\nRows are keyed by handle, not by contact: changing a contact's email address or phone number changes which rows this returns, and the old handle's rows remain in force for anything still sent to it.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "contacts",
                    ":contact_id",
                    "preferences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "con_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "contact_id",
                      "description": "(Required) ID of the contact."
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"channel\": \"sms\",\n      \"handle\": \"+15550001234\",\n      \"sender_scope\": \"+15557654321\",\n      \"topic_id\": null,\n      \"status\": \"revoked\",\n      \"coverage\": \"non_transactional\",\n      \"origin\": \"api_key\",\n      \"source\": \"signup-form-v2\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "5719eb03-ce27-864a-81c6-dfb899c31615",
          "name": "List preferences",
          "request": {
            "name": "List preferences",
            "description": {
              "content": "Returns the workspace's recorded preferences, most recently created first. Pass `channel` to narrow to one channel, and `handle` with it to look up everything on record for one address or number.\n\nEach row is a key's current statement. A person can hold several rows on one channel (a channel-wide opt-out next to sender-scoped ones), and the most restrictive statement is what decides whether a message goes out.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "preferences"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "channel",
                  "value": "",
                  "description": "Return only preferences on this channel."
                },
                {
                  "disabled": false,
                  "key": "handle",
                  "value": "+15550001234",
                  "description": "Return only preferences for this exact handle: an email address or an E.164 phone number. Requires `channel`, since a handle only means something on its channel.\n"
                },
                {
                  "disabled": false,
                  "key": "limit",
                  "value": "25",
                  "description": "Maximum number of items to return per page."
                },
                {
                  "disabled": true,
                  "key": "starting_after",
                  "value": "",
                  "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                },
                {
                  "disabled": true,
                  "key": "ending_before",
                  "value": "",
                  "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                }
              ],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "71090d34-fe28-84ed-8b82-dca4041902fc",
              "name": "Paginated list of preferences.",
              "originalRequest": {
                "name": "List preferences",
                "description": {
                  "content": "Returns the workspace's recorded preferences, most recently created first. Pass `channel` to narrow to one channel, and `handle` with it to look up everything on record for one address or number.\n\nEach row is a key's current statement. A person can hold several rows on one channel (a channel-wide opt-out next to sender-scoped ones), and the most restrictive statement is what decides whether a message goes out.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "channel",
                      "value": "",
                      "description": "Return only preferences on this channel."
                    },
                    {
                      "disabled": false,
                      "key": "handle",
                      "value": "+15550001234",
                      "description": "Return only preferences for this exact handle: an email address or an E.164 phone number. Requires `channel`, since a handle only means something on its channel.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"channel\": \"sms\",\n      \"handle\": \"+15550001234\",\n      \"sender_scope\": \"+15557654321\",\n      \"topic_id\": null,\n      \"status\": \"revoked\",\n      \"coverage\": \"non_transactional\",\n      \"origin\": \"api_key\",\n      \"source\": \"signup-form-v2\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9195234b-02b5-85ae-89c2-664e136262fc",
              "name": "Authentication required",
              "originalRequest": {
                "name": "List preferences",
                "description": {
                  "content": "Returns the workspace's recorded preferences, most recently created first. Pass `channel` to narrow to one channel, and `handle` with it to look up everything on record for one address or number.\n\nEach row is a key's current statement. A person can hold several rows on one channel (a channel-wide opt-out next to sender-scoped ones), and the most restrictive statement is what decides whether a message goes out.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "channel",
                      "value": "",
                      "description": "Return only preferences on this channel."
                    },
                    {
                      "disabled": false,
                      "key": "handle",
                      "value": "+15550001234",
                      "description": "Return only preferences for this exact handle: an email address or an E.164 phone number. Requires `channel`, since a handle only means something on its channel.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"channel\": \"sms\",\n      \"handle\": \"+15550001234\",\n      \"sender_scope\": \"+15557654321\",\n      \"topic_id\": null,\n      \"status\": \"revoked\",\n      \"coverage\": \"non_transactional\",\n      \"origin\": \"api_key\",\n      \"source\": \"signup-form-v2\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "edbde7b1-d6fb-89f6-835b-fbe0eeb9efbc",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "List preferences",
                "description": {
                  "content": "Returns the workspace's recorded preferences, most recently created first. Pass `channel` to narrow to one channel, and `handle` with it to look up everything on record for one address or number.\n\nEach row is a key's current statement. A person can hold several rows on one channel (a channel-wide opt-out next to sender-scoped ones), and the most restrictive statement is what decides whether a message goes out.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "channel",
                      "value": "",
                      "description": "Return only preferences on this channel."
                    },
                    {
                      "disabled": false,
                      "key": "handle",
                      "value": "+15550001234",
                      "description": "Return only preferences for this exact handle: an email address or an E.164 phone number. Requires `channel`, since a handle only means something on its channel.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"channel\": \"sms\",\n      \"handle\": \"+15550001234\",\n      \"sender_scope\": \"+15557654321\",\n      \"topic_id\": null,\n      \"status\": \"revoked\",\n      \"coverage\": \"non_transactional\",\n      \"origin\": \"api_key\",\n      \"source\": \"signup-form-v2\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e283dad0-9a1f-807f-8255-e840321aa619",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "List preferences",
                "description": {
                  "content": "Returns the workspace's recorded preferences, most recently created first. Pass `channel` to narrow to one channel, and `handle` with it to look up everything on record for one address or number.\n\nEach row is a key's current statement. A person can hold several rows on one channel (a channel-wide opt-out next to sender-scoped ones), and the most restrictive statement is what decides whether a message goes out.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "channel",
                      "value": "",
                      "description": "Return only preferences on this channel."
                    },
                    {
                      "disabled": false,
                      "key": "handle",
                      "value": "+15550001234",
                      "description": "Return only preferences for this exact handle: an email address or an E.164 phone number. Requires `channel`, since a handle only means something on its channel.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"channel\": \"sms\",\n      \"handle\": \"+15550001234\",\n      \"sender_scope\": \"+15557654321\",\n      \"topic_id\": null,\n      \"status\": \"revoked\",\n      \"coverage\": \"non_transactional\",\n      \"origin\": \"api_key\",\n      \"source\": \"signup-form-v2\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "05b3a46f-a49c-8be6-8e80-8e1fa3d13b62",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "List preferences",
                "description": {
                  "content": "Returns the workspace's recorded preferences, most recently created first. Pass `channel` to narrow to one channel, and `handle` with it to look up everything on record for one address or number.\n\nEach row is a key's current statement. A person can hold several rows on one channel (a channel-wide opt-out next to sender-scoped ones), and the most restrictive statement is what decides whether a message goes out.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "channel",
                      "value": "",
                      "description": "Return only preferences on this channel."
                    },
                    {
                      "disabled": false,
                      "key": "handle",
                      "value": "+15550001234",
                      "description": "Return only preferences for this exact handle: an email address or an E.164 phone number. Requires `channel`, since a handle only means something on its channel.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"channel\": \"sms\",\n      \"handle\": \"+15550001234\",\n      \"sender_scope\": \"+15557654321\",\n      \"topic_id\": null,\n      \"status\": \"revoked\",\n      \"coverage\": \"non_transactional\",\n      \"origin\": \"api_key\",\n      \"source\": \"signup-form-v2\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b85323c3-a5d9-8a5f-8b5d-5b74df75937e",
              "name": "Internal server error",
              "originalRequest": {
                "name": "List preferences",
                "description": {
                  "content": "Returns the workspace's recorded preferences, most recently created first. Pass `channel` to narrow to one channel, and `handle` with it to look up everything on record for one address or number.\n\nEach row is a key's current statement. A person can hold several rows on one channel (a channel-wide opt-out next to sender-scoped ones), and the most restrictive statement is what decides whether a message goes out.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "channel",
                      "value": "",
                      "description": "Return only preferences on this channel."
                    },
                    {
                      "disabled": false,
                      "key": "handle",
                      "value": "+15550001234",
                      "description": "Return only preferences for this exact handle: an email address or an E.164 phone number. Requires `channel`, since a handle only means something on its channel.\n"
                    },
                    {
                      "disabled": false,
                      "key": "limit",
                      "value": "25",
                      "description": "Maximum number of items to return per page."
                    },
                    {
                      "disabled": true,
                      "key": "starting_after",
                      "value": "",
                      "description": "Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order."
                    },
                    {
                      "disabled": true,
                      "key": "ending_before",
                      "value": "",
                      "description": "Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since."
                    }
                  ],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"data\": [\n    {\n      \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"channel\": \"sms\",\n      \"handle\": \"+15550001234\",\n      \"sender_scope\": \"+15557654321\",\n      \"topic_id\": null,\n      \"status\": \"revoked\",\n      \"coverage\": \"non_transactional\",\n      \"origin\": \"api_key\",\n      \"source\": \"signup-form-v2\",\n      \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n      \"created_at\": \"2026-05-20T09:14:52Z\",\n      \"updated_at\": \"2026-05-25T16:42:01Z\"\n    }\n  ],\n  \"next_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9\",\n  \"prev_cursor\": null,\n  \"refresh_cursor\": \"eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "46cc5a63-90c2-815e-802e-71221142837d",
          "name": "Record a preference",
          "request": {
            "name": "Record a preference",
            "description": {
              "content": "Records one statement, a grant or an opt-out, for a handle on one channel. Writing is an upsert: the key is the channel, handle, and optional sender scope, and a new statement replaces the key's current one.\n\nStatements are ordered by when they were made, not when they arrive. A statement older than the key's current one is refused and returned with `applied: false` alongside the statement that survived; refusals are recorded on the key's history. Granting over a stored opt-out needs `consented_at` later than the opt-out, and a person's own opt-out (an unsubscribe, a stop keyword) cannot be overridden by a grant asserted on their behalf.\n\nA `201` means this key had no record and one was created; a `200` returns the key's surviving record, whether this statement replaced it, repeated it, or was refused.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "preferences"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Content-Type",
                "value": "",
                "disabled": true
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"channel\": \"sms\",\n  \"handle\": \"+15550001234\",\n  \"status\": \"revoked\",\n  \"coverage\": \"non_transactional\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": [
            {
              "id": "28d111ba-d963-8558-888a-617a97afa2ab",
              "name": "The key already had a record. The result says whether this statement replaced it, repeated it, or was refused as out of order.",
              "originalRequest": {
                "name": "Record a preference",
                "description": {
                  "content": "Records one statement, a grant or an opt-out, for a handle on one channel. Writing is an upsert: the key is the channel, handle, and optional sender scope, and a new statement replaces the key's current one.\n\nStatements are ordered by when they were made, not when they arrive. A statement older than the key's current one is refused and returned with `applied: false` alongside the statement that survived; refusals are recorded on the key's history. Granting over a stored opt-out needs `consented_at` later than the opt-out, and a person's own opt-out (an unsubscribe, a stop keyword) cannot be overridden by a grant asserted on their behalf.\n\nA `201` means this key had no record and one was created; a `200` returns the key's surviving record, whether this statement replaced it, repeated it, or was refused.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"channel\": \"sms\",\n  \"handle\": \"+15550001234\",\n  \"status\": \"revoked\",\n  \"coverage\": \"non_transactional\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"transition_id\": \"prt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"preference\": {\n    \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"channel\": \"sms\",\n    \"handle\": \"+15550001234\",\n    \"sender_scope\": \"+15557654321\",\n    \"topic_id\": null,\n    \"status\": \"revoked\",\n    \"coverage\": \"non_transactional\",\n    \"origin\": \"api_key\",\n    \"source\": \"signup-form-v2\",\n    \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"created_at\": \"2026-05-20T09:14:52Z\",\n    \"updated_at\": \"2026-05-25T16:42:01Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6fc84624-d176-8ca2-8e5a-255bed3b4c58",
              "name": "The key had no record; this statement created one.",
              "originalRequest": {
                "name": "Record a preference",
                "description": {
                  "content": "Records one statement, a grant or an opt-out, for a handle on one channel. Writing is an upsert: the key is the channel, handle, and optional sender scope, and a new statement replaces the key's current one.\n\nStatements are ordered by when they were made, not when they arrive. A statement older than the key's current one is refused and returned with `applied: false` alongside the statement that survived; refusals are recorded on the key's history. Granting over a stored opt-out needs `consented_at` later than the opt-out, and a person's own opt-out (an unsubscribe, a stop keyword) cannot be overridden by a grant asserted on their behalf.\n\nA `201` means this key had no record and one was created; a `200` returns the key's surviving record, whether this statement replaced it, repeated it, or was refused.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"channel\": \"sms\",\n  \"handle\": \"+15550001234\",\n  \"status\": \"revoked\",\n  \"coverage\": \"non_transactional\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Created",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "The API includes this header when it replays the response for an earlier request that used the same `Idempotency-Key`. The API does not process the request again.",
                  "key": "Idempotency-Replay",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"transition_id\": \"prt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"preference\": {\n    \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"channel\": \"sms\",\n    \"handle\": \"+15550001234\",\n    \"sender_scope\": \"+15557654321\",\n    \"topic_id\": null,\n    \"status\": \"revoked\",\n    \"coverage\": \"non_transactional\",\n    \"origin\": \"api_key\",\n    \"source\": \"signup-form-v2\",\n    \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"created_at\": \"2026-05-20T09:14:52Z\",\n    \"updated_at\": \"2026-05-25T16:42:01Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "77906f12-d346-8bd9-82ac-c01eb8a83fa4",
              "name": "Bad request",
              "originalRequest": {
                "name": "Record a preference",
                "description": {
                  "content": "Records one statement, a grant or an opt-out, for a handle on one channel. Writing is an upsert: the key is the channel, handle, and optional sender scope, and a new statement replaces the key's current one.\n\nStatements are ordered by when they were made, not when they arrive. A statement older than the key's current one is refused and returned with `applied: false` alongside the statement that survived; refusals are recorded on the key's history. Granting over a stored opt-out needs `consented_at` later than the opt-out, and a person's own opt-out (an unsubscribe, a stop keyword) cannot be overridden by a grant asserted on their behalf.\n\nA `201` means this key had no record and one was created; a `200` returns the key's surviving record, whether this statement replaced it, repeated it, or was refused.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"channel\": \"sms\",\n  \"handle\": \"+15550001234\",\n  \"status\": \"revoked\",\n  \"coverage\": \"non_transactional\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Bad Request",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"transition_id\": \"prt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"preference\": {\n    \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"channel\": \"sms\",\n    \"handle\": \"+15550001234\",\n    \"sender_scope\": \"+15557654321\",\n    \"topic_id\": null,\n    \"status\": \"revoked\",\n    \"coverage\": \"non_transactional\",\n    \"origin\": \"api_key\",\n    \"source\": \"signup-form-v2\",\n    \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"created_at\": \"2026-05-20T09:14:52Z\",\n    \"updated_at\": \"2026-05-25T16:42:01Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "b7ccba30-dacb-89db-834d-048907f00bd2",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Record a preference",
                "description": {
                  "content": "Records one statement, a grant or an opt-out, for a handle on one channel. Writing is an upsert: the key is the channel, handle, and optional sender scope, and a new statement replaces the key's current one.\n\nStatements are ordered by when they were made, not when they arrive. A statement older than the key's current one is refused and returned with `applied: false` alongside the statement that survived; refusals are recorded on the key's history. Granting over a stored opt-out needs `consented_at` later than the opt-out, and a person's own opt-out (an unsubscribe, a stop keyword) cannot be overridden by a grant asserted on their behalf.\n\nA `201` means this key had no record and one was created; a `200` returns the key's surviving record, whether this statement replaced it, repeated it, or was refused.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"channel\": \"sms\",\n  \"handle\": \"+15550001234\",\n  \"status\": \"revoked\",\n  \"coverage\": \"non_transactional\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"transition_id\": \"prt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"preference\": {\n    \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"channel\": \"sms\",\n    \"handle\": \"+15550001234\",\n    \"sender_scope\": \"+15557654321\",\n    \"topic_id\": null,\n    \"status\": \"revoked\",\n    \"coverage\": \"non_transactional\",\n    \"origin\": \"api_key\",\n    \"source\": \"signup-form-v2\",\n    \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"created_at\": \"2026-05-20T09:14:52Z\",\n    \"updated_at\": \"2026-05-25T16:42:01Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "22be984e-9f3d-8451-8fc2-3823a8837f93",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Record a preference",
                "description": {
                  "content": "Records one statement, a grant or an opt-out, for a handle on one channel. Writing is an upsert: the key is the channel, handle, and optional sender scope, and a new statement replaces the key's current one.\n\nStatements are ordered by when they were made, not when they arrive. A statement older than the key's current one is refused and returned with `applied: false` alongside the statement that survived; refusals are recorded on the key's history. Granting over a stored opt-out needs `consented_at` later than the opt-out, and a person's own opt-out (an unsubscribe, a stop keyword) cannot be overridden by a grant asserted on their behalf.\n\nA `201` means this key had no record and one was created; a `200` returns the key's surviving record, whether this statement replaced it, repeated it, or was refused.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"channel\": \"sms\",\n  \"handle\": \"+15550001234\",\n  \"status\": \"revoked\",\n  \"coverage\": \"non_transactional\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"transition_id\": \"prt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"preference\": {\n    \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"channel\": \"sms\",\n    \"handle\": \"+15550001234\",\n    \"sender_scope\": \"+15557654321\",\n    \"topic_id\": null,\n    \"status\": \"revoked\",\n    \"coverage\": \"non_transactional\",\n    \"origin\": \"api_key\",\n    \"source\": \"signup-form-v2\",\n    \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"created_at\": \"2026-05-20T09:14:52Z\",\n    \"updated_at\": \"2026-05-25T16:42:01Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d47183f0-5e79-8f8f-825d-3b430ff13d09",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Record a preference",
                "description": {
                  "content": "Records one statement, a grant or an opt-out, for a handle on one channel. Writing is an upsert: the key is the channel, handle, and optional sender scope, and a new statement replaces the key's current one.\n\nStatements are ordered by when they were made, not when they arrive. A statement older than the key's current one is refused and returned with `applied: false` alongside the statement that survived; refusals are recorded on the key's history. Granting over a stored opt-out needs `consented_at` later than the opt-out, and a person's own opt-out (an unsubscribe, a stop keyword) cannot be overridden by a grant asserted on their behalf.\n\nA `201` means this key had no record and one was created; a `200` returns the key's surviving record, whether this statement replaced it, repeated it, or was refused.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"channel\": \"sms\",\n  \"handle\": \"+15550001234\",\n  \"status\": \"revoked\",\n  \"coverage\": \"non_transactional\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"transition_id\": \"prt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"preference\": {\n    \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"channel\": \"sms\",\n    \"handle\": \"+15550001234\",\n    \"sender_scope\": \"+15557654321\",\n    \"topic_id\": null,\n    \"status\": \"revoked\",\n    \"coverage\": \"non_transactional\",\n    \"origin\": \"api_key\",\n    \"source\": \"signup-form-v2\",\n    \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"created_at\": \"2026-05-20T09:14:52Z\",\n    \"updated_at\": \"2026-05-25T16:42:01Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "7e2566e0-9958-8a6e-866f-a4548ece3a5d",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Record a preference",
                "description": {
                  "content": "Records one statement, a grant or an opt-out, for a handle on one channel. Writing is an upsert: the key is the channel, handle, and optional sender scope, and a new statement replaces the key's current one.\n\nStatements are ordered by when they were made, not when they arrive. A statement older than the key's current one is refused and returned with `applied: false` alongside the statement that survived; refusals are recorded on the key's history. Granting over a stored opt-out needs `consented_at` later than the opt-out, and a person's own opt-out (an unsubscribe, a stop keyword) cannot be overridden by a grant asserted on their behalf.\n\nA `201` means this key had no record and one was created; a `200` returns the key's surviving record, whether this statement replaced it, repeated it, or was refused.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"channel\": \"sms\",\n  \"handle\": \"+15550001234\",\n  \"status\": \"revoked\",\n  \"coverage\": \"non_transactional\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"transition_id\": \"prt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"preference\": {\n    \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"channel\": \"sms\",\n    \"handle\": \"+15550001234\",\n    \"sender_scope\": \"+15557654321\",\n    \"topic_id\": null,\n    \"status\": \"revoked\",\n    \"coverage\": \"non_transactional\",\n    \"origin\": \"api_key\",\n    \"source\": \"signup-form-v2\",\n    \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"created_at\": \"2026-05-20T09:14:52Z\",\n    \"updated_at\": \"2026-05-25T16:42:01Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "d2c27136-7f69-8a75-8bcf-991a2f03307b",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Record a preference",
                "description": {
                  "content": "Records one statement, a grant or an opt-out, for a handle on one channel. Writing is an upsert: the key is the channel, handle, and optional sender scope, and a new statement replaces the key's current one.\n\nStatements are ordered by when they were made, not when they arrive. A statement older than the key's current one is refused and returned with `applied: false` alongside the statement that survived; refusals are recorded on the key's history. Granting over a stored opt-out needs `consented_at` later than the opt-out, and a person's own opt-out (an unsubscribe, a stop keyword) cannot be overridden by a grant asserted on their behalf.\n\nA `201` means this key had no record and one was created; a `200` returns the key's surviving record, whether this statement replaced it, repeated it, or was refused.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Content-Type",
                    "value": "",
                    "disabled": true
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"channel\": \"sms\",\n  \"handle\": \"+15550001234\",\n  \"status\": \"revoked\",\n  \"coverage\": \"non_transactional\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"transition_id\": \"prt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"preference\": {\n    \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"channel\": \"sms\",\n    \"handle\": \"+15550001234\",\n    \"sender_scope\": \"+15557654321\",\n    \"topic_id\": null,\n    \"status\": \"revoked\",\n    \"coverage\": \"non_transactional\",\n    \"origin\": \"api_key\",\n    \"source\": \"signup-form-v2\",\n    \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"created_at\": \"2026-05-20T09:14:52Z\",\n    \"updated_at\": \"2026-05-25T16:42:01Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "3aa49394-7e06-8005-89aa-889d9612e7d7",
          "name": "Get a preference",
          "request": {
            "name": "Get a preference",
            "description": {
              "content": "Returns one preference: the key it is about, the current statement on it, and the statement's provenance. An ID that does not exist in the workspace returns `404`, including after a delete, which removes the record its ID pointed at.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "preferences",
                ":preference_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "prf_01krdgeqcxet5s7t44vh8rt9mg",
                  "key": "preference_id",
                  "description": "(Required) ID of the preference, as returned when it was recorded or listed. The ID stays stable while the key holds a record; deleting and re-recording the same key mints a new one.\n"
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "GET"
          },
          "response": [
            {
              "id": "788d4812-88d7-8e1f-800a-1b0855ffd090",
              "name": "Preference.",
              "originalRequest": {
                "name": "Get a preference",
                "description": {
                  "content": "Returns one preference: the key it is about, the current statement on it, and the statement's provenance. An ID that does not exist in the workspace returns `404`, including after a delete, which removes the record its ID pointed at.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences",
                    ":preference_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "prf_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "preference_id",
                      "description": "(Required) ID of the preference, as returned when it was recorded or listed. The ID stays stable while the key holds a record; deleting and re-recording the same key mints a new one.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"channel\": \"sms\",\n  \"handle\": \"+15550001234\",\n  \"sender_scope\": \"+15557654321\",\n  \"topic_id\": null,\n  \"status\": \"revoked\",\n  \"coverage\": \"non_transactional\",\n  \"origin\": \"api_key\",\n  \"source\": \"signup-form-v2\",\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "82daa194-537f-8540-83b1-075ac82ee111",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Get a preference",
                "description": {
                  "content": "Returns one preference: the key it is about, the current statement on it, and the statement's provenance. An ID that does not exist in the workspace returns `404`, including after a delete, which removes the record its ID pointed at.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences",
                    ":preference_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "prf_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "preference_id",
                      "description": "(Required) ID of the preference, as returned when it was recorded or listed. The ID stays stable while the key holds a record; deleting and re-recording the same key mints a new one.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"channel\": \"sms\",\n  \"handle\": \"+15550001234\",\n  \"sender_scope\": \"+15557654321\",\n  \"topic_id\": null,\n  \"status\": \"revoked\",\n  \"coverage\": \"non_transactional\",\n  \"origin\": \"api_key\",\n  \"source\": \"signup-form-v2\",\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "97a6b9b9-a1e9-8e64-8f82-4e1494b3dfbb",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Get a preference",
                "description": {
                  "content": "Returns one preference: the key it is about, the current statement on it, and the statement's provenance. An ID that does not exist in the workspace returns `404`, including after a delete, which removes the record its ID pointed at.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences",
                    ":preference_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "prf_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "preference_id",
                      "description": "(Required) ID of the preference, as returned when it was recorded or listed. The ID stays stable while the key holds a record; deleting and re-recording the same key mints a new one.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"channel\": \"sms\",\n  \"handle\": \"+15550001234\",\n  \"sender_scope\": \"+15557654321\",\n  \"topic_id\": null,\n  \"status\": \"revoked\",\n  \"coverage\": \"non_transactional\",\n  \"origin\": \"api_key\",\n  \"source\": \"signup-form-v2\",\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c4abfa97-3e07-8cb9-8de3-7890cabb9658",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Get a preference",
                "description": {
                  "content": "Returns one preference: the key it is about, the current statement on it, and the statement's provenance. An ID that does not exist in the workspace returns `404`, including after a delete, which removes the record its ID pointed at.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences",
                    ":preference_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "prf_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "preference_id",
                      "description": "(Required) ID of the preference, as returned when it was recorded or listed. The ID stays stable while the key holds a record; deleting and re-recording the same key mints a new one.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"channel\": \"sms\",\n  \"handle\": \"+15550001234\",\n  \"sender_scope\": \"+15557654321\",\n  \"topic_id\": null,\n  \"status\": \"revoked\",\n  \"coverage\": \"non_transactional\",\n  \"origin\": \"api_key\",\n  \"source\": \"signup-form-v2\",\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "6b2d74ec-e392-8b2a-87eb-88bcd85a0bb8",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Get a preference",
                "description": {
                  "content": "Returns one preference: the key it is about, the current statement on it, and the statement's provenance. An ID that does not exist in the workspace returns `404`, including after a delete, which removes the record its ID pointed at.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences",
                    ":preference_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "prf_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "preference_id",
                      "description": "(Required) ID of the preference, as returned when it was recorded or listed. The ID stays stable while the key holds a record; deleting and re-recording the same key mints a new one.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"channel\": \"sms\",\n  \"handle\": \"+15550001234\",\n  \"sender_scope\": \"+15557654321\",\n  \"topic_id\": null,\n  \"status\": \"revoked\",\n  \"coverage\": \"non_transactional\",\n  \"origin\": \"api_key\",\n  \"source\": \"signup-form-v2\",\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "61a45628-46a4-8259-8abb-222f8d383ca6",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Get a preference",
                "description": {
                  "content": "Returns one preference: the key it is about, the current statement on it, and the statement's provenance. An ID that does not exist in the workspace returns `404`, including after a delete, which removes the record its ID pointed at.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences",
                    ":preference_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "prf_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "preference_id",
                      "description": "(Required) ID of the preference, as returned when it was recorded or listed. The ID stays stable while the key holds a record; deleting and re-recording the same key mints a new one.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"channel\": \"sms\",\n  \"handle\": \"+15550001234\",\n  \"sender_scope\": \"+15557654321\",\n  \"topic_id\": null,\n  \"status\": \"revoked\",\n  \"coverage\": \"non_transactional\",\n  \"origin\": \"api_key\",\n  \"source\": \"signup-form-v2\",\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "ef9d6eaa-5fd5-8442-8e19-ac5527066c76",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Get a preference",
                "description": {
                  "content": "Returns one preference: the key it is about, the current statement on it, and the statement's provenance. An ID that does not exist in the workspace returns `404`, including after a delete, which removes the record its ID pointed at.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences",
                    ":preference_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "prf_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "preference_id",
                      "description": "(Required) ID of the preference, as returned when it was recorded or listed. The ID stays stable while the key holds a record; deleting and re-recording the same key mints a new one.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "GET"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"channel\": \"sms\",\n  \"handle\": \"+15550001234\",\n  \"sender_scope\": \"+15557654321\",\n  \"topic_id\": null,\n  \"status\": \"revoked\",\n  \"coverage\": \"non_transactional\",\n  \"origin\": \"api_key\",\n  \"source\": \"signup-form-v2\",\n  \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"created_at\": \"2026-05-20T09:14:52Z\",\n  \"updated_at\": \"2026-05-25T16:42:01Z\"\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        },
        {
          "id": "3e6b52c9-b19e-84b1-84a9-3a51d0e62055",
          "name": "Delete a preference",
          "request": {
            "name": "Delete a preference",
            "description": {
              "content": "Deletes a preference, returning its key to having no record, as if nothing had ever been stated. The deletion itself is kept on the key's history, so a later statement is still ordered against what was deleted.\n\n**A statement the person made themselves cannot be deleted.** An unsubscribe or a stop keyword is their statement to reverse: it ends when they opt back in, and attempts to delete it return `422`. To restore messaging with the person's consent, record a `granted` statement with `consented_at` evidence instead; that records the change of mind rather than erasing the opt-out.\n\nA delete is ordered like any statement, using the time it is received: if the record carries a statement made after that moment, the delete is refused and returned with `applied: false` alongside the surviving record. An ID that does not exist in the workspace returns `404`.\n",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "preferences",
                ":preference_id"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "prf_01krdgeqcxet5s7t44vh8rt9mg",
                  "key": "preference_id",
                  "description": "(Required) ID of the preference, as returned when it was recorded or listed. The ID stays stable while the key holds a record; deleting and re-recording the same key mints a new one.\n"
                },
                {
                  "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                  "type": "any",
                  "value": "",
                  "key": "region"
                }
              ]
            },
            "header": [
              {
                "disabled": true,
                "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                "key": "Idempotency-Key",
                "value": ""
              },
              {
                "key": "Accept",
                "value": "",
                "disabled": true
              }
            ],
            "method": "DELETE"
          },
          "response": [
            {
              "id": "db5ae011-8b69-8317-806e-d8a4e633cb51",
              "name": "The outcome. `applied: true` with a null `preference` means the record is gone; `applied: false` means a newer statement survived the delete and is returned.",
              "originalRequest": {
                "name": "Delete a preference",
                "description": {
                  "content": "Deletes a preference, returning its key to having no record, as if nothing had ever been stated. The deletion itself is kept on the key's history, so a later statement is still ordered against what was deleted.\n\n**A statement the person made themselves cannot be deleted.** An unsubscribe or a stop keyword is their statement to reverse: it ends when they opt back in, and attempts to delete it return `422`. To restore messaging with the person's consent, record a `granted` statement with `consented_at` evidence instead; that records the change of mind rather than erasing the opt-out.\n\nA delete is ordered like any statement, using the time it is received: if the record carries a statement made after that moment, the delete is refused and returned with `applied: false` alongside the surviving record. An ID that does not exist in the workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences",
                    ":preference_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "prf_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "preference_id",
                      "description": "(Required) ID of the preference, as returned when it was recorded or listed. The ID stays stable while the key holds a record; deleting and re-recording the same key mints a new one.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "OK",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"transition_id\": \"prt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"preference\": {\n    \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"channel\": \"sms\",\n    \"handle\": \"+15550001234\",\n    \"sender_scope\": \"+15557654321\",\n    \"topic_id\": null,\n    \"status\": \"revoked\",\n    \"coverage\": \"non_transactional\",\n    \"origin\": \"api_key\",\n    \"source\": \"signup-form-v2\",\n    \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"created_at\": \"2026-05-20T09:14:52Z\",\n    \"updated_at\": \"2026-05-25T16:42:01Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "807daf42-b01e-8c33-8e04-a8d724830ba5",
              "name": "Authentication required",
              "originalRequest": {
                "name": "Delete a preference",
                "description": {
                  "content": "Deletes a preference, returning its key to having no record, as if nothing had ever been stated. The deletion itself is kept on the key's history, so a later statement is still ordered against what was deleted.\n\n**A statement the person made themselves cannot be deleted.** An unsubscribe or a stop keyword is their statement to reverse: it ends when they opt back in, and attempts to delete it return `422`. To restore messaging with the person's consent, record a `granted` statement with `consented_at` evidence instead; that records the change of mind rather than erasing the opt-out.\n\nA delete is ordered like any statement, using the time it is received: if the record carries a statement made after that moment, the delete is refused and returned with `applied: false` alongside the surviving record. An ID that does not exist in the workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences",
                    ":preference_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "prf_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "preference_id",
                      "description": "(Required) ID of the preference, as returned when it was recorded or listed. The ID stays stable while the key holds a record; deleting and re-recording the same key mints a new one.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unauthorized",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"transition_id\": \"prt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"preference\": {\n    \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"channel\": \"sms\",\n    \"handle\": \"+15550001234\",\n    \"sender_scope\": \"+15557654321\",\n    \"topic_id\": null,\n    \"status\": \"revoked\",\n    \"coverage\": \"non_transactional\",\n    \"origin\": \"api_key\",\n    \"source\": \"signup-form-v2\",\n    \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"created_at\": \"2026-05-20T09:14:52Z\",\n    \"updated_at\": \"2026-05-25T16:42:01Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "83a49634-dd76-8132-85a5-d7cfe0ebaa08",
              "name": "Insufficient permissions",
              "originalRequest": {
                "name": "Delete a preference",
                "description": {
                  "content": "Deletes a preference, returning its key to having no record, as if nothing had ever been stated. The deletion itself is kept on the key's history, so a later statement is still ordered against what was deleted.\n\n**A statement the person made themselves cannot be deleted.** An unsubscribe or a stop keyword is their statement to reverse: it ends when they opt back in, and attempts to delete it return `422`. To restore messaging with the person's consent, record a `granted` statement with `consented_at` evidence instead; that records the change of mind rather than erasing the opt-out.\n\nA delete is ordered like any statement, using the time it is received: if the record carries a statement made after that moment, the delete is refused and returned with `applied: false` alongside the surviving record. An ID that does not exist in the workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences",
                    ":preference_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "prf_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "preference_id",
                      "description": "(Required) ID of the preference, as returned when it was recorded or listed. The ID stays stable while the key holds a record; deleting and re-recording the same key mints a new one.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Forbidden",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"transition_id\": \"prt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"preference\": {\n    \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"channel\": \"sms\",\n    \"handle\": \"+15550001234\",\n    \"sender_scope\": \"+15557654321\",\n    \"topic_id\": null,\n    \"status\": \"revoked\",\n    \"coverage\": \"non_transactional\",\n    \"origin\": \"api_key\",\n    \"source\": \"signup-form-v2\",\n    \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"created_at\": \"2026-05-20T09:14:52Z\",\n    \"updated_at\": \"2026-05-25T16:42:01Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "9bd1c9b4-edd0-874d-88bf-e49c9fb6a55f",
              "name": "Resource not found",
              "originalRequest": {
                "name": "Delete a preference",
                "description": {
                  "content": "Deletes a preference, returning its key to having no record, as if nothing had ever been stated. The deletion itself is kept on the key's history, so a later statement is still ordered against what was deleted.\n\n**A statement the person made themselves cannot be deleted.** An unsubscribe or a stop keyword is their statement to reverse: it ends when they opt back in, and attempts to delete it return `422`. To restore messaging with the person's consent, record a `granted` statement with `consented_at` evidence instead; that records the change of mind rather than erasing the opt-out.\n\nA delete is ordered like any statement, using the time it is received: if the record carries a statement made after that moment, the delete is refused and returned with `applied: false` alongside the surviving record. An ID that does not exist in the workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences",
                    ":preference_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "prf_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "preference_id",
                      "description": "(Required) ID of the preference, as returned when it was recorded or listed. The ID stays stable while the key holds a record; deleting and re-recording the same key mints a new one.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Not Found",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"transition_id\": \"prt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"preference\": {\n    \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"channel\": \"sms\",\n    \"handle\": \"+15550001234\",\n    \"sender_scope\": \"+15557654321\",\n    \"topic_id\": null,\n    \"status\": \"revoked\",\n    \"coverage\": \"non_transactional\",\n    \"origin\": \"api_key\",\n    \"source\": \"signup-form-v2\",\n    \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"created_at\": \"2026-05-20T09:14:52Z\",\n    \"updated_at\": \"2026-05-25T16:42:01Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "e648fcac-5824-87c1-88ca-528f4c715420",
              "name": "The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.\n",
              "originalRequest": {
                "name": "Delete a preference",
                "description": {
                  "content": "Deletes a preference, returning its key to having no record, as if nothing had ever been stated. The deletion itself is kept on the key's history, so a later statement is still ordered against what was deleted.\n\n**A statement the person made themselves cannot be deleted.** An unsubscribe or a stop keyword is their statement to reverse: it ends when they opt back in, and attempts to delete it return `422`. To restore messaging with the person's consent, record a `granted` statement with `consented_at` evidence instead; that records the change of mind rather than erasing the opt-out.\n\nA delete is ordered like any statement, using the time it is received: if the record carries a statement made after that moment, the delete is refused and returned with `applied: false` alongside the surviving record. An ID that does not exist in the workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences",
                    ":preference_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "prf_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "preference_id",
                      "description": "(Required) ID of the preference, as returned when it was recorded or listed. The ID stays stable while the key holds a record; deleting and re-recording the same key mints a new one.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Unprocessable Entity (WebDAV) (RFC 4918)",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"transition_id\": \"prt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"preference\": {\n    \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"channel\": \"sms\",\n    \"handle\": \"+15550001234\",\n    \"sender_scope\": \"+15557654321\",\n    \"topic_id\": null,\n    \"status\": \"revoked\",\n    \"coverage\": \"non_transactional\",\n    \"origin\": \"api_key\",\n    \"source\": \"signup-form-v2\",\n    \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"created_at\": \"2026-05-20T09:14:52Z\",\n    \"updated_at\": \"2026-05-25T16:42:01Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "5f9bff7c-5503-8f9c-8ce0-3c84825682ee",
              "name": "Rate limit exceeded",
              "originalRequest": {
                "name": "Delete a preference",
                "description": {
                  "content": "Deletes a preference, returning its key to having no record, as if nothing had ever been stated. The deletion itself is kept on the key's history, so a later statement is still ordered against what was deleted.\n\n**A statement the person made themselves cannot be deleted.** An unsubscribe or a stop keyword is their statement to reverse: it ends when they opt back in, and attempts to delete it return `422`. To restore messaging with the person's consent, record a `granted` statement with `consented_at` evidence instead; that records the change of mind rather than erasing the opt-out.\n\nA delete is ordered like any statement, using the time it is received: if the record carries a statement made after that moment, the delete is refused and returned with `applied: false` alongside the surviving record. An ID that does not exist in the workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences",
                    ":preference_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "prf_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "preference_id",
                      "description": "(Required) ID of the preference, as returned when it was recorded or listed. The ID stays stable while the key holds a record; deleting and re-recording the same key mints a new one.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Too Many Requests",
              "code": 200,
              "header": [
                {
                  "disabled": false,
                  "description": "Current state of the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";r=<remaining>;t=<seconds_until_reset>`.\n",
                  "key": "RateLimit",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Quota for the request's rate-limit group as an IETF Structured Field. Format: `\"<group>\";q=<quota>;w=<window_seconds>`.\n",
                  "key": "RateLimit-Policy",
                  "value": ""
                },
                {
                  "disabled": false,
                  "description": "Number of seconds to wait before retrying the request.\n",
                  "key": "Retry-After",
                  "value": ""
                },
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"transition_id\": \"prt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"preference\": {\n    \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"channel\": \"sms\",\n    \"handle\": \"+15550001234\",\n    \"sender_scope\": \"+15557654321\",\n    \"topic_id\": null,\n    \"status\": \"revoked\",\n    \"coverage\": \"non_transactional\",\n    \"origin\": \"api_key\",\n    \"source\": \"signup-form-v2\",\n    \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"created_at\": \"2026-05-20T09:14:52Z\",\n    \"updated_at\": \"2026-05-25T16:42:01Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            },
            {
              "id": "c39060b1-9bc5-84d9-805f-ffcaf78ee8d2",
              "name": "Internal server error",
              "originalRequest": {
                "name": "Delete a preference",
                "description": {
                  "content": "Deletes a preference, returning its key to having no record, as if nothing had ever been stated. The deletion itself is kept on the key's history, so a later statement is still ordered against what was deleted.\n\n**A statement the person made themselves cannot be deleted.** An unsubscribe or a stop keyword is their statement to reverse: it ends when they opt back in, and attempts to delete it return `422`. To restore messaging with the person's consent, record a `granted` statement with `consented_at` evidence instead; that records the change of mind rather than erasing the opt-out.\n\nA delete is ordered like any statement, using the time it is received: if the record carries a statement made after that moment, the delete is refused and returned with `applied: false` alongside the surviving record. An ID that does not exist in the workspace returns `404`.\n",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "preferences",
                    ":preference_id"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "prf_01krdgeqcxet5s7t44vh8rt9mg",
                      "key": "preference_id",
                      "description": "(Required) ID of the preference, as returned when it was recorded or listed. The ID stays stable while the key holds a record; deleting and re-recording the same key mints a new one.\n"
                    },
                    {
                      "description": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
                      "type": "any",
                      "value": "",
                      "key": "region"
                    }
                  ]
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Client-supplied deduplication key. When present, the original response is replayed for any duplicate request with the same key, within the idempotency window (3 hours by default).\n\nTwo distinct 409 errors signal misuse:\n\n- `request_in_progress` (E01004): The same key is currently being\n  processed by a concurrent request. Wait briefly and retry. The lock expires within 30 seconds.\n- `idempotency_key_reuse` (E01005): The same key has already completed\n  against a different request body or method. Generate a new key.\n\nRecommended key format is `<event-type>/<entity-id>` (for example `welcome-user/usr_abc123`).\n",
                    "key": "Idempotency-Key",
                    "value": ""
                  },
                  {
                    "key": "Accept",
                    "value": "",
                    "disabled": true
                  }
                ],
                "method": "DELETE"
              },
              "status": "Internal Server Error",
              "code": 200,
              "header": [
                {
                  "key": "Content-Type",
                  "value": "application/json"
                }
              ],
              "body": "{\n  \"transition_id\": \"prt_01krdgeqcxet5s7t44vh8rt9mg\",\n  \"preference\": {\n    \"id\": \"prf_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"channel\": \"sms\",\n    \"handle\": \"+15550001234\",\n    \"sender_scope\": \"+15557654321\",\n    \"topic_id\": null,\n    \"status\": \"revoked\",\n    \"coverage\": \"non_transactional\",\n    \"origin\": \"api_key\",\n    \"source\": \"signup-form-v2\",\n    \"contact_id\": \"con_01krdgeqcxet5s7t44vh8rt9mg\",\n    \"created_at\": \"2026-05-20T09:14:52Z\",\n    \"updated_at\": \"2026-05-25T16:42:01Z\"\n  }\n}",
              "cookie": [],
              "_postman_previewlanguage": "json"
            }
          ],
          "event": [],
          "protocolProfileBehavior": {
            "disableBodyPruning": true
          }
        }
      ],
      "event": []
    }
  ],
  "event": [],
  "variable": [
    {
      "description": {
        "content": "The region your organization's data is hosted in. (This can only be one of us1,eu1)",
        "type": "text/plain"
      },
      "type": "any",
      "value": "us1",
      "key": "region"
    },
    {
      "type": "string",
      "value": "https://{{region}}.platform.bird.com",
      "key": "baseUrl"
    },
    {
      "key": "apiKey",
      "value": ""
    }
  ],
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}"
      }
    ]
  },
  "info": {
    "_postman_id": "6804a6db-869d-8bd6-82d8-7ac1eeebccfe",
    "name": "Bird API",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "description": {
      "content": "The Bird API: one REST API for email, SMS, WhatsApp, verification, and\nRealtime. Manage workspaces, organizations, teams, sending domains,\ndedicated IPs, suppressions, contacts and audiences, and outbound message\ndelivery across every channel.\n\nSetting a `User-Agent` header is recommended but not required. Official Bird\nSDKs set it automatically (format: `bird-<language>/<version>`). The header is\nused for operational logging and customer-support diagnostics; the API never\nrejects requests that omit it.\n\nRate limits are advertised on every response from a rate-limited endpoint as\nIETF `RateLimit` and `RateLimit-Policy` headers (Structured Fields per RFC\n9651; spec draft-ietf-httpapi-ratelimit-headers-11). On 429 responses, a\n`Retry-After` header in seconds is also returned. Clients should pace\nthemselves against the `r` (remaining) and `t` (seconds until reset) params\nin the `RateLimit` header rather than only reacting to 429s.\n",
      "type": "text/plain"
    }
  }
}
