{
  "product": "TokPortal API",
  "generatedAt": "2026-06-03T14:43:01.925Z",
  "canonicalUrls": {
    "docs": "https://developers.tokportal.com",
    "apiBaseUrl": "https://app.tokportal.com/api/ext",
    "openapiJson": "https://developers.tokportal.com/openapi.json",
    "openapiYaml": "https://developers.tokportal.com/openapi.yaml",
    "llms": "https://developers.tokportal.com/llms.txt",
    "llmsFull": "https://developers.tokportal.com/llms-full.txt",
    "developerEcosystem": "https://developers.tokportal.com/developer-ecosystem.json",
    "packageReleaseManifest": "https://developers.tokportal.com/package-release-manifest.json",
    "aiContext": "https://developers.tokportal.com/ai-context.json"
  },
  "authentication": {
    "header": "X-API-Key",
    "format": "sk_ followed by 64 lowercase hexadecimal characters",
    "storage": "Raw keys are shown once at creation and stored by TokPortal as SHA-256 hashes."
  },
  "apiVersion": "2026-05-25",
  "responseHeaders": {
    "apiVersion": "X-TokPortal-API-Version: 2026-05-25",
    "apiStability": "X-TokPortal-API-Stability: stable",
    "requestId": "X-TokPortal-Request-ID: req_...",
    "rateLimitLimit": "X-RateLimit-Limit: 120",
    "rateLimitRemaining": "X-RateLimit-Remaining: 119",
    "rateLimitReset": "X-RateLimit-Reset: 1779724800",
    "retryAfter": "Retry-After: 1",
    "idempotencyReplay": "Idempotent-Replayed: true"
  },
  "mentalModel": [
    {
      "name": "Profiles",
      "description": "API key owner and developer account context."
    },
    {
      "name": "Bundles",
      "description": "Account/video work orders grouped by platform and country."
    },
    {
      "name": "Accounts",
      "description": "Delivered social accounts with credentials and verification flows."
    },
    {
      "name": "Posts",
      "description": "Video slots configured, published, reviewed, and finalized inside bundles."
    }
  ],
  "developerSurfaces": {
    "sdkPackages": [
      {
        "language": "TypeScript",
        "surface": "sdk",
        "packageManager": "npm",
        "packageName": "@tokportal/node",
        "install": "npm install @tokportal/node",
        "repository": null,
        "status": "published_npm"
      },
      {
        "language": "Shell",
        "surface": "cli",
        "packageManager": "npm",
        "packageName": "@tokportal/cli",
        "install": "npm install -g @tokportal/cli",
        "repository": null,
        "status": "published_npm"
      },
      {
        "language": "MCP",
        "surface": "mcp",
        "packageManager": "npm",
        "packageName": "tokportal-mcp",
        "install": "npx tokportal-mcp",
        "repository": null,
        "status": "published_npm"
      }
    ],
    "deferredSdks": [
      {
        "language": "Python",
        "status": "deferred_until_pypi_release"
      },
      {
        "language": "Go",
        "status": "deferred_until_public_module_repo"
      },
      {
        "language": "Ruby",
        "status": "deferred_until_partner_demand"
      },
      {
        "language": "Java",
        "status": "deferred_until_partner_demand"
      },
      {
        "language": "PHP",
        "status": "deferred_until_partner_demand"
      },
      {
        "language": ".NET",
        "status": "deferred_until_partner_demand"
      },
      {
        "language": "Rust",
        "status": "deferred_until_partner_demand"
      }
    ],
    "releasePackages": [
      {
        "surface": "sdk",
        "language": "TypeScript",
        "packageManager": "npm",
        "packageName": "@tokportal/node",
        "install": "npm install @tokportal/node",
        "sourcePath": "packages/tokportal-node",
        "repository": null,
        "status": "published_npm",
        "buildCommand": "npm run build",
        "publishCommand": "npm publish --provenance --access public",
        "requiredFiles": [
          "package.json",
          "README.md",
          "src/index.ts",
          "src/generated.ts"
        ]
      },
      {
        "surface": "cli",
        "language": "Shell",
        "packageManager": "npm",
        "packageName": "@tokportal/cli",
        "install": "npm install -g @tokportal/cli",
        "sourcePath": "packages/tokportal-cli",
        "repository": null,
        "status": "published_npm",
        "buildCommand": "npm run build",
        "publishCommand": "npm publish --provenance --access public",
        "requiredFiles": [
          "package.json",
          "README.md",
          "src/index.ts",
          "src/generated.ts"
        ]
      },
      {
        "surface": "mcp",
        "language": "MCP",
        "packageManager": "npm",
        "packageName": "tokportal-mcp",
        "install": "npx tokportal-mcp",
        "sourcePath": "packages/tokportal-mcp",
        "repository": null,
        "status": "published_npm",
        "buildCommand": "npm run build",
        "publishCommand": "npm publish --provenance --access public",
        "requiredFiles": [
          "package.json",
          "README.md",
          "src/index.ts",
          "src/generated.ts"
        ]
      }
    ],
    "mcpTools": 78,
    "cliCommands": 78
  },
  "docsPages": [
    {
      "title": "Social Media Account Creation API – Overview",
      "section": "api",
      "source": "api/01-getting-started/00-overview.md",
      "url": "https://developers.tokportal.com/overview"
    },
    {
      "title": "API Authentication & API Keys",
      "section": "api",
      "source": "api/01-getting-started/01-authentication.md",
      "url": "https://developers.tokportal.com/authentication"
    },
    {
      "title": "API Credits & Pricing Per Operation",
      "section": "api",
      "source": "api/01-getting-started/02-credits.md",
      "url": "https://developers.tokportal.com/credits"
    },
    {
      "title": "API Error Codes & Troubleshooting",
      "section": "api",
      "source": "api/01-getting-started/03-errors.md",
      "url": "https://developers.tokportal.com/errors"
    },
    {
      "title": "Rate Limits, Pagination & Idempotency",
      "section": "api",
      "source": "api/01-getting-started/04-rate-limits.md",
      "url": "https://developers.tokportal.com/rate-limits"
    },
    {
      "title": "Getting Started – First API Call in 5 Minutes",
      "section": "api",
      "source": "api/01-getting-started/05-getting-started.md",
      "url": "https://developers.tokportal.com/getting-started"
    },
    {
      "title": "OpenAPI, SDKs, CLI & MCP",
      "section": "api",
      "source": "api/01-getting-started/06-sdks-cli.md",
      "url": "https://developers.tokportal.com/sdks-cli"
    },
    {
      "title": "AI Context",
      "section": "api",
      "source": "api/01-getting-started/07-ai-context.md",
      "url": "https://developers.tokportal.com/ai-context"
    },
    {
      "title": "Versioning & Stability",
      "section": "api",
      "source": "api/01-getting-started/08-versioning.md",
      "url": "https://developers.tokportal.com/versioning"
    },
    {
      "title": "Changelog",
      "section": "api",
      "source": "api/01-getting-started/99-changelog.md",
      "url": "https://developers.tokportal.com/changelog"
    },
    {
      "title": "Bundles – Campaign Management API",
      "section": "api",
      "source": "api/02-bundles/10-bundles.md",
      "url": "https://developers.tokportal.com/bundles"
    },
    {
      "title": "Create Bundle - Provision Accounts & Videos",
      "section": "api",
      "source": "api/02-bundles/11-create-bundle.md",
      "url": "https://developers.tokportal.com/create-bundle"
    },
    {
      "title": "Create Bulk - Multiple Bundles",
      "section": "api",
      "source": "api/02-bundles/12-create-bulk.md",
      "url": "https://developers.tokportal.com/create-bulk"
    },
    {
      "title": "Publish & Unpublish Bundles via API",
      "section": "api",
      "source": "api/02-bundles/13-publish-unpublish.md",
      "url": "https://developers.tokportal.com/publish-unpublish"
    },
    {
      "title": "Account Configuration – Profile Setup API",
      "section": "api",
      "source": "api/03-account-config/20-accounts.md",
      "url": "https://developers.tokportal.com/account-configuration"
    },
    {
      "title": "Account Review & Approval Actions",
      "section": "api",
      "source": "api/03-account-config/21-account-actions.md",
      "url": "https://developers.tokportal.com/account-actions"
    },
    {
      "title": "Video Management – Types, Formats & Statuses",
      "section": "api",
      "source": "api/04-videos/30-videos.md",
      "url": "https://developers.tokportal.com/videos"
    },
    {
      "title": "Configure Videos – Metadata & Scheduling API",
      "section": "api",
      "source": "api/04-videos/31-configure-videos.md",
      "url": "https://developers.tokportal.com/configure-videos"
    },
    {
      "title": "CSV Import – Bulk Video Upload from Spreadsheet",
      "section": "api",
      "source": "api/04-videos/32-csv-import.md",
      "url": "https://developers.tokportal.com/csv-import"
    },
    {
      "title": "Video Actions – Publish, Finalize & Corrections",
      "section": "api",
      "source": "api/04-videos/33-video-actions.md",
      "url": "https://developers.tokportal.com/video-actions"
    },
    {
      "title": "Fix Broken Video Download Links",
      "section": "api",
      "source": "api/04-videos/34-fix-download-link.md",
      "url": "https://developers.tokportal.com/fix-download-link"
    },
    {
      "title": "Delivered Accounts – Credentials & Verification Codes",
      "section": "api",
      "source": "api/05-accounts/40-saved-accounts.md",
      "url": "https://developers.tokportal.com/saved-accounts"
    },
    {
      "title": "Account Edit Request – Profile Updates via API",
      "section": "api",
      "source": "api/05-accounts/41-account-edit-request.md",
      "url": "https://developers.tokportal.com/account-edit-request"
    },
    {
      "title": "Analytics API – Analytics v2",
      "section": "api",
      "source": "api/06-analytics/50-analytics.md",
      "url": "https://developers.tokportal.com/analytics"
    },
    {
      "title": "Media Upload – Videos & Images via Presigned URLs",
      "section": "api",
      "source": "api/07-media-upload/60-media-upload.md",
      "url": "https://developers.tokportal.com/media-upload"
    },
    {
      "title": "MCP Server – AI Integration for Cursor & Claude",
      "section": "api",
      "source": "api/08-mcp/70-mcp.md",
      "url": "https://developers.tokportal.com/mcp"
    },
    {
      "title": "OpenClaw Skill – AI Social Media Automation",
      "section": "api",
      "source": "api/09-openclaw/80-openclaw.md",
      "url": "https://developers.tokportal.com/openclaw"
    },
    {
      "title": "Comments – Overview & Lifecycle",
      "section": "api",
      "source": "api/10-comments/60-overview.md",
      "url": "https://developers.tokportal.com/comments-overview"
    },
    {
      "title": "Create Comments – Single & Batch",
      "section": "api",
      "source": "api/10-comments/61-create.md",
      "url": "https://developers.tokportal.com/create-comments"
    },
    {
      "title": "List & Read Comment Tasks",
      "section": "api",
      "source": "api/10-comments/62-list-and-read.md",
      "url": "https://developers.tokportal.com/list-and-read-comments"
    },
    {
      "title": "Approve & Dispute – Review Flow",
      "section": "api",
      "source": "api/10-comments/63-review-flow.md",
      "url": "https://developers.tokportal.com/comments-review-flow"
    },
    {
      "title": "Verifier Timeline – Verbose Audit",
      "section": "api",
      "source": "api/10-comments/64-verifications.md",
      "url": "https://developers.tokportal.com/comments-verifications"
    },
    {
      "title": "Webhooks",
      "section": "api",
      "source": "api/11-webhooks/70-webhooks.md",
      "url": "https://developers.tokportal.com/webhooks"
    },
    {
      "title": "API Reference",
      "section": "api",
      "source": "api/12-openapi-reference/90-openapi-reference.md",
      "url": "https://developers.tokportal.com/api-reference"
    },
    {
      "title": "TokPortal + n8n - TikTok Workflow via HTTP",
      "section": "use-cases",
      "source": "use-cases/01-no-code/90-n8n-tiktok-automation.md",
      "url": "https://developers.tokportal.com/use-cases/n8n-tiktok-automation"
    },
    {
      "title": "TokPortal + Zapier - Social Campaigns via Webhooks",
      "section": "use-cases",
      "source": "use-cases/01-no-code/96-zapier-social-media-automation.md",
      "url": "https://developers.tokportal.com/use-cases/zapier-social-media-automation"
    },
    {
      "title": "TokPortal + Make - TikTok Workflow via HTTP",
      "section": "use-cases",
      "source": "use-cases/01-no-code/make-tiktok-automation.md",
      "url": "https://developers.tokportal.com/use-cases/make-tiktok-automation"
    },
    {
      "title": "TokPortal + OpenClaw",
      "section": "use-cases",
      "source": "use-cases/02-ai-agents/91-openclaw-tiktok.md",
      "url": "https://developers.tokportal.com/use-cases/openclaw-tiktok-posting"
    },
    {
      "title": "TokPortal MCP Server for Cursor",
      "section": "use-cases",
      "source": "use-cases/02-ai-agents/92-cursor-mcp-tiktok.md",
      "url": "https://developers.tokportal.com/use-cases/cursor-mcp-tiktok"
    },
    {
      "title": "TokPortal + Claude via MCP",
      "section": "use-cases",
      "source": "use-cases/02-ai-agents/95-claude-code-social-media.md",
      "url": "https://developers.tokportal.com/use-cases/claude-code-social-media"
    },
    {
      "title": "Create Instagram Account Bundles with TokPortal API",
      "section": "use-cases",
      "source": "use-cases/03-platform-guides/93-create-instagram-accounts-api.md",
      "url": "https://developers.tokportal.com/use-cases/create-instagram-accounts-api"
    },
    {
      "title": "Order a US TikTok Workflow with TokPortal API",
      "section": "use-cases",
      "source": "use-cases/03-platform-guides/94-post-us-tiktok-from-abroad.md",
      "url": "https://developers.tokportal.com/use-cases/post-us-tiktok-from-abroad"
    },
    {
      "title": "Bulk TikTok Bundle Creation API",
      "section": "use-cases",
      "source": "use-cases/03-platform-guides/97-bulk-tiktok-accounts-api.md",
      "url": "https://developers.tokportal.com/use-cases/bulk-tiktok-accounts-api"
    },
    {
      "title": "Python Quickstart - TokPortal API",
      "section": "use-cases",
      "source": "use-cases/03-platform-guides/python-quickstart.md",
      "url": "https://developers.tokportal.com/use-cases/python-quickstart"
    },
    {
      "title": "TokPortal API for Agencies",
      "section": "use-cases",
      "source": "use-cases/04-industry/98-agency-multi-client.md",
      "url": "https://developers.tokportal.com/use-cases/agency-multi-client-management"
    },
    {
      "title": "DTC Multi-Market Launch",
      "section": "use-cases",
      "source": "use-cases/04-industry/dtc-multi-market-launch.md",
      "url": "https://developers.tokportal.com/use-cases/dtc-multi-market-launch"
    },
    {
      "title": "Music Promotion on TikTok with TokPortal",
      "section": "use-cases",
      "source": "use-cases/04-industry/music-promotion-tiktok.md",
      "url": "https://developers.tokportal.com/use-cases/music-promotion-tiktok"
    },
    {
      "title": "Product Seeding Workflows for TikTok",
      "section": "use-cases",
      "source": "use-cases/04-industry/tiktok-shop-product-seeding.md",
      "url": "https://developers.tokportal.com/use-cases/tiktok-shop-product-seeding"
    },
    {
      "title": "UGC Distribution at Scale",
      "section": "use-cases",
      "source": "use-cases/04-industry/ugc-distribution-at-scale.md",
      "url": "https://developers.tokportal.com/use-cases/ugc-distribution-at-scale"
    },
    {
      "title": "TokPortal Use Cases & Integrations",
      "section": "use-cases",
      "source": "use-cases/index.md",
      "url": "https://developers.tokportal.com/use-cases/"
    }
  ],
  "operations": [
    {
      "method": "GET",
      "route": "/me",
      "operationId": "getCurrentUser",
      "summary": "Get authenticated user",
      "tags": [
        "Profile"
      ]
    },
    {
      "method": "GET",
      "route": "/countries",
      "operationId": "listCountries",
      "summary": "List available countries",
      "tags": [
        "Reference"
      ]
    },
    {
      "method": "GET",
      "route": "/platforms",
      "operationId": "listPlatforms",
      "summary": "List available platforms",
      "tags": [
        "Reference"
      ]
    },
    {
      "method": "GET",
      "route": "/credit-costs",
      "operationId": "getCreditCosts",
      "summary": "Get credit pricing",
      "tags": [
        "Credits"
      ]
    },
    {
      "method": "GET",
      "route": "/credits/balance",
      "operationId": "getCreditBalance",
      "summary": "Get credit balance",
      "tags": [
        "Credits"
      ]
    },
    {
      "method": "GET",
      "route": "/credits/history",
      "operationId": "listCreditTransactions",
      "summary": "List credit transactions",
      "tags": [
        "Credits"
      ]
    },
    {
      "method": "GET",
      "route": "/bundles",
      "operationId": "listBundles",
      "summary": "List bundles",
      "tags": [
        "Bundles"
      ]
    },
    {
      "method": "POST",
      "route": "/bundles",
      "operationId": "createBundle",
      "summary": "Create a bundle",
      "tags": [
        "Bundles"
      ]
    },
    {
      "method": "POST",
      "route": "/bundles/bulk",
      "operationId": "createBundlesBulk",
      "summary": "Create bundles in bulk",
      "tags": [
        "Bundles"
      ]
    },
    {
      "method": "GET",
      "route": "/bundles/{id}",
      "operationId": "getBundle",
      "summary": "Get a bundle",
      "tags": [
        "Bundles"
      ]
    },
    {
      "method": "PATCH",
      "route": "/bundles/{id}",
      "operationId": "updateBundle",
      "summary": "Update bundle settings",
      "tags": [
        "Bundles"
      ]
    },
    {
      "method": "POST",
      "route": "/bundles/{id}/publish",
      "operationId": "publishBundle",
      "summary": "Publish a bundle",
      "tags": [
        "Bundles"
      ]
    },
    {
      "method": "GET",
      "route": "/bundles/{id}/publish-readiness",
      "operationId": "getBundlePublishReadiness",
      "summary": "Check bundle publish readiness",
      "tags": [
        "Bundles"
      ]
    },
    {
      "method": "POST",
      "route": "/bundles/{id}/unpublish",
      "operationId": "unpublishBundle",
      "summary": "Unpublish a bundle",
      "tags": [
        "Bundles"
      ]
    },
    {
      "method": "POST",
      "route": "/bundles/{id}/add-video-slots",
      "operationId": "addVideoSlots",
      "summary": "Add video slots to a bundle",
      "tags": [
        "Bundles"
      ]
    },
    {
      "method": "POST",
      "route": "/bundles/{id}/add-edit-slots",
      "operationId": "addEditSlots",
      "summary": "Add edit slots to a bundle",
      "tags": [
        "Bundles"
      ]
    },
    {
      "method": "GET",
      "route": "/bundles/{id}/account",
      "operationId": "getBundleAccount",
      "summary": "Get bundle account configuration",
      "tags": [
        "Account Configuration"
      ]
    },
    {
      "method": "PUT",
      "route": "/bundles/{id}/account",
      "operationId": "configureBundleAccount",
      "summary": "Configure bundle account profile",
      "tags": [
        "Account Configuration"
      ]
    },
    {
      "method": "POST",
      "route": "/bundles/{id}/account/corrections",
      "operationId": "requestBundleAccountCorrections",
      "summary": "Request account corrections",
      "tags": [
        "Account Configuration"
      ]
    },
    {
      "method": "POST",
      "route": "/bundles/{id}/account/finalize",
      "operationId": "finalizeBundleAccount",
      "summary": "Finalize account review",
      "tags": [
        "Account Configuration"
      ]
    },
    {
      "method": "GET",
      "route": "/bundles/{id}/videos",
      "operationId": "listBundleVideos",
      "summary": "List bundle video slots",
      "tags": [
        "Videos"
      ]
    },
    {
      "method": "GET",
      "route": "/bundles/{id}/videos/{position}",
      "operationId": "getBundleVideo",
      "summary": "Get video slot configuration",
      "tags": [
        "Videos"
      ]
    },
    {
      "method": "PUT",
      "route": "/bundles/{id}/videos/{position}",
      "operationId": "configureBundleVideo",
      "summary": "Configure a video slot",
      "tags": [
        "Videos"
      ]
    },
    {
      "method": "PATCH",
      "route": "/bundles/{id}/videos/{position}",
      "operationId": "patchBundleVideo",
      "summary": "Patch video references",
      "tags": [
        "Videos"
      ]
    },
    {
      "method": "PUT",
      "route": "/bundles/{id}/videos/batch",
      "operationId": "batchConfigureBundleVideos",
      "summary": "Configure video slots in bulk",
      "tags": [
        "Videos"
      ]
    },
    {
      "method": "POST",
      "route": "/bundles/{id}/videos/publish-all",
      "operationId": "publishAllBundleVideos",
      "summary": "Publish all configured videos on an active bundle",
      "tags": [
        "Videos"
      ]
    },
    {
      "method": "POST",
      "route": "/bundles/{id}/videos/import-csv",
      "operationId": "importBundleVideosCsv",
      "summary": "Import video slots from CSV",
      "tags": [
        "Videos"
      ]
    },
    {
      "method": "POST",
      "route": "/bundles/{id}/videos/{position}/publish",
      "operationId": "publishBundleVideo",
      "summary": "Publish one video slot",
      "tags": [
        "Videos"
      ]
    },
    {
      "method": "POST",
      "route": "/bundles/{id}/videos/{position}/reset",
      "operationId": "resetBundleVideo",
      "summary": "Reset one video slot",
      "tags": [
        "Videos"
      ]
    },
    {
      "method": "POST",
      "route": "/bundles/{id}/videos/{position}/unschedule",
      "operationId": "unscheduleBundleVideo",
      "summary": "Unschedule one video slot",
      "tags": [
        "Videos"
      ]
    },
    {
      "method": "POST",
      "route": "/bundles/{id}/videos/{position}/finalize",
      "operationId": "finalizeBundleVideo",
      "summary": "Finalize video review",
      "tags": [
        "Videos"
      ]
    },
    {
      "method": "POST",
      "route": "/bundles/{id}/videos/{position}/corrections",
      "operationId": "requestBundleVideoCorrections",
      "summary": "Request video corrections",
      "tags": [
        "Videos"
      ]
    },
    {
      "method": "POST",
      "route": "/bundles/{id}/videos/{position}/fix-download",
      "operationId": "fixBundleVideoDownload",
      "summary": "Fix a broken video download",
      "tags": [
        "Videos"
      ]
    },
    {
      "method": "GET",
      "route": "/accounts",
      "operationId": "listAccounts",
      "summary": "List delivered accounts",
      "tags": [
        "Accounts"
      ]
    },
    {
      "method": "GET",
      "route": "/accounts/{id}",
      "operationId": "getAccount",
      "summary": "Get a delivered account",
      "tags": [
        "Accounts"
      ]
    },
    {
      "method": "GET",
      "route": "/accounts/{id}/bundles",
      "operationId": "listAccountBundles",
      "summary": "List bundles for a delivered account",
      "tags": [
        "Accounts"
      ]
    },
    {
      "method": "POST",
      "route": "/accounts/{id}/verification-code",
      "operationId": "retrieveAccountVerificationCode",
      "summary": "Retrieve latest account verification code",
      "tags": [
        "Accounts"
      ]
    },
    {
      "method": "POST",
      "route": "/accounts/{id}/reveal-credentials",
      "operationId": "revealAccountCredentials",
      "summary": "Reveal delivered account credentials",
      "tags": [
        "Accounts"
      ]
    },
    {
      "method": "GET",
      "route": "/accounts/{id}/analytics/can-refresh",
      "operationId": "canRefreshAccountAnalytics",
      "summary": "Check analytics refresh availability",
      "tags": [
        "Analytics"
      ]
    },
    {
      "method": "POST",
      "route": "/accounts/{id}/analytics/refresh",
      "operationId": "refreshAccountAnalytics",
      "summary": "Refresh account analytics",
      "tags": [
        "Analytics"
      ]
    },
    {
      "method": "GET",
      "route": "/accounts/{id}/edit-request",
      "operationId": "getAccountEditRequest",
      "summary": "Get active account edit request",
      "tags": [
        "Accounts"
      ]
    },
    {
      "method": "POST",
      "route": "/accounts/{id}/edit-request",
      "operationId": "createAccountEditRequest",
      "summary": "Request profile edits for a delivered account",
      "tags": [
        "Accounts"
      ]
    },
    {
      "method": "GET",
      "route": "/webhooks/events",
      "operationId": "listWebhookEvents",
      "summary": "List webhook event catalog",
      "tags": [
        "Webhooks"
      ]
    },
    {
      "method": "GET",
      "route": "/webhooks",
      "operationId": "listWebhookEndpoints",
      "summary": "List webhook endpoints",
      "tags": [
        "Webhooks"
      ]
    },
    {
      "method": "POST",
      "route": "/webhooks",
      "operationId": "createWebhookEndpoint",
      "summary": "Create a webhook endpoint",
      "tags": [
        "Webhooks"
      ]
    },
    {
      "method": "GET",
      "route": "/webhooks/{id}",
      "operationId": "getWebhookEndpoint",
      "summary": "Get a webhook endpoint",
      "tags": [
        "Webhooks"
      ]
    },
    {
      "method": "PATCH",
      "route": "/webhooks/{id}",
      "operationId": "updateWebhookEndpoint",
      "summary": "Update a webhook endpoint",
      "tags": [
        "Webhooks"
      ]
    },
    {
      "method": "DELETE",
      "route": "/webhooks/{id}",
      "operationId": "deleteWebhookEndpoint",
      "summary": "Delete a webhook endpoint",
      "tags": [
        "Webhooks"
      ]
    },
    {
      "method": "GET",
      "route": "/webhooks/{id}/deliveries",
      "operationId": "listWebhookDeliveries",
      "summary": "List webhook deliveries",
      "tags": [
        "Webhooks"
      ]
    },
    {
      "method": "POST",
      "route": "/webhooks/{id}/deliveries/{delivery_id}/retry",
      "operationId": "retryWebhookDelivery",
      "summary": "Retry a webhook delivery",
      "tags": [
        "Webhooks"
      ]
    },
    {
      "method": "POST",
      "route": "/webhooks/{id}/test",
      "operationId": "testWebhookEndpoint",
      "summary": "Send a test webhook",
      "tags": [
        "Webhooks"
      ]
    },
    {
      "method": "POST",
      "route": "/upload/video",
      "operationId": "uploadVideo",
      "summary": "Create a video upload URL",
      "tags": [
        "Uploads"
      ]
    },
    {
      "method": "POST",
      "route": "/upload/video/direct",
      "operationId": "uploadVideoDirect",
      "summary": "Upload a video file directly",
      "tags": [
        "Uploads"
      ]
    },
    {
      "method": "POST",
      "route": "/upload/image",
      "operationId": "uploadImage",
      "summary": "Create an image upload URL",
      "tags": [
        "Uploads"
      ]
    },
    {
      "method": "POST",
      "route": "/upload/image/direct",
      "operationId": "uploadImageDirect",
      "summary": "Upload an image file directly",
      "tags": [
        "Uploads"
      ]
    },
    {
      "method": "POST",
      "route": "/upload/image/from-url",
      "operationId": "uploadImageFromUrl",
      "summary": "Import an image from URL",
      "tags": [
        "Uploads"
      ]
    },
    {
      "method": "GET",
      "route": "/analytics",
      "operationId": "getAnalyticsDashboard",
      "summary": "Get analytics dashboard",
      "tags": [
        "Analytics"
      ]
    },
    {
      "method": "GET",
      "route": "/analytics/contract",
      "operationId": "getAnalyticsContract",
      "summary": "Get analytics data contract",
      "tags": [
        "Analytics"
      ]
    },
    {
      "method": "GET",
      "route": "/analytics/export/videos",
      "operationId": "exportAnalyticsVideos",
      "summary": "Export analytics videos CSV",
      "tags": [
        "Analytics"
      ]
    },
    {
      "method": "POST",
      "route": "/analytics/export/reports",
      "operationId": "createAnalyticsReport",
      "summary": "Create analytics web report",
      "tags": [
        "Analytics"
      ]
    },
    {
      "method": "POST",
      "route": "/analytics/export/reports/html",
      "operationId": "exportAnalyticsReportHtml",
      "summary": "Export analytics report HTML",
      "tags": [
        "Analytics"
      ]
    },
    {
      "method": "GET",
      "route": "/analytics/series",
      "operationId": "getAnalyticsSeries",
      "summary": "Get analytics time series",
      "tags": [
        "Analytics"
      ]
    },
    {
      "method": "GET",
      "route": "/analytics/accounts/{id}",
      "operationId": "getAnalyticsAccount",
      "summary": "Get account analytics drilldown",
      "tags": [
        "Analytics"
      ]
    },
    {
      "method": "POST",
      "route": "/analytics/accounts/{id}/refresh",
      "operationId": "refreshAnalyticsAccount",
      "summary": "Refresh analytics account",
      "tags": [
        "Analytics"
      ]
    },
    {
      "method": "GET",
      "route": "/analytics/accounts/{id}/raw",
      "operationId": "listAnalyticsAccountRawSnapshots",
      "summary": "List raw account analytics snapshots",
      "tags": [
        "Analytics"
      ]
    },
    {
      "method": "GET",
      "route": "/accounts/{id}/analytics",
      "operationId": "getAccountAnalytics",
      "summary": "Get account analytics compatibility view",
      "tags": [
        "Analytics"
      ]
    },
    {
      "method": "GET",
      "route": "/accounts/{id}/analytics/videos",
      "operationId": "listAccountVideoAnalytics",
      "summary": "List post analytics for an account",
      "tags": [
        "Analytics"
      ]
    },
    {
      "method": "GET",
      "route": "/videos/{id}/analytics",
      "operationId": "getVideoAnalytics",
      "summary": "Get single video analytics",
      "tags": [
        "Analytics"
      ]
    },
    {
      "method": "GET",
      "route": "/analytics/comments",
      "operationId": "getCommentPulse",
      "summary": "Get comment pulse analytics",
      "tags": [
        "Analytics"
      ]
    },
    {
      "method": "GET",
      "route": "/analytics/accounts/{id}/comments",
      "operationId": "listAnalyticsAccountComments",
      "summary": "List comments for an account post",
      "tags": [
        "Analytics"
      ]
    },
    {
      "method": "GET",
      "route": "/analytics/posts/{id}/raw",
      "operationId": "listAnalyticsPostRawSnapshots",
      "summary": "List raw post analytics snapshots",
      "tags": [
        "Analytics"
      ]
    },
    {
      "method": "GET",
      "route": "/comments",
      "operationId": "listCommentTasks",
      "summary": "List comment tasks",
      "tags": [
        "Comments"
      ]
    },
    {
      "method": "POST",
      "route": "/comments",
      "operationId": "createCommentTasks",
      "summary": "Create comment tasks",
      "tags": [
        "Comments"
      ]
    },
    {
      "method": "GET",
      "route": "/comments/{id}",
      "operationId": "getCommentTask",
      "summary": "Get a comment task",
      "tags": [
        "Comments"
      ]
    },
    {
      "method": "DELETE",
      "route": "/comments/{id}",
      "operationId": "deleteCommentTask",
      "summary": "Delete a comment task",
      "tags": [
        "Comments"
      ]
    },
    {
      "method": "POST",
      "route": "/comments/{id}/approve",
      "operationId": "approveCommentTask",
      "summary": "Approve a manually confirmed comment task",
      "tags": [
        "Comments"
      ]
    },
    {
      "method": "POST",
      "route": "/comments/{id}/dispute",
      "operationId": "disputeCommentTask",
      "summary": "Dispute a manually confirmed comment task",
      "tags": [
        "Comments"
      ]
    },
    {
      "method": "GET",
      "route": "/comments/{id}/verifications",
      "operationId": "listCommentTaskVerifications",
      "summary": "List comment task verification events",
      "tags": [
        "Comments"
      ]
    }
  ],
  "aiFeatures": {
    "copyForAi": "Every generated docs page includes a Copy for AI button that copies page context with source URL.",
    "askAi": "The docs include a TokPortal AI chat drawer backed by OpenAI Responses API streaming and generated docs context.",
    "llmCorpus": "llms-full.txt contains the generated API reference, docs pages, use cases, and OpenAPI summary."
  }
}
