{
  "info": {
    "name": "Hello by Flow API",
    "description": "The Hello by Flow API powers a multi-tenant cloud calling SaaS platform: external Twilio\nvoice & SMS, free internal Team Chat, peer-to-peer WebRTC meetings, agent dashboards,\nand a platform-owner console for managing customer organizations.\n\n## Authentication\n\nTwo equivalent auth schemes are supported on every protected endpoint:\n\n| Scheme | How |\n|---|---|\n| **`access_token` cookie** | Set automatically by `POST /api/auth/login`. Sent with every same-site request. |\n| **`Authorization: Bearer <jwt>`** | Use the `access_token` field returned by `/auth/login` (12-hour TTL). |\n\nThe token encodes the user id and role; org scoping is enforced server-side via\nthe `org_scope(user)` helper in `middleware/auth.py`.\n\n## Roles\n\n| Role | Visibility |\n|---|---|\n| `owner` | Cross-org \u2014 runs `/api/owner/*` platform console. |\n| `admin` | Full control of own organization. |\n| `supervisor` | Read-only across org (calls, recordings, analytics). |\n| `agent` | Only their own contacts / calls / SMS. |\n\n## Errors\n\nAll errors use the FastAPI default `{ \"detail\": \"...\" }` envelope. Status codes follow\nHTTP semantics: 400 (validation), 401 (no auth), 403 (wrong role), 404 (not found / not\nvisible), 429 (lockout), 503 (Twilio/LLM down). See per-endpoint `responses` for the\nexact failure modes.\n\n## Multi-tenancy\n\nEvery persisted document carries an `org_id`. Non-owner queries are automatically\nscoped to the caller's org. Agent-role users see only their own rows.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "_postman_id": "vocalis-api-collection",
    "version": "1.0.0"
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "http://localhost:8001",
      "type": "string"
    },
    {
      "key": "accessToken",
      "value": "",
      "type": "string",
      "description": "Paste the access_token returned by POST /api/auth/login."
    }
  ],
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{accessToken}}",
        "type": "string"
      }
    ]
  },
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "type": "text/javascript",
        "exec": [
          "// Auto-login if accessToken is empty and credentials are set",
          "if (!pm.collectionVariables.get('accessToken') && pm.environment.get('email')) {",
          "  pm.sendRequest({",
          "    url: pm.collectionVariables.get('baseUrl') + '/api/auth/login',",
          "    method: 'POST',",
          "    header: { 'Content-Type': 'application/json' },",
          "    body: { mode: 'raw', raw: JSON.stringify({",
          "      email: pm.environment.get('email'),",
          "      password: pm.environment.get('password')",
          "    }) }",
          "  }, (err, res) => {",
          "    if (!err && res.code === 200) {",
          "      pm.collectionVariables.set('accessToken', res.json().access_token);",
          "    }",
          "  });",
          "}"
        ]
      }
    }
  ],
  "item": [
    {
      "name": "AI",
      "description": "AI features \u2014 Vox support chatbot (Claude Sonnet 4.5).",
      "item": [
        {
          "name": "Chat with Vox \u2014 the Hello by Flow AI support assistant",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/support/chat",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "support",
                "chat"
              ]
            },
            "description": "Public endpoint (no auth). Pass a stable `session_id` to maintain conversation history across messages \u2014 Vox keeps the last 10 turns. Powered by Claude Sonnet 4.5 via the Emergent LLM key.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Retrieve a Vox conversation history",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/support/history/{session_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "support",
                "history",
                "{session_id}"
              ]
            },
            "description": "Returns up to all messages for the given session (user + assistant). Public \u2014 no auth."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Admin",
      "description": "Platform-owner console \u2014 list/approve/suspend/delete tenant organizations and view revenue stats.",
      "item": [
        {
          "name": "30-day rollup of counts by severity + top event types",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/security/summary",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "security",
                "summary"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Add a recipient (sends verification email)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/digest/recipients",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "digest",
                "recipients"
              ]
            },
            "description": "Adds the email as `pending`, generates a verification token, and sends/queues a verification email containing the link. The recipient is **not** mailed any digests until they click that link. If RESEND_API_KEY is not set, the email is queued to `email_outbox` and a copy of the verification URL is returned in `verify_url` so the owner can deliver it out-of-band.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Approve a pending/intent org (owner only)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/orgs/{org_id}/approve",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "orgs",
                "{org_id}",
                "approve"
              ]
            },
            "description": "Owner-approve manually provisions an organisation. Two paths:\n\n1. `status=\"intent\"` \u2014 the org came in through the Signup-Intent funnel\n   but hasn't paid yet. Owner-approve treats this as a comped account:\n   routes through `finalize_intent()` so the org is activated AND the\n   Communication Seats are provisioned (empty `virtual_numbers` rows in\n   `lifecycle_state=\"purchased\"`), exactly like a successful Stripe\n   payment would have. The admin then walks the WelcomeWizard the\n   moment they log in.\n\n2. `status=\"pending\"` \u2014 a legacy signup awaiting review. Just flips the\n   status to `active` and stamps `kyc_status=\"approved\"`.\n\nEither way the welcome email fires afterwards.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Begin impersonating a user (owner only) \u2014 swaps the active session cookies",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/users/{user_id}/impersonate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "users",
                "{user_id}",
                "impersonate"
              ]
            },
            "description": "Swaps the caller's HttpOnly auth cookies to a new pair authenticating AS the target user. The owner's previous session is preserved on the frontend via a special `owner_resume_token` cookie so the 'Exit impersonation' button can restore them in one click. Every impersonation is audit-logged.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Clear the customer login-lockout counter for a user (owner)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/security/remediate/unlock-user/{user_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "security",
                "remediate",
                "unlock-user",
                "{user_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Clear the internal-staff lockout counter for a staff account (owner)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/security/remediate/unlock-staff/{staff_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "security",
                "remediate",
                "unlock-staff",
                "{staff_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Compute the current weekly digest (no save, no mail)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/digest/preview",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "digest",
                "preview"
              ]
            },
            "description": "Returns the same dict that would be emailed if you clicked Send Now. Use this for the live dashboard preview.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Compute, mail, and persist the digest now",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/digest/send-now",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "digest",
                "send-now"
              ]
            },
            "description": "Generates a fresh digest, mails it to every verified recipient (plus the owner), records the run in `digest_history`, and writes an audit log row. Returns the run record.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Create an organization manually (owner only)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/orgs",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "orgs"
              ]
            },
            "description": "Bypass-KYC creation path used by the platform owner to onboard customers via direct contracts.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Cross-tenant data-integrity scan (owner only)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/data-integrity",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "data-integrity"
              ]
            },
            "description": "Walks every organization in the platform and counts data-integrity signals: SMS records pointing to deleted contacts (`stale_contact_links`), call records pointing to deleted contacts (`stale_call_contact_links`), and meetings whose organizer/participants reference deleted users (`stale_meeting_user_refs`). Returns per-org counts plus a `worst` list sorted by total issues descending. Use the heal endpoint to auto-null those references so they surface as orphans / unknown in the per-tenant UI.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Cross-tenant search (owner only)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/search",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "search"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Searches users (name/email), contacts (name/phone), virtual numbers, and orgs by name. Returns up to 50 matches across all tenants.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Delete the Veriff record from every collection (owner only)",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/kyc/veriff/reset",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "kyc",
                "veriff",
                "reset"
              ]
            },
            "description": "Nukes any existing Veriff entry from provider_configs, custom_providers, and provider_registry \u2014 so the operator can re-register via the Marketplace form without the 'already exists' block. Idempotent.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Download a digest run as CSV",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/digest/history/{run_id}/csv",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "digest",
                "history",
                "{run_id}",
                "csv"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Download a digest run as PDF",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/digest/history/{run_id}/pdf",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "digest",
                "history",
                "{run_id}",
                "pdf"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Download filtered events as CSV (Excel-friendly)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/security/events.csv",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "security",
                "events.csv"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "org_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "actor_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "target_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "event_types",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "severities",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "outcomes",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "since",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "until",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Download filtered events as a Hello by Flow-branded PDF report",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/security/events.pdf",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "security",
                "events.pdf"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "org_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "actor_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "target_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "event_types",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "severities",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "outcomes",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "since",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "until",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "label",
                  "value": "",
                  "disabled": true,
                  "description": "Report title shown on the PDF cover"
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Edit any user across the platform (owner only)",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/users/{user_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "users",
                "{user_id}"
              ]
            },
            "description": "Patch `name`, `email`, `role`, or `deleted` (soft delete flag) on any user in any org. Writes an audit entry.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Emergency-disable a customer user (owner)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/security/remediate/disable-user/{user_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "security",
                "remediate",
                "disable-user",
                "{user_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Export full org data as JSON (owner only)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/orgs/{org_id}/export",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "orgs",
                "{org_id}",
                "export"
              ]
            },
            "description": "Returns the entire org's persisted state (org doc + every collection scoped to org_id) as a single JSON document. Use for GDPR data-subject requests or backup before deletion.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Filter facets for the events UI (orgs, actors, event types)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/security/facets",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "security",
                "facets"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Force a user to change their password at next login (owner only)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/users/{user_id}/force-password-change",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "users",
                "{user_id}",
                "force-password-change"
              ]
            },
            "description": "Sets `must_change_password`, revokes every session and invalidates live tokens. The user must sign in and immediately set a new password before using the app.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Force-logout a user everywhere (owner only)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/users/{user_id}/force-logout",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "users",
                "{user_id}",
                "force-logout"
              ]
            },
            "description": "Revokes every refresh session and invalidates all live access tokens via a session-epoch bump. The user must sign in again on every device.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Force-reset a user's password (owner only)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/users/{user_id}/reset-password",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "users",
                "{user_id}",
                "reset-password"
              ]
            },
            "description": "Owner sets a new password for any user. The user is **not** notified by email \u2014 owner must communicate the temp password out-of-band. Logged in the audit trail.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Get a single org with its users (owner only)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/orgs/{org_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "orgs",
                "{org_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Get the owner's digest schedule",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/digest/schedule",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "digest",
                "schedule"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Growth & conversion analytics (owner only)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/growth/funnel",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "growth",
                "funnel"
              ],
              "query": [
                {
                  "key": "from",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "to",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "country",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "currency",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "plan",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "gateway",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "source",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "device",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Single payload returning: filtered funnel steps, KPI tiles, top performers by country/currency/plan/gateway, and a daily revenue trend. All filters are optional; omit them to get the platform-wide view. Steps for which we don't yet collect events (visitors, email verified, marketing source) are returned with `future_ready: true` so the UI can render a placeholder instead of a misleading zero.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Hard-delete an organization + all its data (owner only)",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/orgs/{org_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "orgs",
                "{org_id}"
              ]
            },
            "description": "Cascade-deletes users, contacts, calls, recordings, SMS, virtual numbers, and IVR flows.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Introspect the Veriff configuration (owner only)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/kyc/veriff/status",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "kyc",
                "veriff",
                "status"
              ]
            },
            "description": "Reports which Mongo collection Veriff was found in, whether api_key / shared_secret / base_url resolved to non-empty values, and what the effective base URL will be. Never returns the secret values themselves \u2014 just booleans + last-4 of the API key.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List all IVR flows of an org (owner)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/orgs/{org_id}/ivr",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "orgs",
                "{org_id}",
                "ivr"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List all SMS of an org (owner)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/orgs/{org_id}/sms",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "orgs",
                "{org_id}",
                "sms"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List all calls of an org (owner)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/orgs/{org_id}/calls",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "orgs",
                "{org_id}",
                "calls"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List all contacts of an org (owner)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/orgs/{org_id}/contacts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "orgs",
                "{org_id}",
                "contacts"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List all meetings of an org (owner)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/orgs/{org_id}/meetings",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "orgs",
                "{org_id}",
                "meetings"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List all recordings of an org (owner)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/orgs/{org_id}/recordings",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "orgs",
                "{org_id}",
                "recordings"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List all users of an org (owner)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/orgs/{org_id}/users",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "orgs",
                "{org_id}",
                "users"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List all virtual numbers of an org (owner)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/orgs/{org_id}/numbers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "orgs",
                "{org_id}",
                "numbers"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List all voicemails of an org (owner)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/orgs/{org_id}/voicemails",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "orgs",
                "{org_id}",
                "voicemails"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List digest recipients",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/digest/recipients",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "digest",
                "recipients"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List every customer organization (platform owner only)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/orgs",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "orgs"
              ]
            },
            "description": "Returns all orgs with user/call counts and computed monthly charge. KYC media is excluded.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List every feature flag currently set (owner only)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/feature-flags",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "feature-flags"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Org deep snapshot (owner only)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/orgs/{org_id}/deep",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "orgs",
                "{org_id}",
                "deep"
              ]
            },
            "description": "Comprehensive overview of a single tenant: org metadata, all team members (with last_active timestamps inferred from latest call / sms / meeting), counts of every resource (contacts, calls, recordings, sms, meetings, voicemails, numbers), and quick billing snapshot (MRR + plan).",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Owner audit log (owner only)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/audit-log",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "audit-log"
              ],
              "query": [
                {
                  "key": "org_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "action",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "actor_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Returns the immutable trail of every privileged owner action (org edits, user edits, password resets, impersonation, deletes, exports, data-integrity heals). Filter by `org_id`, `action`, or `actor_id`.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Platform revenue summary (owner only)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/revenue",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "revenue"
              ]
            },
            "description": "Computes MRR/ARR across active orgs, broken down by plan tier. Prices are pulled LIVE from Stripe (source of truth) \u2014 never hardcoded. Paying-seat counts use `seats_total` (the quantity we actually bill in Stripe), so managerial-only admins who haven't purchased their own Communication Seat are correctly excluded.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Platform-wide activity feed (owner only)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/activity",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "activity"
              ],
              "query": [
                {
                  "key": "org_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "type",
                  "value": "",
                  "disabled": true,
                  "description": "call|sms|meeting|contact|user|audit"
                },
                {
                  "key": "q",
                  "value": "",
                  "disabled": true,
                  "description": "substring filter on summary"
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Merged time-sorted activity across every organization: calls, SMS, meetings, new contacts, user signups, owner audit actions. Each row is normalised to {type, org_id, org_name, actor, summary, at}. Filter with `org_id`, `type`, or `q` (substring of summary). Returns newest first.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Platform-wide counts (owner only)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/stats",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "stats"
              ]
            },
            "description": "Total orgs, pending/active/suspended counts, total users, total calls.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Read per-org throttle limits + current usage (owner)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/orgs/{org_id}/throttle",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "orgs",
                "{org_id}",
                "throttle"
              ]
            },
            "description": "Returns the effective limits (default + org overrides) and the live usage counters for the current minute/hour/day windows for both the `outbound_sms` and `outbound_call` buckets.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Recent digest runs",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/digest/history",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "digest",
                "history"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Reject a pending KYC (owner only)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/orgs/{org_id}/reject",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "orgs",
                "{org_id}",
                "reject"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Remove a recipient",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/digest/recipients/{rid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "digest",
                "recipients",
                "{rid}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Resend the verification email",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/digest/recipients/{rid}/resend-verification",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "digest",
                "recipients",
                "{rid}",
                "resend-verification"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Reset a user's MFA (owner only)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/users/{user_id}/reset-mfa",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "users",
                "{user_id}",
                "reset-mfa"
              ]
            },
            "description": "Deletes every trusted device and pending email-OTP challenge for the user. On next login they will be re-challenged with a fresh OTP.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Revoke a developer API key (owner)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/security/remediate/revoke-api-key/{key_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "security",
                "remediate",
                "revoke-api-key",
                "{key_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Search & paginate security events",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/security/events",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "security",
                "events"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "org_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "actor_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "target_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "event_types",
                  "value": "",
                  "disabled": true,
                  "description": "CSV of event_type"
                },
                {
                  "key": "severities",
                  "value": "",
                  "disabled": true,
                  "description": "CSV of severity levels"
                },
                {
                  "key": "outcomes",
                  "value": "",
                  "disabled": true,
                  "description": "CSV of outcomes (success, blocked, denied, flagged, restricted, info)"
                },
                {
                  "key": "since",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "until",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "offset",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Self-heal stale references in one org (owner only)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/data-integrity/heal/{org_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "data-integrity",
                "heal",
                "{org_id}"
              ]
            },
            "description": "Nulls out stale `contact_id` fields on SMS and call records that point to deleted contacts in the given org. SMS records will then surface as orphans in the tenant's Messages UI; calls will display as 'Unknown' on the call log. Meeting references are NOT auto-healed (deleting an organizer is rare and may indicate the meeting itself should be cancelled). Returns the number of records updated per collection.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Set (or clear) per-org throttle overrides (owner)",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/orgs/{org_id}/throttle",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "orgs",
                "{org_id}",
                "throttle"
              ]
            },
            "description": "Pass a bucket to set its per-org override; omit / null a bucket to fall back to the platform defaults. Use `{minute: 0}` to hard-freeze a bucket.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Set a feature flag (owner only)",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/feature-flags/{name}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "feature-flags",
                "{name}"
              ]
            },
            "description": "Value takes effect immediately \u2014 no redeploy required.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Single digest run with full payload",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/digest/history/{run_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "digest",
                "history",
                "{run_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Soft-delete a user (owner only)",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/users/{user_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "users",
                "{user_id}"
              ]
            },
            "description": "Marks the user as `deleted: true`. They will no longer be able to log in and won't count against seat quotas, but their history (calls, SMS) is preserved.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Stop impersonating and restore the owner session (owner-or-impersonator only)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/impersonate/stop",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "impersonate",
                "stop"
              ]
            },
            "description": "Reads `owner_resume_token` and swaps the cookies back to the owner. Idempotent.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Stream a call recording (owner only)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/recordings/{rid}/stream",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "recordings",
                "{rid}",
                "stream"
              ]
            },
            "description": "Streams the audio of any recording on the platform through the backend. For real Twilio recordings, the backend fetches with HTTP Basic Auth (account SID + auth token) and pipes the response; for synthetic/demo recordings, returns a JSON 404. Use `<audio src=this-url>` in the UI.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Suspend an active org (owner only)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/orgs/{org_id}/suspend",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "orgs",
                "{org_id}",
                "suspend"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Transfer organization ownership to another user (owner only)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/orgs/{org_id}/transfer-ownership",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "orgs",
                "{org_id}",
                "transfer-ownership"
              ]
            },
            "description": "Makes the target user the org's primary admin. Safeguards: the target must belong to the org and be active (not deleted, suspended or locked). Non-admin targets are promoted to admin as part of the transfer. The previous primary admin keeps their admin role.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Unlock a user account (owner only)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/users/{user_id}/unlock",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "users",
                "{user_id}",
                "unlock"
              ]
            },
            "description": "Clears the `is_locked` flag AND wipes all brute-force lockout counters for the user's email so they can sign in immediately.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Update org details (owner only)",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/orgs/{org_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "orgs",
                "{org_id}"
              ]
            },
            "description": "Patches any combination of `name`, `plan`, `status`, `seats_total`, `owner_email`, `kyc_status`, `type`. Each field is optional. Writes an audit-log entry.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Update the owner's digest schedule",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/digest/schedule",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "digest",
                "schedule"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Analytics",
      "description": "Call analytics \u2014 org-wide overview, per-agent leaderboard.",
      "item": [
        {
          "name": "Org-wide call analytics",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/analytics/overview",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "analytics",
                "overview"
              ],
              "query": [
                {
                  "key": "days",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Aggregated call stats over the last `days` (default 7): totals, day-by-day timeline, and hour-of-day distribution. Agent users see only their own metrics.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Per-agent leaderboard (admin/supervisor only)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/analytics/agent-performance",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "analytics",
                "agent-performance"
              ],
              "query": [
                {
                  "key": "days",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Returns one row per teammate with calls, completed, missed, answer-rate, talk-time, and average call duration over the last `days`. Sorted by total calls descending.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Team productivity leaderboard for the caller's org",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/leaderboard",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "leaderboard"
              ],
              "query": [
                {
                  "key": "range",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "from",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "to",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "compare",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Returns KPIs, top callers, top SMS users, and a daily call series for the selected window. Scoped to the caller's `org_id`. Pass `range=today|week|month|custom` and (when custom) `from=YYYY-MM-DD&to=YYYY-MM-DD`. Optionally set `compare=previous` to also include the same KPIs for the prior equal-length window so the UI can render deltas.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Audit & Activity Center",
      "description": "",
      "item": [
        {
          "name": "Dashboard analytics for the last N hours",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/audit/analytics",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "audit",
                "analytics"
              ],
              "query": [
                {
                  "key": "hours",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Distinct action prefixes for filter chips",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/audit/action-prefixes",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "audit",
                "action-prefixes"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Export the current search as CSV (up to 10k rows)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/audit/export.csv",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "audit",
                "export.csv"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List every audit sink Hello by Flow writes to",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/audit/sources",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "audit",
                "sources"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Search the unified audit stream",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/audit/search",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "audit",
                "search"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Auth",
      "description": "Login, logout, token refresh, current-user lookup. Brute-force lockout after 5 failed attempts.",
      "item": [
        {
          "name": "Bootstrap a CSRF token (sets `csrf_token` cookie)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/auth/csrf",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "auth",
                "csrf"
              ]
            },
            "description": "Call this once before any unsafe (POST/PATCH/DELETE/PUT) request. The response sets a JS-readable `csrf_token` cookie that the frontend must echo back as the `X-CSRF-Token` header on subsequent unsafe calls. The token rotates every 90 days; reading the cookie does not consume it."
          },
          "response": []
        },
        {
          "name": "Change the current user's password",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/auth/change-password",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "auth",
                "change-password"
              ]
            },
            "description": "Verifies the current password, sets the new one, clears any `must_change_password` flag, revokes every other session (session epoch bump) and re-mints fresh cookies for this device.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Consume a password reset token and set a new password",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/auth/reset-password",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "auth",
                "reset-password"
              ]
            },
            "description": "Accepts {token, new_password}. Verifies the signed reset token and the server-side single-use row, sets the new bcrypt hash, bumps the user's session_epoch (invalidating all prior sessions) and marks the reset row consumed. On success the user must sign in again.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Disabled \u2014 use POST /api/signup instead",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/auth/register",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "auth",
                "register"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Email OTP \u2014 list this user's trusted devices",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/auth/otp/devices",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "auth",
                "otp",
                "devices"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Email OTP \u2014 resend the verification code (30-second cool-down)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/auth/otp/resend",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "auth",
                "otp",
                "resend"
              ]
            },
            "description": "Issues a fresh 6-digit OTP and re-emails it. Rate-limited to once every 30 seconds per challenge; further calls return 429 with `Retry-After` and the remaining seconds in the error detail.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Email OTP \u2014 return whether OTP is required for the current user",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/auth/otp/status",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "auth",
                "otp",
                "status"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Email OTP \u2014 revoke ALL trusted devices for the current user",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/auth/otp/devices",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "auth",
                "otp",
                "devices"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Email OTP \u2014 verify the 6-digit code emailed to the user",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/auth/otp/verify",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "auth",
                "otp",
                "verify"
              ]
            },
            "description": "Called with the `challenge_token` returned from /auth/login when the server responded `email_otp_challenge=true`. Accepts a 6-digit code from the user's inbox. On success, mints auth cookies. Set `trust_device=true` to skip OTP on this browser for 30 days.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Get the current authenticated user",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/auth/me",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "auth",
                "me"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List the caller's active sessions across devices",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/auth/sessions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "auth",
                "sessions"
              ]
            },
            "description": "Returns one entry per active refresh-token. The current device is marked `current: true` (matched by jti).",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Mint a short-lived WebSocket auth ticket (60-second TTL)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/auth/ws-ticket",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "auth",
                "ws-ticket"
              ]
            },
            "description": "WebSockets cannot easily carry HttpOnly cookies across all browsers/proxies, so we expose a one-shot ticket: POST here (cookies + CSRF) and use the returned `ticket` as the `?ticket=\u2026` query param on the RTC WS URL. The ticket is a signed JWT with `type=ws` and a 60s lifetime; the WS handler validates it like any other JWT but rejects non-`ws` types.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Revoke ALL of the caller's sessions (logout everywhere)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/auth/sessions/revoke-all",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "auth",
                "sessions",
                "revoke-all"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Revoke a specific session (the device behind that jti will be signed out on next API call)",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/auth/sessions/{session_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "auth",
                "sessions",
                "{session_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Rotate the refresh token (returns new access cookie)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/auth/refresh",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "auth",
                "refresh"
              ]
            },
            "description": "Reads the `refresh_token` HttpOnly cookie, validates it against the server-side store, and ROTATES it: the old refresh is revoked, a new refresh + new access are issued as cookies. Replay of an already-rotated token revokes the entire token family and forces re-login."
          },
          "response": []
        },
        {
          "name": "Send a password reset link to owner / admin accounts",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/auth/forgot-password",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "auth",
                "forgot-password"
              ]
            },
            "description": "Accepts {email}. If an eligible account exists (role in {owner, admin} and not disabled), a signed reset link is emailed with a 30-minute expiry. Always returns 200 with a generic message \u2014 no user enumeration. Rate-limited per email + client IP.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Sign in with email/username + password",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/auth/login",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "auth",
                "login"
              ]
            },
            "description": "Returns the authenticated user. Sets HttpOnly `access_token` (15 min) and `refresh_token` (90 d) cookies plus a JS-readable `csrf_token` cookie. After 5 failed attempts the identifier is locked for 15 minutes.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Sign out the current session (revokes the active refresh token)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/auth/logout",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "auth",
                "logout"
              ]
            },
            "description": "Revokes only the current device's refresh token. Use /auth/sessions/revoke-all to sign out everywhere.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Update the current user's profile",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/me",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "me"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Billing",
      "description": "Subscription billing. (P2 backlog \u2014 real Stripe migration pending.)",
      "item": [
        {
          "name": "Apply a manual credit (note recorded in DB)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/billing/credit",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "billing",
                "credit"
              ]
            },
            "description": "Records a credit memo locally and increments a stored balance on the org.\nThe next invoice can be reduced by this amount manually until full Stripe\ncredit-note integration is added in Phase A.1.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Cancel at period end",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/billing/v2/subscription/cancel",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "billing",
                "v2",
                "subscription",
                "cancel"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Create a billing webhook endpoint",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/billing/webhooks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "billing",
                "webhooks"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Create a coupon",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/billing/coupons",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "billing",
                "coupons"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Create a setup intent so the UI can attach a card without charging",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/billing/v2/payment-methods/setup-intent",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "billing",
                "v2",
                "payment-methods",
                "setup-intent"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Create or update billing address + tax id (admin/owner)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/billing/v2/customer",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "billing",
                "v2",
                "customer"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Delete a coupon",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/billing/coupons/{coupon_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "billing",
                "coupons",
                "{coupon_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Delete a webhook endpoint",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/billing/webhooks/{webhook_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "billing",
                "webhooks",
                "{webhook_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Detach a payment method",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/billing/v2/payment-methods/{pm}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "billing",
                "v2",
                "payment-methods",
                "{pm}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Enable / disable auto-debit",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/billing/v2/subscription/auto-debit",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "billing",
                "v2",
                "subscription",
                "auto-debit"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Failed payments rollup",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/billing/reports/failed",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "billing",
                "reports",
                "failed"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Get the org's billing customer state",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/billing/v2/customer",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "billing",
                "v2",
                "customer"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Get the org's monthly SMS pool status",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/billing/sms-pool",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "billing",
                "sms-pool"
              ]
            },
            "description": "Returns the current calendar-month SMS pool entitlement, usage, and remaining count for the caller's organization. Pool resets on the 1st of every month \u2014 there is no carry-forward.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Get the organization's seat usage and pricing",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/billing/seats",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "billing",
                "seats"
              ]
            },
            "description": "Returns the org's current seat allocation, how many are in use, the per-seat price for the active plan, and the resulting monthly total. Available to any authenticated member.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Issue a refund against a payment",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/billing/refund",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "billing",
                "refund"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List available plans for the caller's billing country",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/billing/v2/plans",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "billing",
                "v2",
                "plans"
              ]
            },
            "description": "Return the plan catalog sourced from Stripe (single source of truth),\nmerged with the caller's country metadata (currency, tax_mode, tax_id_types).\n\nThis mirrors what `/api/public/pricing` returns to the landing page, so the\nBilling UI and the marketing site can never drift apart. Falls back to the\nlocal billing_config catalog only when Stripe is unreachable (same\nfallback that public_pricing uses).",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List coupons",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/billing/coupons",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "billing",
                "coupons"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List every org's subscription state",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/billing/subscriptions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "billing",
                "subscriptions"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List recent invoices for this org",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/billing/v2/invoices",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "billing",
                "v2",
                "invoices"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List seat transactions for the org (admin/owner only)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/billing/seats/transactions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "billing",
                "seats",
                "transactions"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Returns the audit trail of seat purchases \u2014 prev/new seats, mode, payment status, invoice/PaymentIntent IDs, timestamp, and initiator.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List the org's saved payment methods",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/billing/v2/payment-methods",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "billing",
                "v2",
                "payment-methods"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Mark a payment method as default",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/billing/v2/payment-methods/{pm}/default",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "billing",
                "v2",
                "payment-methods",
                "{pm}",
                "default"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Mark a payment method as fallback",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/billing/v2/payment-methods/{pm}/fallback",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "billing",
                "v2",
                "payment-methods",
                "{pm}",
                "fallback"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Open the Stripe Customer Portal",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/billing/v2/portal",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "billing",
                "v2",
                "portal"
              ]
            },
            "description": "Returns a short-lived Stripe-hosted portal URL where the org's admin/owner can update payment methods, download invoices, or cancel \u2014 no card data is stored in Hello by Flow.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Patch a single section of the billing config (deep-merge)",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/billing/config/section/{section}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "billing",
                "config",
                "section",
                "{section}"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Patch the billing config",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/billing/config",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "billing",
                "config"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Preview the cost of adding N more seats (no charge)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/billing/seats/preview",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "billing",
                "seats",
                "preview"
              ]
            },
            "description": "Returns the prorated cost breakdown (per-seat, prorated, tax, total) and the resolved billing mode (`immediate` vs `proration`). UI calls this to show the Are You Sure? modal before `POST /billing/seats/purchase`.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Proxy-stream the invoice PDF",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/billing/v2/invoices/{invoice_id}/pdf",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "billing",
                "v2",
                "invoices",
                "{invoice_id}",
                "pdf"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Purchase additional seats (admin/owner only)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/billing/seats/purchase",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "billing",
                "seats",
                "purchase"
              ]
            },
            "description": "Adds N seats. Honours the platform's seat_billing policy:\n- **immediate** mode (default): charges the org's default payment method via Stripe PaymentIntent for the prorated amount + tax NOW. Seats activate only on successful charge. Returns 402 on payment failure.\n- **proration** mode: activates seats immediately and lets Stripe roll the prorated charge into the next invoice.\nThe mode is resolved per request: org override \u2192 plan default \u2192 global default. Owners configure this from the Billing & Commerce Control Center.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Reactivate a sub previously set to cancel at period end",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/billing/v2/subscription/reactivate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "billing",
                "v2",
                "subscription",
                "reactivate"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Read the billing config singleton",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/billing/config",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "billing",
                "config"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Read the full billing config + coupons (Billing Control Center)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/billing/config/full",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "billing",
                "config",
                "full"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Read-only view of the live Stripe product + price catalog",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/billing/stripe-catalog",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "billing",
                "stripe-catalog"
              ]
            },
            "description": "Return the live Stripe catalog + last-sync metadata.\n\nResponse shape:\n  {\n    \"products\": [\n      { \"id\", \"name\", \"active\", \"prices\": [\n          { \"id\", \"currency\", \"unit_amount\", \"interval\", \"recurring\": bool,\n            \"per_seat\": bool, \"active\", \"lookup_key\" }\n      ]}, ...\n    ],\n    \"last_sync_at\": ISO-8601,\n    \"source\": \"stripe\" | \"cache\",\n    \"stripe_account_id\": \"...\",\n    \"live_mode\": bool,\n    \"dashboard_url\": \"https://dashboard.stripe.com/products\"\n  }\n\nOn Stripe failure, returns the last cached snapshot with `source: \"cache\"`\nand a `stale: true` flag so the UI can render a warning banner.\n\nThe live fetch + persist logic is shared with the background scheduler in\n`services.stripe_catalog_sync` \u2014 keep them in lockstep.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Reset a single section to its factory default",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/billing/config/reset/{section}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "billing",
                "config",
                "reset",
                "{section}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Return the current subscription state",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/billing/v2/subscription",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "billing",
                "v2",
                "subscription"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Revenue rollup by country & currency",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/billing/reports/revenue",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "billing",
                "reports",
                "revenue"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Send a test ping to a webhook endpoint",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/billing/webhooks/{webhook_id}/test",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "billing",
                "webhooks",
                "{webhook_id}",
                "test"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Start a hosted checkout session for plan+seats",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/billing/v2/checkout",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "billing",
                "v2",
                "checkout"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Switch plan or seat count with proration",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/billing/v2/subscription/change-plan",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "billing",
                "v2",
                "subscription",
                "change-plan"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Tax collected, grouped by country",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/billing/reports/tax-by-country",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "billing",
                "reports",
                "tax-by-country"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Update a coupon",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/billing/coupons/{coupon_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "billing",
                "coupons",
                "{coupon_id}"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Update a webhook endpoint",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/billing/webhooks/{webhook_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "billing",
                "webhooks",
                "{webhook_id}"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Update the org's seat count (admin/owner only)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/billing/seats",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "billing",
                "seats"
              ]
            },
            "description": "Sets the org's `seats_total` to the provided value. Rejected with **402 Payment Required** if the new total is below the number of currently active users \u2014 remove members first. **Note:** while Stripe is paused this applies immediately with no charge. After Stripe A4 wiring this will sync the subscription's `quantity` on the active price.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Business",
      "description": "Self-serve signup with KYC, solo\u2192business upgrade, Twilio account configuration, and IVR flow CRUD.",
      "item": [
        {
          "name": "Correlated timeline for a Twilio CallSid",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/twilio/call-timeline/{call_sid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "twilio",
                "call-timeline",
                "{call_sid}"
              ]
            },
            "description": "Returns everything we know about one call in a single view: the call row from Twilio itself, our /twilio/status callback snapshot, every browser SDK event we received, and any Twilio Notification records (SIP codes, error text). Use this instead of clicking through the Twilio Console when investigating 31005 / dropped calls.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Force-repoint Twilio TwiML App + numbers to this backend",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/twilio/reconcile-webhooks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "twilio",
                "reconcile-webhooks"
              ]
            },
            "description": "One-click reconciliation for admins hitting Twilio error 31005 or silent call drops. Re-writes the Voice / SMS / Status URLs on your TwiML App AND every purchased number to point at this backend's `REACT_APP_BACKEND_URL`. Idempotent \u2014 safe to run any time.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List IVR flows (admin only)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/ivr",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "ivr"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Mint a Voice SDK access token",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/twilio/token",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "twilio",
                "token"
              ]
            },
            "description": "Returns a short-lived (1 hour) JWT the browser uses to register a Twilio Voice softphone. Identity is `vocalis_{username|user_id}` so inbound `dial.client()` rings the right agent.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Persist a Twilio Voice SDK browser event for diagnostics",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/twilio/client-event",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "twilio",
                "client-event"
              ]
            },
            "description": "Diagnostics-only. Frontend fires a small beacon for every Twilio Device / Call event (registered, unregistered, accept, disconnect, cancel, error) so a support engineer can correlate the browser SDK timeline with the /twilio/status backend callback and the CallSid on the Twilio Console. Zero effect on call routing / behaviour.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Phase-2 signup: create Stripe Checkout session (blocks pre-KYC)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/onboarding/intent/{intent_id}/checkout",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "onboarding",
                "intent",
                "{intent_id}",
                "checkout"
              ]
            },
            "description": "Creates a hosted Stripe Checkout Session. **Explicitly blocks if KYC is required and not yet verified** \u2014 this is the KYC-before-payment gate mandated by the redesign. Metadata `hbf_intent_id` lets the `checkout.session.completed` webhook route the payment back to the intent org and trigger `finalize_intent()`.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Phase-2 signup: create the signup intent (pre-payment)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/onboarding/intent",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "onboarding",
                "intent"
              ]
            },
            "description": "Creates an `organizations` row in `status=\"intent\"`. Middleware blocks all product access until the intent is finalised by a successful Stripe payment (and KYC, if required). Legacy `POST /api/signup` remains available under `NEW_SIGNUP_FUNNEL_ENABLED=false`.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Phase-2 signup: poll intent state",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/onboarding/intent/{intent_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "onboarding",
                "intent",
                "{intent_id}"
              ]
            },
            "description": ""
          },
          "response": []
        },
        {
          "name": "Phase-2 signup: start KYC (Persona/Stripe Identity)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/onboarding/intent/{intent_id}/kyc",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "onboarding",
                "intent",
                "{intent_id}",
                "kyc"
              ]
            },
            "description": "Creates a verification session with the currently-active identity provider (per Owner Settings). Business rule: KYC must complete BEFORE the Stripe Checkout endpoint below will authorise payment."
          },
          "response": []
        },
        {
          "name": "Phase-3 wizard: bind a selected Twilio number to a purchased seat",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/onboarding/seats/{seat_id}/bind-number",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "onboarding",
                "seats",
                "{seat_id}",
                "bind-number"
              ]
            },
            "description": "Purchases the specified Twilio number and permanently attaches it to the given seat. Idempotent \u2014 once a seat has a bound number, the endpoint returns HTTP 400. Uses the existing Twilio provider primitive.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Phase-3 wizard: create a user and permanently assign to a seat",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/onboarding/seats/{seat_id}/assign-user",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "onboarding",
                "seats",
                "{seat_id}",
                "assign-user"
              ]
            },
            "description": "Creates a new employee user record and attaches them to the specified seat. Seat lifecycle transitions `number_assigned \u2192 active` (or `vacant \u2192 active` on re-assignment). Employees never own their identity \u2014 the org admin sets the username & password here.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Phase-3 wizard: list this org's Communication Seats + their lifecycle",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/onboarding/seats",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "onboarding",
                "seats"
              ]
            },
            "description": "Returns every `virtual_numbers` row belonging to the admin's org.\n\nThe rows carry the extension-first Communication Seat identity: id,\nseat_number, lifecycle_state, and (if bound) phone_e164 and assigned user.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Probe our /api/twilio/voice endpoint (bypasses signature check)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/twilio/voice-probe",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "twilio",
                "voice-probe"
              ]
            },
            "description": "Simulates a Twilio POST to /api/twilio/voice with a fake From/To pair and returns the TwiML response body verbatim. Use this to confirm the endpoint produces valid TwiML \u2014 the #1 root cause of Twilio 31005 errors.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Recent Twilio call attempts with error codes",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/twilio/recent-calls",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "twilio",
                "recent-calls"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Reads the last 20 calls straight from Twilio's API. For each call, returns the direction, status, and \u2014 critically \u2014 any Twilio error code (e.g. 11200 'HTTP retrieval failure' or 32017 'unreachable') that explains why a call dropped. Use this to root-cause client-side 31005 errors.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Recent transactional email delivery attempts",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/admin/email-health",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "admin",
                "email-health"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Returns the last 30 email delivery attempts with their status (sent / queued / failed). Use to root-cause 'password reset email never arrives' style reports. If everything is `queued` with reason 'RESEND_API_KEY missing', configure Resend in Owner Console \u2192 Providers \u2192 Resend. If entries are `failed` with an error message, that error surfaces Resend's own rejection reason.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Remove a verified caller ID",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/twilio/verified-caller/{sid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "twilio",
                "verified-caller",
                "{sid}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Save an IVR flow",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/ivr",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "ivr"
              ]
            },
            "description": "Persists a new IVR graph (nodes + edges). Replaces previous version on next save with the same name.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Start Twilio outbound caller-ID validation",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/twilio/verify-caller-id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "twilio",
                "verify-caller-id"
              ]
            },
            "description": "Twilio places an automated call to the supplied number; the user enters the returned `validation_code` on their dialpad to complete verification. Required on Trial accounts before that number can place inbound calls to your Twilio number (otherwise Twilio rejects with error 21264).",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Twilio account info (Trial vs Full, verified callers)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/twilio/account-status",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "twilio",
                "account-status"
              ]
            },
            "description": "Returns the upstream Twilio account type/status, the list of verified outbound caller IDs, and any recently rejected inbound callers (so admins know which numbers to verify on Trial accounts).",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Twilio credential-source drift audit",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/twilio/credentials-audit",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "twilio",
                "credentials-audit"
              ]
            },
            "description": "iter140 diagnostic: reports the last 4 chars of the Twilio Account SID at each of the three credential sources \u2014 env vars, `db.platform_settings.twilio`, and `db.provider_configs.twilio.voice/sms` \u2014 plus which one the production calling client actually loaded at boot. Use this when the Owner-Console health widget disagrees with real outbound calling (symptom: `HTTP 403 Test Account Credentials` while live calls work). Any mismatch here is the root cause.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Twilio webhook URLs current state",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/twilio/webhook-health",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "twilio",
                "webhook-health"
              ]
            },
            "description": "Shows the Voice/SMS/Status URLs that Twilio currently has on record for your TwiML App and each purchased number, side-by-side with what our backend expects. Any mismatch is a probable cause of call/SMS failures (Twilio error 31005, silent-drop, missing inbound recordings).",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Upgrade a solo workspace to a multi-seat business org",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/auth/upgrade-to-business",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "auth",
                "upgrade-to-business"
              ]
            },
            "description": "Renames the org, switches `type` from `individual` to `business`, and promotes the caller to `admin` so they can invite teammates. Returns the updated org.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Calls",
      "description": "Outbound/inbound call records, recordings, and the Twilio voice TwiML webhooks (transfer & conference).",
      "item": [
        {
          "name": "Add a 3rd participant to a live call",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/twilio/conference/add",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "twilio",
                "conference",
                "add"
              ]
            },
            "description": "Converts a 2-leg call into a named conference and dials in an additional phone or `client:username`.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Change the active coaching mode without dropping the supervisor",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/coaching/sessions/{session_id}/mode",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "coaching",
                "sessions",
                "{session_id}",
                "mode"
              ]
            },
            "description": "Updates the session record and best-effort re-tells the supervisor's softphone to rejoin with the new flags. The browser is responsible for tearing down the current connection and dialing `coach:<conf>:<mode>` again on receipt of this response.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Coaching session history (org-scoped, supervisor/admin only)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/coaching/sessions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "coaching",
                "sessions"
              ],
              "query": [
                {
                  "key": "range",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "End a coaching session (kick supervisor; do not touch the agent leg)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/coaching/sessions/{session_id}/stop",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "coaching",
                "sessions",
                "{session_id}",
                "stop"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Finalise a call with duration + outcome",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/calls/{cid}/end",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "calls",
                "{cid}",
                "end"
              ]
            },
            "description": "Sets `duration`, final `status`, `recorded` flag, and free-text `notes`. If `recorded=true`, a `recordings` document is also inserted (synthetic in demo data, with a waveform array).",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Get a coaching session by id",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/coaching/sessions/{session_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "coaching",
                "sessions",
                "{session_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Get a download URL or synthetic transcript for a recording",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/recordings/{rid}/download",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "recordings",
                "{rid}",
                "download"
              ]
            },
            "description": "Admin/supervisor/owner only \u2014 **agents receive 403** (compliance / audit policy). Returns the Twilio media URL for real calls, or a synthetic transcript stub for demo recordings (so the UI can still render a downloadable artifact).",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List call recordings",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/recordings",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "recordings"
              ]
            },
            "description": "Returns the 200 most recent recordings the caller can see, each enriched with its parent `call` document.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List calls in the caller's organization",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/calls",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "calls"
              ],
              "query": [
                {
                  "key": "direction",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "status",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Returns up to `limit` calls (default 100), newest first. Filter by `direction` (`inbound`/`outbound`) and/or `status` (`completed`/`missed`/`no-answer`/`busy`/`failed`/`in-progress`). Agents only see their own calls; admin/supervisor see all org calls.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List currently-active calls in the caller's org (supervisor/admin)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/coaching/live-calls",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "coaching",
                "live-calls"
              ]
            },
            "description": "Returns calls with status `in-progress` belonging to the same org. Each row exposes the agent, customer phone, direction, duration so far, and the Twilio parent/child call SIDs needed for coach-mode.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Log an outbound call (creates an in-progress record)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/calls/start",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "calls",
                "start"
              ]
            },
            "description": "Records a new call. If `from_number_id` is missing or invalid, the first available org virtual number is used. Returns the persisted call document \u2014 finalise it with `POST /api/calls/{cid}/end` once the call disconnects.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Send a silent reaction (emoji) to the agent during a live coaching session",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/coaching/sessions/{session_id}/react",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "coaching",
                "sessions",
                "{session_id}",
                "react"
              ]
            },
            "description": "Pushes a `coach-reaction` WebSocket event to the agent's RTC socket so the agent sees a non-intrusive floating overlay on their dialer. The reaction is appended to `coaching_sessions.events[]` for audit and replay. Allowed types: `thumbs_up`, `heart`, `warning`, `fire`, `clap`. The session must be active (not ended).",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Start a coaching session against an active call",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/coaching/sessions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "coaching",
                "sessions"
              ]
            },
            "description": "Creates a `coaching_sessions` row, redirects both legs of the agent's active call into a per-call conference (`coach_<callId>`), and returns the conference name + mode + audit id. The supervisor's softphone then dials `coach:<conf>:<mode>` which the Twilio voice webhook turns into the right conference-join TwiML (muted/coach/normal).",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Stream a recording's audio bytes (server-side Twilio auth proxy)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/recordings/{rid}/audio",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "recordings",
                "{rid}",
                "audio"
              ]
            },
            "description": "Streams the recording's audio to the browser via our backend so Twilio's Basic-Auth credentials never leak to the client. Same org-scope + seat-gate rules as `/recordings/{id}/download`.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Transfer a live call (cold or warm)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/twilio/transfer",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "twilio",
                "transfer"
              ]
            },
            "description": "Re-routes an in-progress call. **Cold** transfer: customer leg is dialed directly to the target while preserving the original caller ID. **Warm** transfer: customer is moved into a named conference; both agents can join.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Twilio call-status callback",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/twilio/status",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "twilio",
                "status"
              ]
            },
            "description": "Public Twilio callback that updates `status`, `duration`, and `ended_at` on the matching call record."
          },
          "response": []
        },
        {
          "name": "Twilio inbound-call webhook (TwiML)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/twilio/voice-inbound",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "twilio",
                "voice-inbound"
              ]
            },
            "description": "Legacy inbound webhook used by older purchased numbers; the modern endpoint is `/api/twilio/voice`."
          },
          "response": []
        },
        {
          "name": "Twilio recording-ready callback",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/twilio/recording",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "twilio",
                "recording"
              ]
            },
            "description": "Public Twilio callback that persists the recording URL + duration once Twilio finishes writing the MP3."
          },
          "response": []
        },
        {
          "name": "Twilio voice webhook (TwiML)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/twilio/voice",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "twilio",
                "voice"
              ]
            },
            "description": "Public Twilio callback \u2014 DO NOT call from a client. Twilio POSTs here when a call connects to our TwiML App; we respond with TwiML telling Twilio whether to ring agents (inbound PSTN) or dial out (outbound from browser softphone)."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Contacts",
      "description": "Address-book CRUD plus per-contact call history.",
      "item": [
        {
          "name": "Create a contact",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/contacts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "contacts"
              ]
            },
            "description": "Creates a contact owned by the current user. Auto-generates a DiceBear initials avatar. **Side effect**: any orphan inbound SMS in this org whose `from_number` matches the new contact's phone are automatically re-linked to the new contact. An SMS is considered orphan if its `contact_id` is null OR points to a contact that no longer exists (self-healing for stale references after a contact deletion).",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Delete a contact",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/contacts/{cid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "contacts",
                "{cid}"
              ]
            },
            "description": "Permanently removes a contact owned by the caller. Agents can only delete their own contacts.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List contacts in the caller's organization",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/contacts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "contacts"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Returns up to 500 contacts sorted alphabetically by name. Agent-role users only see contacts they own; admin/supervisor see all org contacts. Pass `?q=` for a case-insensitive substring match on name/phone/email.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List recent calls touching this contact",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/contacts/{cid}/calls",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "contacts",
                "{cid}",
                "calls"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Returns calls (up to `limit`, default 50) where the contact's phone matches either side. Phone numbers are normalised \u2014 leading `1` and non-digits stripped before comparison.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Update a contact",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/contacts/{cid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "contacts",
                "{cid}"
              ]
            },
            "description": "Full replace of name/phone/email/company/tags/notes. Refreshes the avatar if the name changed.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Developer Portal",
      "description": "Public downloads \u2014 Postman collection, official Python + TypeScript SDKs, and the OpenAPI mirror.",
      "item": [
        {
          "name": "Download the OpenAPI 3.1 spec",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/developers/openapi.json",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "developers",
                "openapi.json"
              ]
            },
            "description": "Public mirror of `/api/openapi.json`. Useful for piping into third-party SDK generators (`openapi-typescript`, `openapi-python-client`, etc)."
          },
          "response": []
        },
        {
          "name": "Download the Postman v2.1.0 collection",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/developers/postman",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "developers",
                "postman"
              ]
            },
            "description": "Pre-built Postman collection with every endpoint pre-organized by tag, auto-login pre-request script, and a `{{baseUrl}}` variable."
          },
          "response": []
        },
        {
          "name": "Download the official Python SDK (tar.gz)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/developers/sdk/python.tar.gz",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "developers",
                "sdk",
                "python.tar.gz"
              ]
            },
            "description": "Tarball of the auto-generated Python SDK package. Extract and `pip install -e ./sdk-python`. Source: `developer_portal/sdk-python/`."
          },
          "response": []
        },
        {
          "name": "Download the official TypeScript SDK (tar.gz)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/developers/sdk/typescript.tar.gz",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "developers",
                "sdk",
                "typescript.tar.gz"
              ]
            },
            "description": "Tarball of the auto-generated TypeScript SDK package."
          },
          "response": []
        },
        {
          "name": "List the developer-portal artifacts and their freshness",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/developers/manifest",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "developers",
                "manifest"
              ]
            },
            "description": "Returns the file sizes + last-modified timestamps for the Postman collection, the two SDK tarballs, and the OpenAPI spec. The Developer Portal frontend uses this to show 'Last regenerated: ...' next to each download."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Health",
      "description": "",
      "item": [
        {
          "name": "Application health summary",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/health",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "health"
              ]
            },
            "description": "Always returns 200 \u2014 body is a status snapshot for human inspection.\n\nUse `/health/live` for K8s liveness (binary up/down) and `/health/ready`\nfor readiness (won't accept traffic until DB is responsive)."
          },
          "response": []
        },
        {
          "name": "Database connectivity + ping latency",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/health/db",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "health",
                "db"
              ]
            },
            "description": ""
          },
          "response": []
        },
        {
          "name": "Liveness probe",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/health/live",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "health",
                "live"
              ]
            },
            "description": "Cheap liveness \u2014 if this returns 200, the process loop is alive.\n\nK8s livenessProbe: hit every 10s, restart pod on 3 consecutive failures."
          },
          "response": []
        },
        {
          "name": "Readiness probe \u2014 DB connectivity",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/health/ready",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "health",
                "ready"
              ]
            },
            "description": "Returns 200 ONLY when downstreams are responsive.\n\nK8s readinessProbe: hit every 5s, remove pod from Service on first failure."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Internal Staff",
      "description": "",
      "item": [
        {
          "name": "Audit log of internal staff actions",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/staff/audit",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "staff",
                "audit"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "actor_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "action",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Create a custom role",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/staff/roles",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "staff",
                "roles"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Delete a non-system role",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/staff/roles/{role_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "staff",
                "roles",
                "{role_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Delete a staff account",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/staff/{staff_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "staff",
                "{staff_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Disable",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/staff/{staff_id}/disable",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "staff",
                "{staff_id}",
                "disable"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Enable",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/staff/{staff_id}/enable",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "staff",
                "{staff_id}",
                "enable"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Force Pwd Reset",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/staff/{staff_id}/force-password-reset",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "staff",
                "{staff_id}",
                "force-password-reset"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Invite a new internal staff member",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/staff",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "staff"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Issue a one-time temporary password",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/staff/{staff_id}/reset-password",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "staff",
                "{staff_id}",
                "reset-password"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List all roles (system + custom)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/staff/roles",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "staff",
                "roles"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List internal staff accounts",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/staff",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "staff"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List the canonical permission catalog",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/staff/permissions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "staff",
                "permissions"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Lock",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/staff/{staff_id}/lock",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "staff",
                "{staff_id}",
                "lock"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Login History",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/staff/{staff_id}/login-history",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "staff",
                "{staff_id}",
                "login-history"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "My resolved permissions",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/me",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "me"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Revoke Session",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/staff/{staff_id}/sessions/{session_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "staff",
                "{staff_id}",
                "sessions",
                "{session_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Sessions",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/staff/{staff_id}/sessions",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "staff",
                "{staff_id}",
                "sessions"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Set password and activate the account (public)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/invite/{token}/accept",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "invite",
                "{token}",
                "accept"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Staff detail",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/staff/{staff_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "staff",
                "{staff_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Toggle Mfa",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/staff/{staff_id}/mfa",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "staff",
                "{staff_id}",
                "mfa"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Unlock",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/staff/{staff_id}/unlock",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "staff",
                "{staff_id}",
                "unlock"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Update a role's name/description/permissions",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/staff/roles/{role_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "staff",
                "roles",
                "{role_id}"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Update staff (name / roles / permissions)",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/staff/{staff_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "staff",
                "{staff_id}"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Verify an invite token (public)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/invite/{token}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "invite",
                "{token}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Internal Staff Auth",
      "description": "",
      "item": [
        {
          "name": "Change your own password",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/auth/change-password",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "auth",
                "change-password"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Internal staff login",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/auth/login",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "auth",
                "login"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Internal staff logout",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/auth/logout",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "auth",
                "logout"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Launch Wizard",
      "description": "",
      "item": [
        {
          "name": "Attach an operator note to a step",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/wizard/state/note",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "wizard",
                "state",
                "note"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Download the readiness report as CSV",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/wizard/readiness/export.csv",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "wizard",
                "readiness",
                "export.csv"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Download the readiness report as PDF",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/wizard/readiness/export.pdf",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "wizard",
                "readiness",
                "export.pdf"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "High-level wizard state \u2014 progress %, ETA, per-step status",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/wizard/overview",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "wizard",
                "overview"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Persist the step the operator is looking at (resume support)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/wizard/state/current-step",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "wizard",
                "state",
                "current-step"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Re-run every readiness check (Launch Command Center refresh)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/wizard/readiness/verify-all",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "wizard",
                "readiness",
                "verify-all"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Save one integration (Fernet-encrypted secrets; masked in responses)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/wizard/integrations/save",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "wizard",
                "integrations",
                "save"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Step Domain",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/wizard/steps/domain",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "wizard",
                "steps",
                "domain"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Step Go Live",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/wizard/steps/go-live",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "wizard",
                "steps",
                "go-live"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Step Health",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/wizard/steps/health",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "wizard",
                "steps",
                "health"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Step Integrations",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/wizard/steps/integrations",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "wizard",
                "steps",
                "integrations"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Step Readiness",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/wizard/steps/readiness",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "wizard",
                "steps",
                "readiness"
              ],
              "query": [
                {
                  "key": "run_now",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Step Security",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/wizard/steps/security",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "wizard",
                "steps",
                "security"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Test a connection without saving",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/wizard/integrations/test",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "wizard",
                "integrations",
                "test"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Meetings",
      "description": "Internal scheduled meetings + ad-hoc group calls (peer-to-peer WebRTC \u2014 no Twilio cost).",
      "item": [
        {
          "name": "Cancel a meeting (organizer or admin only)",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/meetings/{mid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "meetings",
                "{mid}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Download an RFC 5545 .ics calendar invite for this meeting",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/meetings/{mid}/ics",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "meetings",
                "{mid}",
                "ics"
              ],
              "query": [
                {
                  "key": "tz",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Returns the meeting as a downloadable `.ics` file. Pass `?tz=America/Los_Angeles` to have the recipient's calendar app default-display in that timezone via the `X-WR-TIMEZONE` hint. The canonical event times stay in UTC, so every standards-compliant client (Apple Calendar, Google Calendar, Outlook, Thunderbird) renders the event correctly in the viewer's own local time.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Get a single meeting (must be a participant)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/meetings/{mid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "meetings",
                "{mid}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Get the WebRTC room id + invitees for joining",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/meetings/{mid}/join",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "meetings",
                "{mid}",
                "join"
              ]
            },
            "description": "Returns the WebRTC `room_id` and the list of other expected participants so the browser can ring them.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List meetings the caller is part of",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/meetings",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "meetings"
              ],
              "query": [
                {
                  "key": "date_from",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "date_to",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Includes meetings the caller organized OR is invited to. Optionally filter by ISO `date_from`/`date_to` (both inclusive). Each row is enriched with `organizer` + `participants` objects.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List teammates eligible for an internal call",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal-call/users",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal-call",
                "users"
              ]
            },
            "description": "Returns all org teammates (excluding the caller) who can be rung internally via free peer-to-peer WebRTC.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Scan when a set of teammates are simultaneously free",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/meetings/availability",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "meetings",
                "availability"
              ]
            },
            "description": "Given a target date and a set of participants, returns a 30-min slot grid for the viewer's window. Each slot reports per-user status (`available` / `off_hours` / `conflict`) so the UI can render a green/amber/red availability matrix. Honours each participant's saved `timezone` + `working_hours` (defaults 09:00-18:00 Mon-Fri) and their existing non-cancelled meetings for the day.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Schedule a new meeting",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/meetings",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "meetings"
              ]
            },
            "description": "Creates a peer-to-peer WebRTC meeting and pushes a `meeting-invited` event over the RTC WebSocket to each participant (best-effort).",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Start an ad-hoc internal group call",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal-call/start",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal-call",
                "start"
              ]
            },
            "description": "Spins up a fresh WebRTC room id for the caller + provided `participant_ids`. The caller's browser is then expected to send a `ring` message over the RTC WebSocket so each invitee's browser shows an incoming-call prompt.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Update meeting fields (organizer or admin only)",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/meetings/{mid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "meetings",
                "{mid}"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Messages",
      "description": "Customer SMS \u2014 send/list outbound, receive inbound via Twilio webhook.",
      "item": [
        {
          "name": "List SMS in the caller's organization",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/sms",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "sms"
              ],
              "query": [
                {
                  "key": "contact_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "from_number",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Newest first. Pass `?contact_id=...` to scope to a known contact, or `?from_number=...` to fetch an orphan conversation (inbound from a number without a *live* matching contact \u2014 handles stale contact links).",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Send an SMS to a customer",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/sms",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "sms"
              ]
            },
            "description": "Sends an SMS via Twilio's Messages API and persists an outbound record. If Twilio isn't configured (no env vars), the message is logged with `status='mock'` so demo flows still work.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Twilio inbound-SMS webhook",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/twilio/sms-inbound",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "twilio",
                "sms-inbound"
              ]
            },
            "description": "Public Twilio callback \u2014 persists the inbound message + auto-links the contact by `From` number."
          },
          "response": []
        },
        {
          "name": "Twilio outbound-SMS status callback",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/twilio/sms-status",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "twilio",
                "sms-status"
              ]
            },
            "description": "Public Twilio callback fired as an outbound message transitions through queued \u2192 sent \u2192 delivered (or failed / undelivered). Updates the matching sms row so the UI can surface failures instead of silently dropping messages."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Notifications",
      "description": "Unread counters, mute toggles, mark-read endpoints across SMS and Team Chat.",
      "item": [
        {
          "name": "Bulk-mark every inbound SMS in a conversation as read",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/sms/mark-thread-read",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "sms",
                "mark-thread-read"
              ]
            },
            "description": "Pass `contact_id` (preferred) or `from_number`. Returns the number of rows updated.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Customer-SMS unread badge count",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/sms/unread-count",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "sms",
                "unread-count"
              ]
            },
            "description": "Only inbound SMS owned by this user (their seat's conversations) count towards the bell. Admins without a seat see zero unless they enable sms_monitor_all.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Delete every notification for the current user",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/notifications/clear",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "notifications",
                "clear"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List thread keys the caller has muted",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/muted-threads",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "muted-threads"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Mark a single inbound SMS as read",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/sms/{sms_id}/mark-read",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "sms",
                "{sms_id}",
                "mark-read"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Mark a single notification read",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/notifications/{notification_id}/read",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "notifications",
                "{notification_id}",
                "read"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Mark every notification for the current user as read",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/notifications/mark-all-read",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "notifications",
                "mark-all-read"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Server-authoritative notification feed for the current user",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/notifications/feed",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "notifications",
                "feed"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Returns up to `limit` recent notifications for this user across team chat, meetings, meeting reminders and system messages. Use this as the source of truth for the bell dropdown so notifications generated while the user was offline / on another device are not lost.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Team-chat unread badge counts",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/unread-count",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "unread-count"
              ]
            },
            "description": "Returns total unread (excluding muted threads), DM/group breakdown, mention count, and the latest unread message.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Toggle mute on a DM or group thread",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/threads/{thread_key}/mute",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "threads",
                "{thread_key}",
                "mute"
              ]
            },
            "description": "Muted threads still receive messages but are excluded from `/team-chat/unread-count`.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Unread inbound SMS counts grouped by contact + orphan-sender threads",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/sms/unread-by-contact",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "sms",
                "unread-by-contact"
              ]
            },
            "description": "Returns `{counts: {contact_id: count}, unknown: count, orphan_threads: [...]}`. `orphan_threads` lists inbound conversations that are NOT linked to any *existing* contact (either `contact_id` is null OR the referenced contact was deleted) so the UI can render synthetic thread rows for them grouped by `from_number`. Self-heals stale contact links: dangling references no longer hide messages from the UI. Agents only see their own SMS; admin/supervisor/owner see org-wide.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Numbers",
      "description": "Virtual numbers \u2014 demo provisioning + real Twilio number purchase.",
      "item": [
        {
          "name": "Assign or reassign a number to a routing destination",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/numbers/{num_id}/assign",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "numbers",
                "{num_id}",
                "assign"
              ]
            },
            "description": "Assignment is org-scoped and audit-logged. `target_type=unassigned` clears the current assignment (the number becomes idle / parked). Active calls on this number are NOT interrupted.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Bulk assign or reassign multiple numbers",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/numbers/bulk-assign",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "numbers",
                "bulk-assign"
              ]
            },
            "description": "Applies the same target to all provided number ids atomically per record.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Edit the credentials of the staff member assigned to this number",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/numbers/{num_id}/assignee",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "numbers",
                "{num_id}",
                "assignee"
              ]
            },
            "description": "Updates the username, password, and/or display name of the currently assigned staff user. The number stays with the same user; only their credentials change. All fields optional \u2014 send only what you want to update.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Included-numbers entitlement for the current org",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/numbers/entitlement",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "numbers",
                "entitlement"
              ]
            },
            "description": "1 seat = 1 included business number. Returns `included`, `used`, and `remaining`. Toll-free numbers count as `used` too (Version 1 policy). When `remaining <= 0` the UI should suggest adding seats before purchase.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List supported countries and assignment target types",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/numbers/catalog",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "numbers",
                "catalog"
              ]
            },
            "description": "Powers the Number Purchase wizard. Provider-agnostic.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List virtual numbers (admin/supervisor)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/numbers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "numbers"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Provision a synthetic demo number",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/numbers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "numbers"
              ]
            },
            "description": "Creates a fake virtual number for demo purposes. For real Twilio numbers see `POST /api/twilio/numbers/buy`.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Purchase a real Twilio number (optionally a specific one from search)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/twilio/numbers/buy",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "twilio",
                "numbers",
                "buy"
              ]
            },
            "description": "If `phone_number` is provided, buys that exact number. Otherwise picks the first available number matching `country` + `type` (legacy behavior). If `assign_to` is provided, the number is atomically assigned after purchase.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Reassign this number to a brand-new staff member",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/numbers/{num_id}/reassign-new-user",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "numbers",
                "{num_id}",
                "reassign-new-user"
              ]
            },
            "description": "Creates a fresh staff user with the provided credentials and points this number at them. The previous user (if any) loses access to this seat's line \u2014 their account is preserved and can be reassigned later.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Release a virtual number",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/numbers/{num_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "numbers",
                "{num_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Search purchasable numbers from the configured provider",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/numbers/search",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "numbers",
                "search"
              ],
              "query": [
                {
                  "key": "country",
                  "value": "",
                  "disabled": true,
                  "description": "ISO 3166-1 alpha-2"
                },
                {
                  "key": "type",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "region",
                  "value": "",
                  "disabled": true,
                  "description": "State / Province"
                },
                {
                  "key": "city",
                  "value": "",
                  "disabled": true,
                  "description": "Locality / City"
                },
                {
                  "key": "area_code",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "contains",
                  "value": "",
                  "disabled": true,
                  "description": "Vanity pattern (digits or letters)"
                },
                {
                  "key": "starts_with",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "ends_with",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "voice",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "sms",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "mms",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Returns candidate numbers matching the filters. `type` accepts `local`, `toll-free`, `mobile`, or `national`. Vanity/pattern filters (`contains`, `starts_with`, `ends_with`) are passed to the provider when supported; ignored otherwise. Response is provider-agnostic.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Onboarding",
      "description": "",
      "item": [
        {
          "name": "Get current org's onboarding state + step catalogue",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/onboarding/status",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "onboarding",
                "status"
              ]
            },
            "description": "Returns the wizard state for the caller's org plus the ordered list of steps (adapted to solo vs. business account types). Initialises state on first call.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Mark an onboarding step complete",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/onboarding/complete/{step_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "onboarding",
                "complete",
                "{step_id}"
              ]
            },
            "description": "Idempotent \u2014 completing an already-completed step is a no-op. Re-completing a previously-skipped step removes the skip and counts as done.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Platform-wide activation funnel + KPIs (owner only)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/onboarding/analytics",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "onboarding",
                "analytics"
              ],
              "query": [
                {
                  "key": "days",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Aggregates `activation_events` across all orgs into the activation funnel (signup \u2192 onboarding_started \u2192 number_purchased \u2192 test_call_made \u2192 first_real_call), plus time-to-first-value and completion-rate KPIs.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Record an activation event from the client",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/onboarding/mark/{event_type}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "onboarding",
                "mark",
                "{event_type}"
              ]
            },
            "description": "Used by the dialer / SMS composer / billing flows to fire `test_call_made`, `test_sms_sent`, etc. \u2014 events that have no clean server-side trigger.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Reset onboarding for the caller's org (admin only)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/onboarding/reset",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "onboarding",
                "reset"
              ]
            },
            "description": "Wipes completed/skipped steps and resets `current_step` to the first step.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Skip an onboarding step",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/onboarding/skip/{step_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "onboarding",
                "skip",
                "{step_id}"
              ]
            },
            "description": "Marks the step as deliberately skipped. Skipped steps are excluded from the progress denominator and can be re-completed later.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Organization Storage",
      "description": "",
      "item": [
        {
          "name": "Export YOUR organization's storage inventory as CSV.",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/org/storage/export.csv",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "org",
                "storage",
                "export.csv"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Recent downloads within your organization.",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/org/storage/download-history",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "org",
                "storage",
                "download-history"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Your organization's retention window (days).",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/org/storage/retention",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "org",
                "storage",
                "retention"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Your organization's storage quota + alert threshold.",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/org/storage/quota",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "org",
                "storage",
                "quota"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Your organization's storage usage (bytes + counts).",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/org/storage/usage",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "org",
                "storage",
                "usage"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Other",
      "description": "",
      "item": [
        {
          "name": "Active Stripe products and prices for the landing page",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/public/pricing",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "public",
                "pricing"
              ],
              "query": [
                {
                  "key": "currency",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Public, unauthenticated. Stripe is the single source of truth: products+prices are fetched from Stripe, normalised, cached 60s. Falls back to the local billing_config catalog only when Stripe is not configured (preview / staging).",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Force-refresh the pricing cache (owner-only invoked from the frontend)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/public/pricing/refresh",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "public",
                "pricing",
                "refresh"
              ]
            },
            "description": "Drops the in-memory Stripe pricing cache so the very next GET /api/public/pricing hits Stripe again. Useful right after you change a price in the Stripe Dashboard and don't want to wait 60s.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Public Sentry runtime config for the browser SDK",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/config/sentry",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "config",
                "sentry"
              ]
            },
            "description": "Returns the frontend DSN, environment tag, trace sample rate, and release string. Consumed once at app boot by @sentry/react. Returns `{ dsn: null }` when no DSN is configured \u2014 the frontend then skips SDK init and error monitoring is silently disabled.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Owner RTC Captures",
      "description": "",
      "item": [
        {
          "name": "Delete one RTC signaling-timeline capture (owner only)",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/rtc/captures/{cid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "rtc",
                "captures",
                "{cid}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Download a capture as a JSON attachment (owner only)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/rtc/captures/{cid}/download",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "rtc",
                "captures",
                "{cid}",
                "download"
              ]
            },
            "description": "Returns the full capture JSON with a Content-Disposition header so\nthe browser saves it to disk. Used by the Owner Console 'Download'\nbutton so operators can attach the file to a support ticket.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Fetch a single RTC signaling-timeline capture with full events (owner only)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/rtc/captures/{cid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "rtc",
                "captures",
                "{cid}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List recent auto-captured RTC signaling timelines (owner only)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/rtc/captures",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "rtc",
                "captures"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "room_id",
                  "value": "",
                  "disabled": true,
                  "description": "Filter by exact room id"
                }
              ]
            },
            "description": "Newest-first list of captures. Events are omitted to keep the\npayload small \u2014 use `/owner/rtc/captures/{cid}` for the full record.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "iter148 pipeline health (owner only) \u2014 proves the auto-capture path is live",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/rtc/captures/health",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "rtc",
                "captures",
                "health"
              ]
            },
            "description": "Returns per-replica counters plus the total capture count in\nMongo. Use this immediately after a failed production call to\nconfirm the pipeline is receiving events, running the watchdog,\nand persisting to the same database the Owner Console reads from.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Owner Readiness",
      "description": "",
      "item": [
        {
          "name": "Attempt automatic remediation, then re-verify",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/readiness/checks/{check_id}/fix",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "readiness",
                "checks",
                "{check_id}",
                "fix"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Checks blocking the next launch stage (sorted by priority)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/readiness/launch-blockers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "readiness",
                "launch-blockers"
              ],
              "query": [
                {
                  "key": "target",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Exportable PDF readiness report",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/readiness/report.pdf",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "readiness",
                "report.pdf"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Full production-readiness scorecard (48 checks, 9 categories, overall 0-100 score)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/readiness/scorecard",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "readiness",
                "scorecard"
              ],
              "query": [
                {
                  "key": "run_now",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "One category's checks",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/readiness/categories/{category_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "readiness",
                "categories",
                "{category_id}"
              ],
              "query": [
                {
                  "key": "run_now",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Per-stage launch readiness (private-beta / public-beta / enterprise)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/readiness/launch-status",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "readiness",
                "launch-status"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Re-run a single check",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/readiness/checks/{check_id}/verify",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "readiness",
                "checks",
                "{check_id}",
                "verify"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Re-run every check and return the fresh scorecard",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/readiness/verify-all",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "readiness",
                "verify-all"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Recent verify / fix events",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/readiness/history",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "readiness",
                "history"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Owner Settings",
      "description": "",
      "item": [
        {
          "name": "Change the email address on a privileged account (owner or org admin)",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/settings/privileged-accounts/{user_id}/email",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "settings",
                "privileged-accounts",
                "{user_id}",
                "email"
              ]
            },
            "description": "Rotates the email on file for an owner or organization-admin user. The Owner can call this against **any** privileged account \u2014 including their own \u2014 before Resend goes live so they can direct OTP delivery to an inbox they actually control.\n\n\u2022 Rejects duplicate email addresses (case-insensitive) already in use.\n\u2022 Rejects non-privileged targets (agent/supervisor/quality) \u2014 those   accounts don't need an email for OTP, and the owner should use   the normal user-edit path for them.\n\u2022 By default, revokes every active `hbf_td` trusted-device cookie   belonging to the target so the next login re-verifies OTP into the   NEW inbox (pass `revoke_trusted_devices=false` to skip).\n\u2022 Writes a full audit log (`log_owner_action`) and a security event   (`user.email.changed`) with old + new email.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Get one integration's config (secrets masked)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/settings/integrations/{provider}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "settings",
                "integrations",
                "{provider}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List every Owner + Organization Admin account with contact + auth state",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/settings/privileged-accounts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "settings",
                "privileged-accounts"
              ]
            },
            "description": "Returns one row per privileged account (role \u2208 {owner, admin}) with the current email, org name/plan, last login, MFA enrolment state, and active trusted-device count. This is what the Owner Settings page renders so the operator can rotate emails to inboxes they own before flipping on Resend.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List every production integration with its current config + last-test state",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/settings/integrations",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "settings",
                "integrations"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Return the Stripe webhook URL + subscription checklist",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/settings/integrations/stripe/webhook-info",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "settings",
                "integrations",
                "stripe",
                "webhook-info"
              ]
            },
            "description": "The Owner Console shows this so admins can copy the URL directly into Stripe Dashboard \u2192 Developers \u2192 Webhooks and know exactly which events to subscribe.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Save configuration for one integration (secrets encrypted at rest)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/settings/integrations/{provider}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "settings",
                "integrations",
                "{provider}"
              ]
            },
            "description": "Persists the submitted config into `db.platform_settings`. Empty field values keep the current stored value (so operators can re-save non-secret changes without re-typing every API key).",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Test the connection for one integration",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/settings/integrations/{provider}/test",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "settings",
                "integrations",
                "{provider}",
                "test"
              ]
            },
            "description": "Executes a lightweight provider-native probe (Resend GET /domains, R2 HeadBucket, Stripe Balance.retrieve, Twilio Account.fetch, Sentry DSN parse, Domain URL sanity). Pass `values` to test unsaved edits.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Owner Storage",
      "description": "",
      "item": [
        {
          "name": "Audit log for storage-related actions",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/audit",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "audit"
              ],
              "query": [
                {
                  "key": "action",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "org_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "actor_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Backup + DR readiness checklist (0-100 score)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/analytics/backup-dr",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "analytics",
                "backup-dr"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Current provider monthly cost + savings comparison",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/analytics/costs",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "analytics",
                "costs"
              ],
              "query": [
                {
                  "key": "egress_gib_pm",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Daily growth over the last N days",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/analytics/growth",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "analytics",
                "growth"
              ],
              "query": [
                {
                  "key": "days",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Dry-run test \u2014 validate candidate credentials WITHOUT saving",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/validate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "validate"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Export all analytics rows as CSV (owner report)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/analytics/export.csv",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "analytics",
                "export.csv"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Force-migrate a single recording",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/migrate/{recording_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "migrate",
                "{recording_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Get the current object storage configuration (redacted)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/config",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "config"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Kick the retry scheduler now",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/retry-failed",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "retry-failed"
              ],
              "query": [
                {
                  "key": "batch_size",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Largest N organizations by storage usage",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/analytics/top-orgs",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "analytics",
                "top-orgs"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Largest individual files",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/analytics/largest-files",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "analytics",
                "largest-files"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List quota rules",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/quotas",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "quotas"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Oldest individual files (candidates for archive)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/analytics/oldest-files",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "analytics",
                "oldest-files"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Per-org storage usage (bytes + count)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/usage-by-org",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "usage-by-org"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Platform-wide storage totals + 30-day growth",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/analytics/overview",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "analytics",
                "overview"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Remove per-org quota",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/quotas/{org_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "quotas",
                "{org_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Retention + lifecycle rules",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/lifecycle",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "lifecycle"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Retry queue depth + failure counters",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/analytics/failed-retry",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "analytics",
                "failed-retry"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Run the Twilio-copy cleanup pass now",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/cleanup-twilio",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "cleanup-twilio"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Run the stale-file backfill migration now",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/backfill",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "backfill"
              ],
              "query": [
                {
                  "key": "batch_size",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Sanity-check the current primary provider",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/test-connection",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "test-connection"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Save storage configuration and reinitialize (no restart required)",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/config",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "config"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Set per-org quota",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/quotas/{org_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "quotas",
                "{org_id}"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Storage health dashboard",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/health",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "health"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Storage usage grouped by file kind",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/analytics/by-kind",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "analytics",
                "by-kind"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Storage usage grouped by provider (infra view)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/analytics/by-provider",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "analytics",
                "by-provider"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Twilio\u2192Hello by Flow + Emergent\u2192Owner migration %",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/analytics/migration-progress",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "analytics",
                "migration-progress"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Update retention + lifecycle rules",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/storage/lifecycle",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "storage",
                "lifecycle"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Owner \u00b7 Notifications",
      "description": "",
      "item": [
        {
          "name": "Dismiss (delete) a notification",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/notifications/{notification_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "notifications",
                "{notification_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Flat list of all notifications (most recent first)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/notifications/all",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "notifications",
                "all"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Used by the `View all notifications` page.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List Owner Console notifications grouped by category",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/notifications",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "notifications"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Returns notifications grouped into the 5 canonical Owner categories: `platform`, `billing`, `security`, `communications`, `infrastructure`. Most-recent-first within each group. If the collection is empty, hydrates from live platform signals (R2 health, Stripe sync, Readiness, email outbox, SOC events) before returning.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Mark a single notification as read",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/notifications/{notification_id}/read",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "notifications",
                "{notification_id}",
                "read"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Mark every notification as read (optionally limited to one category)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/notifications/read_all",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "notifications",
                "read_all"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Read the caller's notification preferences",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/notifications/prefs",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "notifications",
                "prefs"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Unread notification count (for the top-bar badge)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/notifications/unread_count",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "notifications",
                "unread_count"
              ]
            },
            "description": "Cheap endpoint safe to poll every 60 s from the shell.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Update the caller's notification preferences",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/notifications/prefs",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "notifications",
                "prefs"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Owner \u00b7 Waitlist",
      "description": "",
      "item": [
        {
          "name": "Owner Export Desktop Waitlist Csv",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/waitlist/desktop/export.csv",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "waitlist",
                "desktop",
                "export.csv"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Owner List Desktop Waitlist",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/owner/waitlist/desktop",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "owner",
                "waitlist",
                "desktop"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "platform",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Productivity",
      "description": "",
      "item": [
        {
          "name": "Create a new sticky note",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/notes",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "notes"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Create a new task",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/tasks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "tasks"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Delete a sticky note permanently",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/notes/{note_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "notes",
                "{note_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Delete a task permanently",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/tasks/{task_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "tasks",
                "{task_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Distinct tags used by the current user's notes",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/notes/tags",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "notes",
                "tags"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Distinct tags used by the current user's tasks",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/tasks/tags",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "tasks",
                "tags"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Fetch the full body of a specific notepad snapshot",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/notepad/history/{snapshot_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "notepad",
                "history",
                "{snapshot_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Get the current user's notepad (single long-form document)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/notepad",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "notepad"
              ]
            },
            "description": "Returns the caller's notepad. Auto-creates an empty doc on first access. One notepad per (user_id, org_id) \u2014 distinct from sticky `notes`.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List the current user's sticky notes",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/notes",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "notes"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "tag",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "archived",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "favorite",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "pinned",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Filters: q (search title+body), tag, archived (default false), favorite, pinned. Pinned notes are returned first, then by updated_at desc.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List the current user's tasks",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/tasks",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "tasks"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "tag",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "completed",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "archived",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "priority",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Filters: q, tag, completed, archived (default false), priority. Default sort: incomplete first, then priority desc, then due_at asc.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List up to 20 recent notepad snapshots for the caller",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/notepad/history",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "notepad",
                "history"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Replace the current user's notepad body",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/notepad",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "notepad"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Restore a snapshot as the current notepad (creates a new snapshot of the pre-restore state first)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/notepad/history/{snapshot_id}/restore",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "notepad",
                "history",
                "{snapshot_id}",
                "restore"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Update a sticky note (title, body, color, pinned, favorite, archived, tags)",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/notes/{note_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "notes",
                "{note_id}"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Update a task (title, completed, priority, due_at, tags, archived, order_index)",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/tasks/{task_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "tasks",
                "{task_id}"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Provider Orchestration",
      "description": "",
      "item": [
        {
          "name": "Configure automatic vs manual failback for one service",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/state/{service}/failback-mode",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "state",
                "{service}",
                "failback-mode"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Create or update a provider configuration (credentials encrypted at rest)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/{service}/{provider}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "{service}",
                "{provider}"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Delete a provider configuration",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/{service}/{provider}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "{service}",
                "{provider}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Inventory + health for every service and provider",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/state",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "state"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Inventory + health for one service",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/state/{service}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "state",
                "{service}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List every service + registered provider template (no credentials)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/catalog",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "catalog"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Manually switch the active provider for a service",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/state/{service}/activate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "state",
                "{service}",
                "activate"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Run a full health check + persist result",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/{service}/{provider}/health",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "{service}",
                "{provider}",
                "health"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Run health checks across ALL enabled providers",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/health/run",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "health",
                "run"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Test a provider connection WITHOUT saving",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/{service}/{provider}/test",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "{service}",
                "{provider}",
                "test"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Provider Orchestration \u00b7 Ext",
      "description": "",
      "item": [
        {
          "name": "2-click register a marketplace template as a custom provider",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/marketplace/{template_id}/register",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "marketplace",
                "{template_id}",
                "register"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Browse the 35+ pre-configured provider templates",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/marketplace",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "marketplace"
              ],
              "query": [
                {
                  "key": "category",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "search",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "popular",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Configure failover triggers, thresholds and failback mode",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/state/{service}/failover-policy",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "state",
                "{service}",
                "failover-policy"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Fetch a single marketplace template",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/marketplace/{template_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "marketplace",
                "{template_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Get payment routing rules (country/region/org)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/payment-routing",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "payment-routing"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Get the failover policy for a service",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/state/{service}/failover-policy",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "state",
                "{service}",
                "failover-policy"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List all registered custom providers",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/custom",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "custom"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Move a provider up or down within a service (Primary/Backup/Standby)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/state/{service}/{provider}/move",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "state",
                "{service}",
                "{provider}",
                "move"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Register a new custom provider (any service category)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/custom/register",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "custom",
                "register"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Requests today, success rate, avg latency, cost",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/{service}/{provider}/usage",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "{service}",
                "{provider}",
                "usage"
              ],
              "query": [
                {
                  "key": "days",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Resolve which payment provider serves a request (dry-run)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/payment-routing/resolve",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "payment-routing",
                "resolve"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Service-specific test (test_call / test_sms / test_email / test_upload / test_transaction)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/{service}/{provider}/test/{kind}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "{service}",
                "{provider}",
                "test",
                "{kind}"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Set explicit provider ordering (drag-drop equivalent)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/state/{service}/order",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "state",
                "{service}",
                "order"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Un-register a custom provider (cascades config delete)",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/custom/{provider_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "custom",
                "{provider_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Update payment routing rules",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/providers/payment-routing",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "providers",
                "payment-routing"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Public Status",
      "description": "",
      "item": [
        {
          "name": "Aggregate service status for customers (no provider details)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/status",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "status"
              ]
            },
            "description": "Public endpoint. Returns opaque per-service statuses (`operational`, `degraded`, `outage`, `not_configured`). Customers never see provider names, credentials, or switch controls."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Realtime",
      "description": "WebSocket signaling for WebRTC peer connections \u2014 `/api/rtc/ws`.",
      "item": [
        {
          "name": "API health probe",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api"
              ]
            },
            "description": "Returns a tiny JSON payload \u2014 used by load balancers and the frontend to detect that the API is reachable.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Ice Servers",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/rtc/ice-servers",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "rtc",
                "ice-servers"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Room Status",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/rtc/room-status/{room_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "rtc",
                "room-status",
                "{room_id}"
              ]
            },
            "description": "Live-room status probe \u2014 reads shared state (Redis in multi-replica).",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Rtc Pair Timeline",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/rtc/pair-timeline/{room_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "rtc",
                "pair-timeline",
                "{room_id}"
              ],
              "query": [
                {
                  "key": "peer_a",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "peer_b",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "iter147: full signaling-lifecycle timeline for one room.\n\nCombines the frontend telemetry (offer_created, offer_forwarded,\noffer_received, remote_desc_applied, answer_created,\nanswer_forwarded, answer_received, ice_sent, ice_received,\npc_state=<connected|failed|closed|\u2026>) with the server-side\nsignal-forwarding events into a single per-pair sequence.\n\nOptional filters `peer_a` and `peer_b` narrow to a single pair.\nPublic-safe \u2014 only user IDs (which are UUIDs the caller already\nhas if they know the room_id) and event names, no SDP or ICE\nbodies.\n\nNOTE: each replica holds its own ring buffer; hit the ingress a\nfew times to collect both replicas' data. Look for events with\nmatching `pid` to see which replica saw what.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Rtc Publish Drops",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/rtc/publish-drops",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "rtc",
                "publish-drops"
              ]
            },
            "description": "iter144 support tool \u2014 reports every cross-replica message this\nreplica has FAILED to publish to the pub/sub bus in its lifetime.\nEach drop = one `peer-joined` / `signal` / `ring` payload that was\ndelivered locally but silently vanished for users on the sibling\nreplica. Non-zero `total` here is the smoking gun for group-call\nfragmentation. Public-safe (only counters + type/scope, no PII).",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Rtc Room Diagnostic",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/rtc/room-diagnostic/{room_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "rtc",
                "room-diagnostic",
                "{room_id}"
              ]
            },
            "description": "iter142 support tool \u2014 shows exactly who Redis thinks is in a\ngiven RTC room vs who this replica's in-process mirror thinks is\nthere. When a group-call participant reports \"I'm alone in the\nroom but Alice says she's there too\", hit this on both replicas\nand compare \u2014 any drift between `redis_members` and\n`mirror_members` (or between replicas) is the fragmentation.\n\nAlso reports which of this replica's local sockets are pinned to\nthe room via `rtc_room_socket`, so ops can spot the classic\n\"user has 2 tabs, only one is in the room\" pathology.\n\nPublic-safe (only exposes user IDs, no PII / audio content). No\nauth required so support/ops tools can hit it directly against\neach replica's internal endpoint. If PII exposure becomes a\nconcern later, gate this behind `require_admin`.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Rtc State Health",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/rtc/state-health",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "rtc",
                "state-health"
              ]
            },
            "description": "Reports the RTC signaling backend health. Returns:\n- `backend`: \"in-process\" or \"redis\"\n- `healthy`: true if Redis is reachable (or backend is in-process)\n- `local_sockets`: count of process-local WebSocket connections\n- `local_rooms`: count of process-local room references\n- `redis_pool`: {max_connections, in_use, available, pubsub_active}\nMulti-replica deployments should alert on `healthy=false` or on\n`redis_pool.in_use` approaching `redis_pool.max_connections`.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Search",
      "description": "",
      "item": [
        {
          "name": "Global command-palette search (owner only)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/search",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "search"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "",
                  "disabled": true,
                  "description": "Search query"
                },
                {
                  "key": "types",
                  "value": "",
                  "disabled": true,
                  "description": "Comma-separated entity types"
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Multi-entity fuzzy lookup for the Cmd+K palette. Accepts a comma-separated `types` filter (orgs,users,staff,numbers,contacts). Each type returns at most `limit` results. Missing/blank q returns empty. No new indexes required.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Security & Operations Center",
      "description": "",
      "item": [
        {
          "name": "Acknowledge Alert",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/alerts/{alert_id}/acknowledge",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "alerts",
                "{alert_id}",
                "acknowledge"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Alerts Dashboard",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/alerts/dashboard",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "alerts",
                "dashboard"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Assign",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/incidents/{incident_id}/assign",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "incidents",
                "{incident_id}",
                "assign"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Change Status",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/incidents/{incident_id}/status",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "incidents",
                "{incident_id}",
                "status"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Create Channel",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/channels",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "channels"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Create Policy",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/escalation-policies",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "escalation-policies"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Create Rule",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/rules",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "rules"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Delete Channel",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/channels/{channel_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "channels",
                "{channel_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Delete Policy",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/escalation-policies/{policy_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "escalation-policies",
                "{policy_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Delete Rule",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/rules/{rule_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "rules",
                "{rule_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Force one immediate evaluation cycle (for testing)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/rules/evaluate-now",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "rules",
                "evaluate-now"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Get Incident",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/incidents/{incident_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "incidents",
                "{incident_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Get Policy",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/escalation-policies/{policy_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "escalation-policies",
                "{policy_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Incident Report",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/incidents/{incident_id}/report.pdf",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "incidents",
                "{incident_id}",
                "report.pdf"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List Alerts",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/alerts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "alerts"
              ],
              "query": [
                {
                  "key": "status",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "severity",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "rule_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List Channels",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/channels",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "channels"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List Incidents",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/incidents",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "incidents"
              ],
              "query": [
                {
                  "key": "status",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List Policies",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/escalation-policies",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "escalation-policies"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List Rules",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/rules",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "rules"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Live Operations Dashboard \u2014 health, throughput, incidents",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/live-ops",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "live-ops"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Patch",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/incidents/{incident_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "incidents",
                "{incident_id}"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Patch Policy",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/escalation-policies/{policy_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "escalation-policies",
                "{policy_id}"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Patch Rule",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/rules/{rule_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "rules",
                "{rule_id}"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Policy Incidents",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/escalation-policies/{policy_id}/incidents",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "escalation-policies",
                "{policy_id}",
                "incidents"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Resolve Alert",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/alerts/{alert_id}/resolve",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "alerts",
                "{alert_id}",
                "resolve"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Roles + channel types for the escalation-policy builder",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/soc/notify-targets",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "soc",
                "notify-targets"
              ]
            },
            "description": "Return the internal-staff role catalog + channel type catalog. Used\nby the frontend's escalation-policy builder to render role/channel\npickers. Roles include headcount so the UI can warn if a role has no\nactive members.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Team Chat",
      "description": "Internal direct messages + group threads, reactions, pins, edit/delete/recall, attachments, blocks, forward, and LLM-powered translation.",
      "item": [
        {
          "name": "Block a teammate (DM only)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/block/{user_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "block",
                "{user_id}"
              ]
            },
            "description": "Blocked users can't message you and you can't message them until you unblock.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Create a new group thread",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/groups",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "groups"
              ]
            },
            "description": "The caller is added automatically. Invalid member ids (outside the org) are silently dropped.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Delete a group and all its messages",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/groups/{group_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "groups",
                "{group_id}"
              ]
            },
            "description": "Only the group creator or an admin can delete. **Irreversible** \u2014 drops every message in the thread.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Delete a message (`scope` = me / all / recall)",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/messages/{msg_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "messages",
                "{msg_id}"
              ],
              "query": [
                {
                  "key": "scope",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "**`me`**: hide only for the caller. **`recall`**: unsend if the message is still unread by recipients (any age). **`all`**: delete-for-everyone \u2014 sender only, within the org's `delete_window_seconds`, and only if the org admin has not disabled this feature.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Download an attachment (org-scoped)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/files/{path}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "files",
                "{path}"
              ]
            },
            "description": "Returns the raw file bytes. The caller must belong to the org that uploaded the file.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Edit a team-chat message (sender only)",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/messages/{msg_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "messages",
                "{msg_id}"
              ]
            },
            "description": "Allowed only within the org's `edit_window_seconds` (default 5 minutes).",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Fetch messages for a DM or group thread",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/messages",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "messages"
              ],
              "query": [
                {
                  "key": "with_user",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "group_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Pass exactly one of `with_user` (teammate id) or `group_id`. Auto-marks inbound messages as read for the caller.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Filtered search (date range, sender, attachments, links)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/search-advanced",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "search-advanced"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "kind",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "from_user_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "date_from",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "date_to",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "has_attachments",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "has_links",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "has_documents",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Forward a message to teammates and/or groups",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/messages/{msg_id}/forward",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "messages",
                "{msg_id}",
                "forward"
              ]
            },
            "description": "Pass at least one of `to_user_ids` or `group_ids`. Optional `comment` is prepended.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Full-text search across all threads the caller can see",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/search",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "search"
              ],
              "query": [
                {
                  "key": "q",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "kind",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "with_user",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "group_id",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Substring match on message body + sender name. Pass `kind=dm|group` and/or `with_user`/`group_id` to scope.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Get current org chat-settings",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/organizations/me/chat-settings",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "organizations",
                "me",
                "chat-settings"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List all chat threads (DMs + groups)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/threads",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "threads"
              ]
            },
            "description": "Returns one entry per teammate (1:1 DM) and one entry per group the caller belongs to, each with `last_message` and `unread` count. Sorted by last activity descending.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List blocked teammates",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/blocked",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "blocked"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List groups the caller belongs to",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/groups",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "groups"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Pin / unpin a message",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/messages/{msg_id}/pin",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "messages",
                "{msg_id}",
                "pin"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Read receipts + delivery metadata for a message",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/messages/{msg_id}/info",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "messages",
                "{msg_id}",
                "info"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Rename a group or update its members",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/groups/{group_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "groups",
                "{group_id}"
              ]
            },
            "description": "Only the group creator or an admin can edit. The creator can never be removed.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Send a message to a teammate or group",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/messages",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "messages"
              ]
            },
            "description": "Pass exactly one target (`to_user_id` OR `group_id`). Body may be empty if `attachments` or `call_room_id` is set. `@username` mentions in the body are auto-extracted to `mentions[]`.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Star / unstar a message (per-user)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/messages/{msg_id}/star",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "messages",
                "{msg_id}",
                "star"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Toggle a reaction on a message",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/messages/{msg_id}/react",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "messages",
                "{msg_id}",
                "react"
              ]
            },
            "description": "Allowed emoji: \ud83d\udc4d \u2764\ufe0f \ud83d\ude02 \ud83d\ude2e \ud83d\ude22 \ud83d\ude4f \ud83d\udc4f \ud83d\udd25. Sending the same emoji a second time removes the reaction.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Translate a message via Claude Sonnet 4.5",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/messages/{msg_id}/translate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "messages",
                "{msg_id}",
                "translate"
              ]
            },
            "description": "Auto-detects the source language and returns translated text in the requested `target` language code (e.g. `es`, `fr`, `hi`, `ja`). Preserves @mentions, URLs, and emoji.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Unblock a teammate",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/block/{user_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "block",
                "{user_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Update org chat-settings (admin only)",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/organizations/me/chat-settings",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "organizations",
                "me",
                "chat-settings"
              ]
            },
            "description": "Configure the delete/edit window (in seconds) and whether delete-for-everyone is enabled at all.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Upload an attachment (\u226425 MB)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/upload",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "upload"
              ]
            },
            "description": "Multipart form upload. Returns a `{path, original_filename, content_type, size, kind}` envelope \u2014 pass this as one of the `attachments[]` when sending a message via `POST /api/team-chat/messages`.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Users",
      "description": "Team management \u2014 list teammates, invite new agents/supervisors (admin only).",
      "item": [
        {
          "name": "Edit a teammate's credentials + role (admin only)",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team/{user_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team",
                "{user_id}"
              ]
            },
            "description": "Update the target user's username, password, display name and/or role. All fields optional \u2014 send only what you want to change. If the user is bound to a Communication Seat, the seat card label is kept in sync automatically. Role changes are limited to `agent`, `supervisor`, `quality`; admins/owners cannot be edited from here.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Invite a new teammate (admin only)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team"
              ]
            },
            "description": "Creates a user with a username auto-generated from `name` (no email required). The admin then shares the username + password with the teammate privately. **Enforced server-side**: rejected with **402 Payment Required** if the org has no available seats \u2014 the admin must buy more via `POST /api/billing/seats/purchase` first.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List teammates (admin/supervisor only)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team"
              ]
            },
            "description": "Returns every user in the caller's organization including `calls_today` for each.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List teammates (for chat member pickers)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team-chat/members",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team-chat",
                "members"
              ]
            },
            "description": "Returns all teammates in the same org (excluding the caller). Any role can call.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Unassign a teammate from their Communication Seat (admin only)",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/team/{user_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "team",
                "{user_id}"
              ]
            },
            "description": "Removes the user AND frees their Communication Seat so the admin can assign it to a new staff member later. The seat itself stays in the org \u2014 numbers are permanent, only the person behind them changes. Owners cannot be removed. Admins cannot remove themselves (would lock the org out). Call history and SMS owned by the removed user remain intact (org-scoped).",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Voicemail",
      "description": "Voicemail capture & Whisper transcription. (P1 backlog \u2014 placeholder router.)",
      "item": [
        {
          "name": "Delete a voicemail",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/voicemail/{vid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "voicemail",
                "{vid}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Get a single voicemail",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/voicemail/{vid}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "voicemail",
                "{vid}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Get the org's business-hours config",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/voicemail/business-hours",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "voicemail",
                "business-hours"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "List voicemails (org-scoped)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/voicemail",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "voicemail"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "Returns the 200 most recent voicemails the caller can see (admin/supervisor: org-wide; agent: own).",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Mark a voicemail as heard",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/voicemail/{vid}/mark-read",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "voicemail",
                "{vid}",
                "mark-read"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Transcribe a voicemail via OpenAI Whisper",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/voicemail/{vid}/transcribe",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "voicemail",
                "{vid}",
                "transcribe"
              ]
            },
            "description": "Downloads the MP3 from the Twilio recording URL and runs it through `whisper-1`. Returns the transcript synchronously (typically 2-8s for a \u226460s message). Subsequent calls return the cached transcript.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Twilio voicemail-recording callback",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/twilio/voicemail",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "twilio",
                "voicemail"
              ]
            },
            "description": "Public Twilio callback fired when a voicemail recording finishes. Persists a row in the `voicemails` collection. The transcription step is **not** automatic \u2014 clients call `POST /api/voicemail/{id}/transcribe` to spend the Whisper credits on-demand."
          },
          "response": []
        },
        {
          "name": "Unread voicemail count",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/voicemail/unread-count",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "voicemail",
                "unread-count"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Update the org's business-hours config (admin only)",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/voicemail/business-hours",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "voicemail",
                "business-hours"
              ]
            },
            "description": "When `enabled=true`, every inbound call landing on `/api/twilio/voice` outside the window is sent straight to voicemail (skipping the agent ring stage).",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "Waitlist",
      "description": "",
      "item": [
        {
          "name": "Join Desktop Waitlist",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/waitlist/desktop",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "waitlist",
                "desktop"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Submit Enterprise Inquiry",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/waitlist/enterprise",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "waitlist",
                "enterprise"
              ]
            },
            "description": "Enterprise inquiry \u2014 public unauth POST from `/enterprise-inquiry`.\n\nStored in `desktop_waitlist` with kind=\"enterprise\". Owner Console lists it\nvia the existing waitlist page (with a kind filter). Also emits an email\nto `contact@hellobyflow.com` (Phase 4 wires the email template).",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        }
      ]
    },
    {
      "name": "identity",
      "description": "",
      "item": [
        {
          "name": "Detail on a single verification",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/identity/verifications/{verification_id}",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "identity",
                "verifications",
                "{verification_id}"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Force-poll the active provider (webhook fallback)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/identity/refresh",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "identity",
                "refresh"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Get identity verification settings",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/identity/settings",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "identity",
                "settings"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Manually approve or reject an inconclusive verification",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/identity/verifications/{verification_id}/override",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "identity",
                "verifications",
                "{verification_id}",
                "override"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Return the current user's identity verification state",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/identity/status",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "identity",
                "status"
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Review queue of identity verifications (filter by status)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/identity/verifications",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "identity",
                "verifications"
              ],
              "query": [
                {
                  "key": "status",
                  "value": "",
                  "disabled": true,
                  "description": ""
                },
                {
                  "key": "limit",
                  "value": "",
                  "disabled": true,
                  "description": ""
                }
              ]
            },
            "description": "",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Start (or resume) an identity verification session for the current user",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/identity/verification-session",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "identity",
                "verification-session"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Update identity verification settings",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/internal/identity/settings",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "internal",
                "identity",
                "settings"
              ]
            },
            "description": "",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{accessToken}}",
                  "type": "string"
                }
              ]
            }
          },
          "response": []
        },
        {
          "name": "Veriff decision webhook (HMAC-signed)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/identity/webhook/veriff",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "identity",
                "webhook",
                "veriff"
              ]
            },
            "description": ""
          },
          "response": []
        }
      ]
    }
  ]
}