{
  "info": {
    "name": "WaSparks Social API v1 (partner, operator mode)",
    "description": "Generated from the WaSparks Social OpenAPI spec (https://connect.social.wasparks.com/v3/api-docs), in operator mode.\n\nONE credential: your PARTNER key, in the partner_key variable. Partner endpoints (/v1/partner/**) use it alone. Content endpoints (everything else) use it plus the X-Tenant-Id header = the org's external_ref (the tenant_ref variable) - that header is pre-filled on every content request. Start with the Quickstart folder; its tests capture ids (org_id, tenant_ref, session_id, account_id, media_id, post_id) as you go.\n\nPer-org keys are still available (folder 'Org API keys') if you prefer them: use that key as the bearer and drop the X-Tenant-Id header.\n\nDocs: https://docs.social.wasparks.com/",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "item": [
    {
      "name": "0 - Quickstart (run in order)",
      "item": [
        {
          "name": "01 - GET /v1/partner/plans",
          "request": {
            "description": {
              "content": "Lists the plans you may put orgs on: your own and the platform's. All plans come on one page. Permission: `[plans:read]`. No errors specific to this operation.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "partner",
                "plans"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{baseUrl}}/v1/partner/plans"
            },
            "header": [],
            "method": "GET"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('200', () => pm.response.to.have.status(200));",
                  "const j = pm.response.json(); const d = j.data || j;",
                  "if (d[0] && d[0].code) pm.collectionVariables.set('plan_code', d[0].code);"
                ]
              }
            }
          ]
        },
        {
          "name": "02 - POST /v1/partner/orgs",
          "request": {
            "description": "Create one client org. Set external_ref to YOUR id for that client - it becomes the X-Tenant-Id you send on every content request for that client.",
            "url": {
              "path": [
                "v1",
                "partner",
                "orgs"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{baseUrl}}/v1/partner/orgs"
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Acme Coffee\",\n  \"external_ref\": \"acme-coffee-42\",\n  \"plan_code\": \"{{plan_code}}\",\n  \"timezone\": \"Europe/Amsterdam\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('created', () => pm.expect(pm.response.code).to.be.oneOf([200, 201]));",
                  "const j = pm.response.json();",
                  "if (j.id) pm.collectionVariables.set('org_id', j.id);",
                  "if (j.external_ref) pm.collectionVariables.set('tenant_ref', j.external_ref);",
                  "console.log('tenant_ref is now ' + j.external_ref + ' - every content request below acts on this org');"
                ]
              }
            }
          ]
        },
        {
          "name": "03 - POST /v1/partner/redirect-uris",
          "request": {
            "description": "The HTTPS URL in your app that users return to after the Facebook/LinkedIn consent screen. Applies to all your orgs.",
            "url": {
              "path": [
                "v1",
                "partner",
                "redirect-uris"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{baseUrl}}/v1/partner/redirect-uris"
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"uri\": \"https://app.acmecoffee.example/social/connected\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "04 - GET /v1/org",
          "request": {
            "description": "Same partner key, plus X-Tenant-Id - you are now acting as that org. 400 tenant_required if the header is missing; 404 if the ref is not one of your orgs.",
            "url": {
              "path": [
                "v1",
                "org"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{baseUrl}}/v1/org"
            },
            "header": [
              {
                "key": "X-Tenant-Id",
                "value": "{{tenant_ref}}",
                "type": "text",
                "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
              }
            ],
            "method": "GET"
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "pm.test('200 - acting as the org', () => pm.response.to.have.status(200));"
                ]
              }
            }
          ]
        },
        {
          "name": "05 - POST /v1/connect/sessions",
          "request": {
            "description": {
              "content": "Starts embedded OAuth: redirect your user's browser to the returned `url`. After consenting they come back to `redirect_uri` with `session_id` and `status`; then read the session and connect the accounts they pick. Guide: `/guides/connect/`. Permission: `[accounts:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 validation_failed` (`redirect_uri` not on the allow-list, or an unknown feature), `404 not_found` (unknown `workspace_id`).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "connect",
                "sessions"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{baseUrl}}/v1/connect/sessions"
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Id",
                "value": "{{tenant_ref}}",
                "type": "text",
                "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"platform\": \"meta\",\n  \"redirect_uri\": \"https://app.acmecoffee.example/social/connected\",\n  \"features\": [\n    \"publishing\",\n    \"comments\",\n    \"messaging\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const j = pm.response.json(); if (j.id) pm.collectionVariables.set('session_id', j.id);",
                  "console.log('Send the user to: ' + j.url);"
                ]
              }
            }
          ]
        },
        {
          "name": "06 - GET /v1/connect/sessions/:sessionId",
          "request": {
            "description": {
              "content": "Returns the session's status and, once `READY`, the accounts the user granted with what each will be able to do. A session expires 15 minutes after it was created. Permission: `[accounts:read]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found` (unknown or expired session).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "connect",
                "sessions",
                ":sessionId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "{{session_id}}",
                  "key": "sessionId",
                  "description": "(Required) The connect session's id, as `POST /v1/connect/sessions` returned it and as it comes back on your `redirect_uri`."
                }
              ],
              "raw": "{{baseUrl}}/v1/connect/sessions/:sessionId"
            },
            "header": [
              {
                "key": "X-Tenant-Id",
                "value": "{{tenant_ref}}",
                "type": "text",
                "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
              }
            ],
            "method": "GET"
          }
        },
        {
          "name": "07 - POST /v1/connect/sessions/:sessionId/accounts",
          "request": {
            "description": {
              "content": "Connects the granted accounts you pick by `external_id` and returns them; one the org already has is refreshed rather than added twice. Each account counts against the `social_accounts` limit and sends `account.connected`; the session is then `COMPLETED`. Permission: `[accounts:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 validation_failed` (an `external_id` that was not granted), `402 quota_exceeded` (`social_accounts`), `404 not_found`, `409 invalid_state` (the session is not `READY`).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "connect",
                "sessions",
                ":sessionId",
                "accounts"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "{{session_id}}",
                  "key": "sessionId",
                  "description": "(Required) The connect session's id, as `POST /v1/connect/sessions` returned it and as it comes back on your `redirect_uri`."
                }
              ],
              "raw": "{{baseUrl}}/v1/connect/sessions/:sessionId/accounts"
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Id",
                "value": "{{tenant_ref}}",
                "type": "text",
                "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"external_ids\": [\n    \"104857600123456\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const j = pm.response.json(); const d = j.data || j;",
                  "if (d[0] && d[0].id) pm.collectionVariables.set('account_id', d[0].id);"
                ]
              }
            }
          ]
        },
        {
          "name": "08 - GET /v1/accounts",
          "request": {
            "description": {
              "content": "Lists the org's accounts, disconnected ones included, optionally filtered by platform, status or workspace. All come on one page. Permission: `[accounts:read]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found` (unknown `workspace_id`).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "accounts"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "platform",
                  "value": "INSTAGRAM",
                  "description": "Only accounts on this platform: `FACEBOOK_PAGE`, `INSTAGRAM`, `LINKEDIN_ORGANIZATION` or `LINKEDIN_PROFILE`."
                },
                {
                  "disabled": true,
                  "key": "status",
                  "value": "CONNECTED",
                  "description": "Only accounts in this status: `CONNECTED`, `NEEDS_REAUTH` or `DISCONNECTED`."
                },
                {
                  "disabled": true,
                  "key": "workspace_id",
                  "value": "0192a7c1-5d2e-7a10-9c4b-2f6e8d1a3b02",
                  "description": "Only accounts in this workspace."
                }
              ],
              "variable": [],
              "raw": "{{baseUrl}}/v1/accounts"
            },
            "header": [
              {
                "key": "X-Tenant-Id",
                "value": "{{tenant_ref}}",
                "type": "text",
                "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
              }
            ],
            "method": "GET"
          }
        },
        {
          "name": "09 - POST /v1/media",
          "request": {
            "description": {
              "content": "Registers an image, video or PDF. With `source_url` we fetch it now and it is `READY` at once; with `upload: true`, PUT the bytes to `upload_url` with the same `Content-Type`, then call `POST /v1/media/{mediaId}/complete`. Permission: `[media:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 validation_failed` (both or neither of `source_url` and `upload`, an unsupported type, too large, or a URL we may not fetch).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "media"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{baseUrl}}/v1/media"
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Id",
                "value": "{{tenant_ref}}",
                "type": "text",
                "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"source_url\": \"https://cdn.acmecoffee.example/posts/pumpkin-latte.jpg\",\n  \"upload\": false,\n  \"mime_type\": \"image/jpeg\",\n  \"size_bytes\": 482113,\n  \"alt_text\": \"A pumpkin spice latte on the counter\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const j = pm.response.json(); const m = j.media || j;",
                  "if (m.id) pm.collectionVariables.set('media_id', m.id);"
                ]
              }
            }
          ]
        },
        {
          "name": "10 - POST /v1/posts",
          "request": {
            "description": {
              "content": "Creates a post to one or more accounts: published now, at `scheduled_at`, or saved with `draft: true`. It is validated for every platform before anything is queued, and counts towards `posts_per_month`; `Idempotency-Key` makes a retry safe. Permission: `[posts:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 validation_failed` (`details.fields` lists each account's problems), `400 media_not_ready`, `402 quota_exceeded` (`posts_per_month`), `409 idempotency_conflict`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "posts"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{baseUrl}}/v1/posts"
            },
            "header": [
              {
                "disabled": true,
                "description": "Any unique string of up to 255 characters, such as a UUID. Sending the same key again within 24 hours replays the original response instead of acting twice; the same key with a different body is `409 idempotency_conflict`. Scoped to the org.",
                "key": "Idempotency-Key",
                "value": "5f0c1d2e-launch-day-post"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "X-Tenant-Id",
                "value": "{{tenant_ref}}",
                "type": "text",
                "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"text\": \"Pumpkin spice season is back at Acme Coffee. Come say hi!\",\n  \"media_ids\": [\n    \"{{media_id}}\"\n  ],\n  \"account_ids\": [\n    \"{{account_id}}\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const j = pm.response.json(); if (j.id) pm.collectionVariables.set('post_id', j.id);"
                ]
              }
            }
          ]
        },
        {
          "name": "11 - GET /v1/posts/:postId",
          "request": {
            "description": {
              "content": "Returns a post with each target's status, permalink and error. Permission: `[posts:read]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "posts",
                ":postId"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "{{post_id}}",
                  "key": "postId",
                  "description": "(Required) The post's id."
                }
              ],
              "raw": "{{baseUrl}}/v1/posts/:postId"
            },
            "header": [
              {
                "key": "X-Tenant-Id",
                "value": "{{tenant_ref}}",
                "type": "text",
                "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
              }
            ],
            "method": "GET"
          }
        },
        {
          "name": "12 - POST /v1/accounts/:accountId/comments/sync",
          "request": {
            "description": {
              "content": "Reads the account's recent posts and their comments now, to catch up after a webhook outage or ahead of the next LinkedIn poll. New and changed comments send their usual events. Permission: `[comments:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 unsupported_for_platform` (the account lacks the `comments` capability), `404 not_found`, `409 invalid_state` (a sync of this account is already running), `422 account_needs_reauth`.",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "accounts",
                ":accountId",
                "comments",
                "sync"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [
                {
                  "disabled": false,
                  "type": "any",
                  "value": "{{account_id}}",
                  "key": "accountId",
                  "description": "(Required) The connected account's id (ours, not the platform's)."
                }
              ],
              "raw": "{{baseUrl}}/v1/accounts/:accountId/comments/sync"
            },
            "header": [
              {
                "key": "X-Tenant-Id",
                "value": "{{tenant_ref}}",
                "type": "text",
                "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
              }
            ],
            "method": "POST"
          }
        },
        {
          "name": "13 - GET /v1/comments",
          "request": {
            "description": {
              "content": "Lists comments on the org's accounts, newest first. `since` compares with when we first stored each comment, so polling with the time of your last poll misses none. Permission: `[comments:read]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 validation_failed` (a bad filter, `limit` or `cursor`).",
              "type": "text/plain"
            },
            "url": {
              "path": [
                "v1",
                "comments"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [
                {
                  "disabled": true,
                  "key": "account_id",
                  "value": "0192a7c1-6a10-7b22-8e31-4c5d6e7f8a01",
                  "description": "Only comments on this account."
                },
                {
                  "disabled": true,
                  "key": "post_id",
                  "value": "0192a7c2-1f00-7c33-9a44-5b6c7d8e9f01",
                  "description": "Only comments on this post (one published through us)."
                },
                {
                  "disabled": true,
                  "key": "external_post_id",
                  "value": "104857600123456_998877665544332",
                  "description": "Only comments on the post with this platform id, published through us or not."
                },
                {
                  "disabled": true,
                  "key": "parent_id",
                  "value": "0192a7c3-2a00-7e55-9c66-7d8e9fa0b000",
                  "description": "Only replies to this comment."
                },
                {
                  "disabled": true,
                  "key": "since",
                  "value": "2026-11-01T00:00:00Z",
                  "description": "Only comments we stored at or after this time (ISO-8601, UTC)."
                },
                {
                  "disabled": true,
                  "key": "is_own",
                  "value": "false",
                  "description": "`true` for the account's own comments only, `false` for everyone else's."
                },
                {
                  "disabled": true,
                  "key": "status",
                  "value": "VISIBLE",
                  "description": "Only comments in this status: `VISIBLE`, `HIDDEN` or `DELETED`."
                },
                {
                  "disabled": true,
                  "key": "limit",
                  "value": "25",
                  "description": "Items per page, 1 to 100. Keep the same value while following `next_cursor`."
                },
                {
                  "disabled": true,
                  "key": "cursor",
                  "value": "eyJvIjoyNX0",
                  "description": "Where the page starts: the `next_cursor` of the previous page. Omit for the first page; a null `next_cursor` means there are no more."
                }
              ],
              "variable": [],
              "raw": "{{baseUrl}}/v1/comments"
            },
            "header": [
              {
                "key": "X-Tenant-Id",
                "value": "{{tenant_ref}}",
                "type": "text",
                "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
              }
            ],
            "method": "GET"
          }
        },
        {
          "name": "14 - POST /v1/partner/webhook-subscriptions",
          "request": {
            "description": "ONE webhook for all your orgs. Include content event types (comment.created, message.received, post.published, ...) - every delivery carries org_id and workspace_id so you can route it to the right client.",
            "url": {
              "path": [
                "v1",
                "partner",
                "webhook-subscriptions"
              ],
              "host": [
                "{{baseUrl}}"
              ],
              "query": [],
              "variable": [],
              "raw": "{{baseUrl}}/v1/partner/webhook-subscriptions"
            },
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "method": "POST",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"event_types\": [\n    \"post.published\",\n    \"post.failed\",\n    \"comment.created\",\n    \"message.received\"\n  ],\n  \"url\": \"https://app.acmecoffee.example/hooks/wasparks\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const j = pm.response.json(); if (j.id) pm.collectionVariables.set('subscription_id', j.id);"
                ]
              }
            }
          ]
        }
      ],
      "description": "All with the partner key. Step 02 stores the new org's external_ref into tenant_ref, and from step 04 on every request carries X-Tenant-Id: {{tenant_ref}}."
    },
    {
      "name": "1 - Partner API (partner key, no tenant header)",
      "item": [
        {
          "name": "Orgs",
          "item": [
            {
              "name": "POST /v1/partner/orgs",
              "request": {
                "description": {
                  "content": "Creates an org for one of your clients on one of your plans, with a default workspace, and sends `org.created` to your partner subscriptions. Next, mint an org key for it with `POST /v1/partner/orgs/{orgId}/api-keys`. Permission: `[orgs:write]`. Errors to handle: `400 validation_failed` (unknown `plan_code`, or an invalid field), `409 invalid_state` (`external_ref` already used by another of your orgs).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "orgs"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/partner/orgs"
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Acme Coffee\",\n  \"external_ref\": \"acme-coffee-42\",\n  \"plan_code\": \"growth\",\n  \"timezone\": \"Europe/Amsterdam\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "GET /v1/partner/orgs",
              "request": {
                "description": {
                  "content": "Lists your orgs, newest first. Filter by `external_ref` to find the org of one of your clients. Permission: `[orgs:read]`. Errors to handle: `400 validation_failed` (a bad filter, `limit` or `cursor`).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "orgs"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "ACTIVE",
                      "description": "Only orgs in this status: `ACTIVE`, `SUSPENDED` or `CLOSED`."
                    },
                    {
                      "disabled": true,
                      "key": "external_ref",
                      "value": "acme-coffee-42",
                      "description": "Only the org with this `external_ref`."
                    },
                    {
                      "disabled": true,
                      "key": "plan_code",
                      "value": "growth",
                      "description": "Only orgs on this plan."
                    },
                    {
                      "disabled": true,
                      "key": "limit",
                      "value": "25",
                      "description": "Items per page, 1 to 100. Keep the same value while following `next_cursor`."
                    },
                    {
                      "disabled": true,
                      "key": "cursor",
                      "value": "eyJvIjoyNX0",
                      "description": "Where the page starts: the `next_cursor` of the previous page. Omit for the first page; a null `next_cursor` means there are no more."
                    }
                  ],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/partner/orgs"
                },
                "header": [],
                "method": "GET"
              }
            },
            {
              "name": "GET /v1/partner/orgs/:orgId",
              "request": {
                "description": {
                  "content": "Returns one of your orgs with counts of its connected accounts and members, never their content. Permission: `[orgs:read]`. Errors to handle: `404 not_found` (unknown id, or another partner's org).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "orgs",
                    ":orgId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{org_id}}",
                      "key": "orgId",
                      "description": "(Required) The org's id, as `POST /v1/partner/orgs` returned it."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/partner/orgs/:orgId"
                },
                "header": [],
                "method": "GET"
              }
            },
            {
              "name": "PATCH /v1/partner/orgs/:orgId",
              "request": {
                "description": {
                  "content": "Changes an org's name, plan, timezone or `external_ref`; only the fields you send change, and `org.updated` is sent. A new plan's limits apply from the next request. Permission: `[orgs:write]`. Errors to handle: `400 validation_failed` (unknown `plan_code`), `404 not_found` (unknown id, or another partner's org), `409 invalid_state` (`external_ref` already used).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "orgs",
                    ":orgId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{org_id}}",
                      "key": "orgId",
                      "description": "(Required) The org's id, as `POST /v1/partner/orgs` returned it."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/partner/orgs/:orgId"
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Acme Coffee\",\n  \"external_ref\": \"acme-coffee-42\",\n  \"plan_code\": \"scale\",\n  \"timezone\": \"Europe/Amsterdam\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "POST /v1/partner/orgs/:orgId/close",
              "request": {
                "description": {
                  "content": "Closes an org for good: its Content API calls answer `403 org_closed` from then on. The optional reason is audit-logged, and `org.closed` is sent. Permission: `[orgs:write]`. Errors to handle: `404 not_found` (unknown id, or another partner's org).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "orgs",
                    ":orgId",
                    "close"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{org_id}}",
                      "key": "orgId",
                      "description": "(Required) The org's id, as `POST /v1/partner/orgs` returned it."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/partner/orgs/:orgId/close"
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Invoice 2026-10 unpaid\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "POST /v1/partner/orgs/:orgId/resume",
              "request": {
                "description": {
                  "content": "Makes a suspended org active again and sends `org.resumed`. Permission: `[orgs:write]`. Errors to handle: `403 org_closed` (a closed org cannot be resumed), `404 not_found` (unknown id, or another partner's org).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "orgs",
                    ":orgId",
                    "resume"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{org_id}}",
                      "key": "orgId",
                      "description": "(Required) The org's id, as `POST /v1/partner/orgs` returned it."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/partner/orgs/:orgId/resume"
                },
                "header": [],
                "method": "POST"
              }
            },
            {
              "name": "POST /v1/partner/orgs/:orgId/suspend",
              "request": {
                "description": {
                  "content": "Suspends an org: its Content API calls answer `403 org_suspended` and its scheduled posts wait until it is resumed. The optional reason is audit-logged, and `org.suspended` is sent. Permission: `[orgs:write]`. Errors to handle: `404 not_found` (unknown id, or another partner's org).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "orgs",
                    ":orgId",
                    "suspend"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{org_id}}",
                      "key": "orgId",
                      "description": "(Required) The org's id, as `POST /v1/partner/orgs` returned it."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/partner/orgs/:orgId/suspend"
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"reason\": \"Invoice 2026-10 unpaid\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            }
          ],
          "description": "The organizations you provision for your clients: create one per client, put it on one of your plans, and suspend, resume or close it. You see names, status, plan and counts only, never an org's accounts or content. Partner API: call it with a partner key. An org key is refused with `403 org_key_not_allowed`. Permissions: `orgs:read`, `orgs:write`."
        },
        {
          "name": "Org API keys",
          "item": [
            {
              "name": "POST /v1/partner/orgs/:orgId/api-keys",
              "request": {
                "description": {
                  "content": "Mints a key your software uses to call the Content API for this org. The plaintext `key` is in this response only, so store it now; every mint is audit-logged with the partner key that made it. Permission: `[org_keys:write]`. Errors to handle: `400 validation_failed` (an unknown or non-org permission in `permissions`), `404 not_found` (unknown id, or another partner's org).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "orgs",
                    ":orgId",
                    "api-keys"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{org_id}}",
                      "key": "orgId",
                      "description": "(Required) The org's id, as `POST /v1/partner/orgs` returned it."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/partner/orgs/:orgId/api-keys"
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Acme Coffee production\",\n  \"permissions\": [\n    \"accounts:read\",\n    \"accounts:write\",\n    \"media:write\",\n    \"posts:read\",\n    \"posts:write\"\n  ],\n  \"environment\": \"LIVE\",\n  \"expires_at\": \"2027-11-02T00:00:00Z\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "GET /v1/partner/orgs/:orgId/api-keys",
              "request": {
                "description": {
                  "content": "Lists the org's keys with their prefix, permissions and status, never the secret. All keys come on one page. Permission: `[org_keys:write]`. Errors to handle: `404 not_found` (unknown id, or another partner's org).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "orgs",
                    ":orgId",
                    "api-keys"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{org_id}}",
                      "key": "orgId",
                      "description": "(Required) The org's id, as `POST /v1/partner/orgs` returned it."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/partner/orgs/:orgId/api-keys"
                },
                "header": [],
                "method": "GET"
              }
            },
            {
              "name": "DELETE /v1/partner/orgs/:orgId/api-keys/:keyId",
              "request": {
                "description": {
                  "content": "Revokes the key at once: requests made with it answer `401 key_revoked` from then on. This cannot be undone. Permission: `[org_keys:write]`. Errors to handle: `404 not_found` (unknown key, or not your org).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "orgs",
                    ":orgId",
                    "api-keys",
                    ":keyId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{org_id}}",
                      "key": "orgId",
                      "description": "(Required) The org's id, as `POST /v1/partner/orgs` returned it."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{key_id}}",
                      "key": "keyId",
                      "description": "(Required) The org API key's id (not the key itself)."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/partner/orgs/:orgId/api-keys/:keyId"
                },
                "header": [],
                "method": "DELETE"
              }
            }
          ],
          "description": "Org keys you mint so your software can call the Content API on behalf of one of your orgs. The plaintext key is returned once, at creation; every mint is audit-logged, and the org can list and revoke its keys. Partner API: call it with a partner key. An org key is refused with `403 org_key_not_allowed`. Permission: `org_keys:write`."
        },
        {
          "name": "Plans",
          "item": [
            {
              "name": "POST /v1/partner/plans",
              "request": {
                "description": {
                  "content": "Creates one of your own plans. Use its `code` as `plan_code` when creating or updating orgs. Permission: `[plans:write]`. Errors to handle: `400 validation_failed` (a bad `code` or limit), `409 invalid_state` (`code` already used).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "plans"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/partner/plans"
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"code\": \"growth\",\n  \"name\": \"Growth\",\n  \"limits\": {\n    \"social_accounts\": 10,\n    \"posts_per_month\": 500,\n    \"members\": 5,\n    \"workspaces\": 3\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "GET /v1/partner/plans",
              "request": {
                "description": {
                  "content": "Lists the plans you may put orgs on: your own and the platform's. All plans come on one page. Permission: `[plans:read]`. No errors specific to this operation.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "plans"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/partner/plans"
                },
                "header": [],
                "method": "GET"
              }
            },
            {
              "name": "PATCH /v1/partner/plans/:code",
              "request": {
                "description": {
                  "content": "Renames a plan or replaces its limits; orgs on the plan are held to the new limits from their next request. Only your own plans can be changed. Permission: `[plans:write]`. Errors to handle: `400 validation_failed`, `404 not_found` (unknown code, or a platform plan).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "plans",
                    ":code"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{plan_code}}",
                      "key": "code",
                      "description": "(Required) The plan's code, as you chose it when creating the plan."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/partner/plans/:code"
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Growth\",\n  \"limits\": {\n    \"social_accounts\": 10,\n    \"posts_per_month\": 500,\n    \"members\": 5,\n    \"workspaces\": 3\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            }
          ],
          "description": "Your own plans: the limits (social accounts, posts per month, members, workspaces) your orgs are held to, addressed by `code`. The listing also shows the platform plans you may assign. Partner API: call it with a partner key. An org key is refused with `403 org_key_not_allowed`. Permissions: `plans:read`, `plans:write`."
        },
        {
          "name": "Redirect URIs",
          "item": [
            {
              "name": "POST /v1/partner/redirect-uris",
              "request": {
                "description": {
                  "content": "Allows a `redirect_uri` in the connect sessions of all your orgs. Matching is exact, https only (`http://localhost` with test keys); adding one already listed returns it. Permission: `[orgs:write]`. Errors to handle: `400 validation_failed` (not https, or malformed).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "redirect-uris"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/partner/redirect-uris"
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"uri\": \"https://app.acmecoffee.example/social/connected\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "GET /v1/partner/redirect-uris",
              "request": {
                "description": {
                  "content": "Lists the `redirect_uri` values every one of your orgs may use in connect sessions. Permission: `[orgs:write]`. No errors specific to this operation.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "redirect-uris"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/partner/redirect-uris"
                },
                "header": [],
                "method": "GET"
              }
            },
            {
              "name": "DELETE /v1/partner/redirect-uris/:redirectUriId",
              "request": {
                "description": {
                  "content": "Removes the URI from your allow-list; new connect sessions can no longer use it. Permission: `[orgs:write]`. Errors to handle: `404 not_found`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "redirect-uris",
                    ":redirectUriId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{redirect_uri_id}}",
                      "key": "redirectUriId",
                      "description": "(Required) The allow-list entry's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/partner/redirect-uris/:redirectUriId"
                },
                "header": [],
                "method": "DELETE"
              }
            }
          ],
          "description": "The `redirect_uri` allow-list for connect sessions. An entry here applies to every one of your orgs; matching is exact and https only. Partner API: call it with a partner key. An org key is refused with `403 org_key_not_allowed`. Permission: `orgs:write`."
        },
        {
          "name": "Usage",
          "item": [
            {
              "name": "GET /v1/partner/usage",
              "request": {
                "description": {
                  "content": "Counts usage across all your orgs for a date range (by default the last 30 days), per org, per event type or per day. These are the counts you are billed on, never content. Permission: `[usage:read]`. Errors to handle: `400 validation_failed` (`from` after `to`, or a range over 400 days).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "usage"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "from",
                      "value": "2026-10-03",
                      "description": "First day counted (UTC), inclusive. Defaults to 29 days before `to`."
                    },
                    {
                      "disabled": true,
                      "key": "to",
                      "value": "2026-11-01",
                      "description": "Last day counted (UTC), inclusive. Defaults to today; at most 400 days after `from`."
                    },
                    {
                      "disabled": true,
                      "key": "group_by",
                      "value": "day",
                      "description": "How to group: `org`, `event_type` (default) or `day`."
                    }
                  ],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/partner/usage"
                },
                "header": [],
                "method": "GET"
              }
            },
            {
              "name": "GET /v1/partner/orgs/:orgId/usage",
              "request": {
                "description": {
                  "content": "Counts one of your orgs' usage for a date range, with its plan limits against current use. The same counts the org sees on `GET /v1/usage`. Permission: `[usage:read]`. Errors to handle: `400 validation_failed` (bad range), `404 not_found` (unknown id, or another partner's org).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "orgs",
                    ":orgId",
                    "usage"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "from",
                      "value": "2026-10-03",
                      "description": "First day counted (UTC), inclusive. Defaults to 29 days before `to`."
                    },
                    {
                      "disabled": true,
                      "key": "to",
                      "value": "2026-11-01",
                      "description": "Last day counted (UTC), inclusive. Defaults to today; at most 400 days after `from`."
                    },
                    {
                      "disabled": true,
                      "key": "group_by",
                      "value": "day",
                      "description": "How to group: `org`, `event_type` (default) or `day`."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{org_id}}",
                      "key": "orgId",
                      "description": "(Required) The org's id, as `POST /v1/partner/orgs` returned it."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/partner/orgs/:orgId/usage"
                },
                "header": [],
                "method": "GET"
              }
            }
          ],
          "description": "Usage counts across your orgs, which is what you are billed on: per org, per event type or per day. Counts only, never what was published. Partner API: call it with a partner key. An org key is refused with `403 org_key_not_allowed`. Permission: `usage:read`."
        },
        {
          "name": "Branding",
          "item": [
            {
              "name": "GET /v1/partner/branding",
              "request": {
                "description": {
                  "content": "Returns your white-label branding; fields never set are null. Permission: `[branding:write]`. No errors specific to this operation.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "branding"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/partner/branding"
                },
                "header": [],
                "method": "GET"
              }
            },
            {
              "name": "PUT /v1/partner/branding",
              "request": {
                "description": {
                  "content": "Changes your white-label branding. Only the fields you send change; send an empty string to clear one. Permission: `[branding:write]`. Errors to handle: `400 validation_failed` (a colour that is not `#rrggbb`, or a bad email address).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "branding"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/partner/branding"
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "method": "PUT",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"product_name\": \"Acme Social\",\n  \"logo_url\": \"https://cdn.acmecoffee.example/brand/logo.png\",\n  \"favicon_url\": \"https://cdn.acmecoffee.example/brand/favicon.ico\",\n  \"primary_color\": \"#6f4e37\",\n  \"email_sender_name\": \"Acme Social\",\n  \"email_sender_address\": \"social@acmecoffee.example\",\n  \"support_url\": \"https://help.acmecoffee.example\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            }
          ],
          "description": "White-label branding for the partner app: product name, logo, colour, email sender and support link. Stored now, rendered by the white-label app. Partner API: call it with a partner key. An org key is refused with `403 org_key_not_allowed`. Permission: `branding:write`."
        },
        {
          "name": "Domains",
          "item": [
            {
              "name": "POST /v1/partner/domains",
              "request": {
                "description": {
                  "content": "Registers a hostname for your white-label app, in status `PENDING`. Point its CNAME at us, then call `POST /v1/partner/domains/{domainId}/verify`. Permission: `[domains:write]`. Errors to handle: `400 validation_failed` (not a bare hostname), `409 invalid_state` (hostname already registered).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/partner/domains"
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"hostname\": \"social.acmecoffee.example\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "GET /v1/partner/domains",
              "request": {
                "description": {
                  "content": "Lists your custom hostnames and their status. All come on one page. Permission: `[domains:write]`. No errors specific to this operation.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "domains"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/partner/domains"
                },
                "header": [],
                "method": "GET"
              }
            },
            {
              "name": "DELETE /v1/partner/domains/:domainId",
              "request": {
                "description": {
                  "content": "Removes the hostname; your app is no longer served on it. Permission: `[domains:write]`. Errors to handle: `404 not_found`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "domains",
                    ":domainId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{domain_id}}",
                      "key": "domainId",
                      "description": "(Required) The custom domain's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/partner/domains/:domainId"
                },
                "header": [],
                "method": "DELETE"
              }
            },
            {
              "name": "POST /v1/partner/domains/:domainId/verify",
              "request": {
                "description": {
                  "content": "Marks the domain `VERIFIED`. DNS is not checked yet; we switch the domain to `ACTIVE` once we serve it. Permission: `[domains:write]`. Errors to handle: `404 not_found`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "domains",
                    ":domainId",
                    "verify"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{domain_id}}",
                      "key": "domainId",
                      "description": "(Required) The custom domain's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/partner/domains/:domainId/verify"
                },
                "header": [],
                "method": "POST"
              }
            }
          ],
          "description": "Custom hostnames (CNAMEs) that serve your white-label app. Add one, point its CNAME at us, then verify it. Partner API: call it with a partner key. An org key is refused with `403 org_key_not_allowed`. Permission: `domains:write`."
        },
        {
          "name": "Webhooks",
          "item": [
            {
              "name": "POST /v1/partner/webhook-subscriptions",
              "request": {
                "description": {
                  "content": "Subscribes an https URL to partner events (`org.*`, `usage.daily_ready`, `webhook.disabled`); an OPERATOR partner may add content events and then receives them for all its orgs, each naming its `org_id`. The signing `secret` is in this response only. Permission: `[partner_webhooks:write]`. Errors to handle: `400 validation_failed` (an unknown or disallowed event type, or a URL that is not https).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "webhook-subscriptions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/partner/webhook-subscriptions"
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event_types\": [\n    \"post.published\",\n    \"post.failed\",\n    \"comment.created\",\n    \"message.received\"\n  ],\n  \"url\": \"https://app.acmecoffee.example/hooks/wasparks\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "GET /v1/partner/webhook-subscriptions",
              "request": {
                "description": {
                  "content": "Lists your partner subscriptions, without their secrets. All come on one page. Permission: `[partner_webhooks:write]`. No errors specific to this operation.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "webhook-subscriptions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/partner/webhook-subscriptions"
                },
                "header": [],
                "method": "GET"
              }
            },
            {
              "name": "PATCH /v1/partner/webhook-subscriptions/:subscriptionId",
              "request": {
                "description": {
                  "content": "Replaces the event types, or pauses (`PAUSED`) and resumes (`ACTIVE`) deliveries; `ACTIVE` also re-enables a disabled subscription. Permission: `[partner_webhooks:write]`. Errors to handle: `400 validation_failed` (`status: DISABLED`, or a disallowed event type), `404 not_found`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "webhook-subscriptions",
                    ":subscriptionId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{subscription_id}}",
                      "key": "subscriptionId",
                      "description": "(Required) The webhook subscription's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/partner/webhook-subscriptions/:subscriptionId"
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event_types\": [\n    \"post.published\",\n    \"post.failed\",\n    \"comment.created\",\n    \"message.received\"\n  ],\n  \"status\": \"PAUSED\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "DELETE /v1/partner/webhook-subscriptions/:subscriptionId",
              "request": {
                "description": {
                  "content": "Deletes the subscription; nothing more is delivered to it. Permission: `[partner_webhooks:write]`. Errors to handle: `404 not_found`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "webhook-subscriptions",
                    ":subscriptionId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{subscription_id}}",
                      "key": "subscriptionId",
                      "description": "(Required) The webhook subscription's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/partner/webhook-subscriptions/:subscriptionId"
                },
                "header": [],
                "method": "DELETE"
              }
            },
            {
              "name": "POST /v1/partner/webhook-subscriptions/:subscriptionId/test",
              "request": {
                "description": {
                  "content": "Sends a signed `webhook.test` envelope to the URL now and reports how it went. It is not stored or retried, never counts towards disabling, and works on a disabled subscription. Permission: `[partner_webhooks:write]`. Errors to handle: `404 not_found`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "partner",
                    "webhook-subscriptions",
                    ":subscriptionId",
                    "test"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{subscription_id}}",
                      "key": "subscriptionId",
                      "description": "(Required) The webhook subscription's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/partner/webhook-subscriptions/:subscriptionId/test"
                },
                "header": [],
                "method": "POST"
              }
            }
          ],
          "description": "Your outbound webhook subscriptions. A DELEGATED partner hears partner events only (`org.*`, `usage.daily_ready`, `webhook.disabled`); an OPERATOR partner may also subscribe to content events and hears them for all of its orgs, each envelope naming `org_id`. Payloads are documented under `webhooks`. Partner API: call it with a partner key. An org key is refused with `403 org_key_not_allowed`. Permission: `partner_webhooks:write`."
        }
      ],
      "description": "Provisioning, plans, usage, and the single partner webhook. X-Tenant-Id is ignored here."
    },
    {
      "name": "2 - Content API (partner key + X-Tenant-Id)",
      "item": [
        {
          "name": "Org & workspaces",
          "item": [
            {
              "name": "POST /v1/workspaces",
              "request": {
                "description": {
                  "content": "Adds a workspace, such as a brand or a location, to the org; it counts against the plan's `workspaces` limit. Accounts, posts and media are then created in it by passing its `workspace_id`. Permission: `[workspaces:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 validation_failed` (missing `name`), `402 quota_exceeded` (`workspaces`).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "workspaces"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/workspaces"
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Acme Coffee Rotterdam\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "GET /v1/org",
              "request": {
                "description": {
                  "content": "Returns the org the key acts for, its plan, and its use of each plan limit: enough to show quota bars without another call. Any valid key for the org; no permission needed. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `403 org_suspended`, `403 org_closed`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "org"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/org"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "GET"
              }
            },
            {
              "name": "GET /v1/workspaces",
              "request": {
                "description": {
                  "content": "Lists the org's workspaces, the default one included. All come on one page. Any valid key for the org; no permission needed. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). No errors specific to this operation.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "workspaces"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/workspaces"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "GET"
              }
            },
            {
              "name": "PATCH /v1/workspaces/:workspaceId",
              "request": {
                "description": {
                  "content": "Renames a workspace. Without `name` the workspace is returned unchanged. Permission: `[workspaces:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "workspaces",
                    ":workspaceId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{workspace_id}}",
                      "key": "workspaceId",
                      "description": "(Required) The workspace's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/workspaces/:workspaceId"
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"Acme Coffee Rotterdam Centraal\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "POST /v1/workspaces/:workspaceId/archive",
              "request": {
                "description": {
                  "content": "Archives a workspace. The default workspace cannot be archived. Permission: `[workspaces:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found`, `409 invalid_state` (the default workspace).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "workspaces",
                    ":workspaceId",
                    "archive"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{workspace_id}}",
                      "key": "workspaceId",
                      "description": "(Required) The workspace's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/workspaces/:workspaceId/archive"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST"
              }
            }
          ],
          "description": "The calling org (its plan and usage against limits) and its workspaces, the brands inside an org that every account, post and conversation belongs to. Content API: call it with an org key, or with an OPERATOR partner's key plus `X-Tenant-Id` (the org's `external_ref`). Reading needs no permission; changes need `workspaces:write`."
        },
        {
          "name": "Connect",
          "item": [
            {
              "name": "POST /v1/connect/redirect-uris",
              "request": {
                "description": {
                  "content": "Allows a `redirect_uri` in this org's connect sessions. Matching is exact, https only (`http://localhost` with test keys); adding one already listed returns it. Permission: `[accounts:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 validation_failed` (not https, or malformed).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "connect",
                    "redirect-uris"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/connect/redirect-uris"
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"uri\": \"https://app.acmecoffee.example/social/connected\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "POST /v1/connect/sessions",
              "request": {
                "description": {
                  "content": "Starts embedded OAuth: redirect your user's browser to the returned `url`. After consenting they come back to `redirect_uri` with `session_id` and `status`; then read the session and connect the accounts they pick. Guide: `/guides/connect/`. Permission: `[accounts:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 validation_failed` (`redirect_uri` not on the allow-list, or an unknown feature), `404 not_found` (unknown `workspace_id`).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "connect",
                    "sessions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/connect/sessions"
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"platform\": \"meta\",\n  \"redirect_uri\": \"https://app.acmecoffee.example/social/connected\",\n  \"workspace_id\": \"0192a7c1-5d2e-7a10-9c4b-2f6e8d1a3b02\",\n  \"features\": [\n    \"publishing\",\n    \"comments\",\n    \"messaging\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "GET /v1/connect/redirect-uris",
              "request": {
                "description": {
                  "content": "Lists every `redirect_uri` this org's connect sessions may use: its own entries and those its partner registered for all orgs (see `owner_scope`). Permission: `[accounts:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). No errors specific to this operation.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "connect",
                    "redirect-uris"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/connect/redirect-uris"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "GET"
              }
            },
            {
              "name": "GET /v1/connect/sessions/:sessionId",
              "request": {
                "description": {
                  "content": "Returns the session's status and, once `READY`, the accounts the user granted with what each will be able to do. A session expires 15 minutes after it was created. Permission: `[accounts:read]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found` (unknown or expired session).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "connect",
                    "sessions",
                    ":sessionId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{session_id}}",
                      "key": "sessionId",
                      "description": "(Required) The connect session's id, as `POST /v1/connect/sessions` returned it and as it comes back on your `redirect_uri`."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/connect/sessions/:sessionId"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "GET"
              }
            },
            {
              "name": "DELETE /v1/connect/redirect-uris/:redirectUriId",
              "request": {
                "description": {
                  "content": "Removes one of the org's own entries; its partner's entries cannot be removed here. Permission: `[accounts:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found` (unknown id, or a partner entry).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "connect",
                    "redirect-uris",
                    ":redirectUriId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{redirect_uri_id}}",
                      "key": "redirectUriId",
                      "description": "(Required) The allow-list entry's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/connect/redirect-uris/:redirectUriId"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "DELETE"
              }
            },
            {
              "name": "POST /v1/connect/sessions/:sessionId/accounts",
              "request": {
                "description": {
                  "content": "Connects the granted accounts you pick by `external_id` and returns them; one the org already has is refreshed rather than added twice. Each account counts against the `social_accounts` limit and sends `account.connected`; the session is then `COMPLETED`. Permission: `[accounts:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 validation_failed` (an `external_id` that was not granted), `402 quota_exceeded` (`social_accounts`), `404 not_found`, `409 invalid_state` (the session is not `READY`).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "connect",
                    "sessions",
                    ":sessionId",
                    "accounts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{session_id}}",
                      "key": "sessionId",
                      "description": "(Required) The connect session's id, as `POST /v1/connect/sessions` returned it and as it comes back on your `redirect_uri`."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/connect/sessions/:sessionId/accounts"
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"external_ids\": [\n    \"104857600123456\"\n  ]\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            }
          ],
          "description": "Embedded OAuth: create a connect session, send your user to its `url`, then read what they granted and connect the accounts they pick. Also the org's own `redirect_uri` allow-list. Guide: `/guides/connect/`. Content API: call it with an org key, or with an OPERATOR partner's key plus `X-Tenant-Id` (the org's `external_ref`). Permissions: `accounts:read`, `accounts:write`."
        },
        {
          "name": "Accounts",
          "item": [
            {
              "name": "GET /v1/accounts",
              "request": {
                "description": {
                  "content": "Lists the org's accounts, disconnected ones included, optionally filtered by platform, status or workspace. All come on one page. Permission: `[accounts:read]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found` (unknown `workspace_id`).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "accounts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "platform",
                      "value": "INSTAGRAM",
                      "description": "Only accounts on this platform: `FACEBOOK_PAGE`, `INSTAGRAM`, `LINKEDIN_ORGANIZATION` or `LINKEDIN_PROFILE`."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "CONNECTED",
                      "description": "Only accounts in this status: `CONNECTED`, `NEEDS_REAUTH` or `DISCONNECTED`."
                    },
                    {
                      "disabled": true,
                      "key": "workspace_id",
                      "value": "0192a7c1-5d2e-7a10-9c4b-2f6e8d1a3b02",
                      "description": "Only accounts in this workspace."
                    }
                  ],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/accounts"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "GET"
              }
            },
            {
              "name": "GET /v1/accounts/:accountId",
              "request": {
                "description": {
                  "content": "Returns one account with its status and capabilities. Permission: `[accounts:read]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "accounts",
                    ":accountId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{account_id}}",
                      "key": "accountId",
                      "description": "(Required) The connected account's id (ours, not the platform's)."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/accounts/:accountId"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "GET"
              }
            },
            {
              "name": "DELETE /v1/accounts/:accountId",
              "request": {
                "description": {
                  "content": "Disconnects the account: its platform webhooks are unsubscribed, its tokens deleted and `account.disconnected` is sent. Its posts, comments and conversations are kept. Permission: `[accounts:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "accounts",
                    ":accountId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{account_id}}",
                      "key": "accountId",
                      "description": "(Required) The connected account's id (ours, not the platform's)."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/accounts/:accountId"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "DELETE"
              }
            },
            {
              "name": "POST /v1/accounts/:accountId/check",
              "request": {
                "description": {
                  "content": "Asks the platform whether the account's credential still works. An invalid one is the answer, not an error: the account moves to `NEEDS_REAUTH` and `account.needs_reauth` is sent. Permission: `[accounts:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "accounts",
                    ":accountId",
                    "check"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{account_id}}",
                      "key": "accountId",
                      "description": "(Required) The connected account's id (ours, not the platform's)."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/accounts/:accountId/check"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST"
              }
            }
          ],
          "description": "Connected social accounts (Facebook Pages, Instagram business accounts, LinkedIn organizations and member profiles): list them, check their credential and disconnect them. `capabilities` says what each one can do. Content API: call it with an org key, or with an OPERATOR partner's key plus `X-Tenant-Id` (the org's `external_ref`). Permissions: `accounts:read`, `accounts:write`."
        },
        {
          "name": "Media",
          "item": [
            {
              "name": "POST /v1/media",
              "request": {
                "description": {
                  "content": "Registers an image, video or PDF. With `source_url` we fetch it now and it is `READY` at once; with `upload: true`, PUT the bytes to `upload_url` with the same `Content-Type`, then call `POST /v1/media/{mediaId}/complete`. Permission: `[media:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 validation_failed` (both or neither of `source_url` and `upload`, an unsupported type, too large, or a URL we may not fetch).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "media"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/media"
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"workspace_id\": \"0192a7c1-5d2e-7a10-9c4b-2f6e8d1a3b02\",\n  \"source_url\": \"https://cdn.acmecoffee.example/posts/pumpkin-latte.jpg\",\n  \"upload\": false,\n  \"mime_type\": \"image/jpeg\",\n  \"size_bytes\": 482113,\n  \"alt_text\": \"A pumpkin spice latte on the counter\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "GET /v1/media/:mediaId",
              "request": {
                "description": {
                  "content": "Returns the media with a fresh short-lived `url` and its checks against each platform's rules. Any valid key for the org; no permission needed. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "media",
                    ":mediaId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{media_id}}",
                      "key": "mediaId",
                      "description": "(Required) The media item's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/media/:mediaId"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "GET"
              }
            },
            {
              "name": "DELETE /v1/media/:mediaId",
              "request": {
                "description": {
                  "content": "Deletes the media and its file. Posts already published keep their copy on the platforms. Permission: `[media:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "media",
                    ":mediaId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{media_id}}",
                      "key": "mediaId",
                      "description": "(Required) The media item's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/media/:mediaId"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "DELETE"
              }
            },
            {
              "name": "POST /v1/media/:mediaId/complete",
              "request": {
                "description": {
                  "content": "Confirms the bytes were uploaded and makes the media `READY`, with its checks against each platform. Calling it again on `READY` media changes nothing. Permission: `[media:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 media_not_ready` (nothing uploaded; the media is now `FAILED`), `400 validation_failed` (the file is over the size limit), `404 not_found`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "media",
                    ":mediaId",
                    "complete"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{media_id}}",
                      "key": "mediaId",
                      "description": "(Required) The media item's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/media/:mediaId/complete"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST"
              }
            }
          ],
          "description": "Images, videos and documents to attach to posts: register a public URL for us to fetch, or upload the bytes to a signed URL. Each item is checked against every platform's rules. Content API: call it with an org key, or with an OPERATOR partner's key plus `X-Tenant-Id` (the org's `external_ref`). Permission: `media:write`."
        },
        {
          "name": "Posts",
          "item": [
            {
              "name": "POST /v1/posts",
              "request": {
                "description": {
                  "content": "Creates a post to one or more accounts: published now, at `scheduled_at`, or saved with `draft: true`. It is validated for every platform before anything is queued, and counts towards `posts_per_month`; `Idempotency-Key` makes a retry safe. Permission: `[posts:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 validation_failed` (`details.fields` lists each account's problems), `400 media_not_ready`, `402 quota_exceeded` (`posts_per_month`), `409 idempotency_conflict`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "posts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/posts"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Any unique string of up to 255 characters, such as a UUID. Sending the same key again within 24 hours replays the original response instead of acting twice; the same key with a different body is `409 idempotency_conflict`. Scoped to the org.",
                    "key": "Idempotency-Key",
                    "value": "5f0c1d2e-launch-day-post"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"workspace_id\": \"0192a7c1-5d2e-7a10-9c4b-2f6e8d1a3b02\",\n  \"text\": \"Pumpkin spice season is back at Acme Coffee. Come say hi!\",\n  \"link_url\": \"https://acmecoffee.example/menu/fall\",\n  \"link_preview\": {\n    \"title\": \"Our fall menu\",\n    \"description\": \"Pumpkin spice, maple oat and more.\",\n    \"thumbnail_media_id\": \"0192a7c2-0e00-7d44-8b55-6c7d8e9fa001\"\n  },\n  \"media_ids\": [\n    \"0192a7c2-0e00-7d44-8b55-6c7d8e9fa001\"\n  ],\n  \"account_ids\": [\n    \"0192a7c1-6a10-7b22-8e31-4c5d6e7f8a01\"\n  ],\n  \"scheduled_at\": \"2026-11-03T08:00:00Z\",\n  \"draft\": false,\n  \"overrides\": {\n    \"0192a7c1-6a10-7b22-8e31-4c5d6e7f8a01\": {\n      \"text\": \"Pumpkin spice is back at Acme Coffee! #fall\"\n    }\n  },\n  \"options\": {\n    \"instagram\": {\n      \"type\": \"FEED\"\n    },\n    \"facebook\": {\n      \"type\": \"FEED\"\n    },\n    \"linkedin\": {\n      \"visibility\": \"PUBLIC\",\n      \"reshare_of\": \"urn:li:share:7123456789012345678\"\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "GET /v1/posts",
              "request": {
                "description": {
                  "content": "Lists the org's posts, newest first, optionally filtered by status, account or workspace. Permission: `[posts:read]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 validation_failed` (a bad `limit` or `cursor`).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "posts"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "SCHEDULED",
                      "description": "Only posts in this status, such as `SCHEDULED` or `FAILED`."
                    },
                    {
                      "disabled": true,
                      "key": "account_id",
                      "value": "0192a7c1-6a10-7b22-8e31-4c5d6e7f8a01",
                      "description": "Only posts with a target on this account."
                    },
                    {
                      "disabled": true,
                      "key": "workspace_id",
                      "value": "0192a7c1-5d2e-7a10-9c4b-2f6e8d1a3b02",
                      "description": "Only posts in this workspace."
                    },
                    {
                      "disabled": true,
                      "key": "limit",
                      "value": "25",
                      "description": "Items per page, 1 to 100. Keep the same value while following `next_cursor`."
                    },
                    {
                      "disabled": true,
                      "key": "cursor",
                      "value": "eyJvIjoyNX0",
                      "description": "Where the page starts: the `next_cursor` of the previous page. Omit for the first page; a null `next_cursor` means there are no more."
                    }
                  ],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/posts"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "GET"
              }
            },
            {
              "name": "GET /v1/posts/:postId",
              "request": {
                "description": {
                  "content": "Returns a post with each target's status, permalink and error. Permission: `[posts:read]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "posts",
                    ":postId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{post_id}}",
                      "key": "postId",
                      "description": "(Required) The post's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/posts/:postId"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "GET"
              }
            },
            {
              "name": "PATCH /v1/posts/:postId",
              "request": {
                "description": {
                  "content": "Changes a `DRAFT` or `SCHEDULED` post; only the fields you send change, and the post is validated again. Permission: `[posts:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 validation_failed`, `404 not_found`, `409 invalid_state` (already publishing or published).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "posts",
                    ":postId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{post_id}}",
                      "key": "postId",
                      "description": "(Required) The post's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/posts/:postId"
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"text\": \"Pumpkin spice season is back at Acme Coffee. Come say hi!\",\n  \"link_url\": \"https://acmecoffee.example/menu/fall\",\n  \"link_preview\": {\n    \"title\": \"Our fall menu\",\n    \"description\": \"Pumpkin spice, maple oat and more.\",\n    \"thumbnail_media_id\": \"0192a7c2-0e00-7d44-8b55-6c7d8e9fa001\"\n  },\n  \"media_ids\": [\n    \"0192a7c2-0e00-7d44-8b55-6c7d8e9fa001\"\n  ],\n  \"account_ids\": [\n    \"0192a7c1-6a10-7b22-8e31-4c5d6e7f8a01\"\n  ],\n  \"scheduled_at\": \"2026-11-03T08:00:00Z\",\n  \"overrides\": {\n    \"0192a7c1-6a10-7b22-8e31-4c5d6e7f8a01\": {\n      \"text\": \"Pumpkin spice is back at Acme Coffee! #fall\"\n    }\n  },\n  \"options\": {\n    \"instagram\": {\n      \"type\": \"FEED\"\n    },\n    \"facebook\": {\n      \"type\": \"FEED\"\n    },\n    \"linkedin\": {\n      \"visibility\": \"PUBLIC\",\n      \"reshare_of\": \"urn:li:share:7123456789012345678\"\n    }\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "DELETE /v1/posts/:postId",
              "request": {
                "description": {
                  "content": "Deletes the post on our side, always. With `remote=true` we also try to delete each published target on its platform and report each outcome; a platform refusal never fails the request. Permission: `[posts:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "posts",
                    ":postId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "remote",
                      "value": "true",
                      "description": "Also delete the published targets on their platforms."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{post_id}}",
                      "key": "postId",
                      "description": "(Required) The post's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/posts/:postId"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "DELETE"
              }
            },
            {
              "name": "POST /v1/posts/:postId/cancel",
              "request": {
                "description": {
                  "content": "Cancels a `SCHEDULED` or `DRAFT` post before it is published; it becomes `CANCELLED`. Permission: `[posts:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found`, `409 invalid_state` (already publishing or published).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "posts",
                    ":postId",
                    "cancel"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{post_id}}",
                      "key": "postId",
                      "description": "(Required) The post's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/posts/:postId/cancel"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST"
              }
            },
            {
              "name": "POST /v1/posts/:postId/publish",
              "request": {
                "description": {
                  "content": "Publishes a `DRAFT` or `SCHEDULED` post immediately. Follow its targets, or the `post.*` webhooks, for the outcome. Permission: `[posts:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found`, `409 invalid_state` (not a draft or scheduled post).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "posts",
                    ":postId",
                    "publish"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{post_id}}",
                      "key": "postId",
                      "description": "(Required) The post's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/posts/:postId/publish"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST"
              }
            },
            {
              "name": "POST /v1/posts/:postId/targets/:targetId/retry",
              "request": {
                "description": {
                  "content": "Queues a `FAILED` target for another attempt and puts the post back to `PUBLISHING`. A target that failed with `publish_outcome_unknown` may have been published, so retrying it can publish twice. Permission: `[posts:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found`, `409 invalid_state` (the target is not `FAILED`).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "posts",
                    ":postId",
                    "targets",
                    ":targetId",
                    "retry"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{post_id}}",
                      "key": "postId",
                      "description": "(Required) The post's id."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{target_id}}",
                      "key": "targetId",
                      "description": "(Required) The target's id: one entry of the post's `targets`."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/posts/:postId/targets/:targetId/retry"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST"
              }
            }
          ],
          "description": "Compose, schedule and publish one post to several accounts at once, each account a target with its own status, permalink and error. Content API: call it with an org key, or with an OPERATOR partner's key plus `X-Tenant-Id` (the org's `external_ref`). Permissions: `posts:read`, `posts:write`."
        },
        {
          "name": "Comments",
          "item": [
            {
              "name": "GET /v1/comments",
              "request": {
                "description": {
                  "content": "Lists comments on the org's accounts, newest first. `since` compares with when we first stored each comment, so polling with the time of your last poll misses none. Permission: `[comments:read]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 validation_failed` (a bad filter, `limit` or `cursor`).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "comments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "account_id",
                      "value": "0192a7c1-6a10-7b22-8e31-4c5d6e7f8a01",
                      "description": "Only comments on this account."
                    },
                    {
                      "disabled": true,
                      "key": "post_id",
                      "value": "0192a7c2-1f00-7c33-9a44-5b6c7d8e9f01",
                      "description": "Only comments on this post (one published through us)."
                    },
                    {
                      "disabled": true,
                      "key": "external_post_id",
                      "value": "104857600123456_998877665544332",
                      "description": "Only comments on the post with this platform id, published through us or not."
                    },
                    {
                      "disabled": true,
                      "key": "parent_id",
                      "value": "0192a7c3-2a00-7e55-9c66-7d8e9fa0b000",
                      "description": "Only replies to this comment."
                    },
                    {
                      "disabled": true,
                      "key": "since",
                      "value": "2026-11-01T00:00:00Z",
                      "description": "Only comments we stored at or after this time (ISO-8601, UTC)."
                    },
                    {
                      "disabled": true,
                      "key": "is_own",
                      "value": "false",
                      "description": "`true` for the account's own comments only, `false` for everyone else's."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "VISIBLE",
                      "description": "Only comments in this status: `VISIBLE`, `HIDDEN` or `DELETED`."
                    },
                    {
                      "disabled": true,
                      "key": "limit",
                      "value": "25",
                      "description": "Items per page, 1 to 100. Keep the same value while following `next_cursor`."
                    },
                    {
                      "disabled": true,
                      "key": "cursor",
                      "value": "eyJvIjoyNX0",
                      "description": "Where the page starts: the `next_cursor` of the previous page. Omit for the first page; a null `next_cursor` means there are no more."
                    }
                  ],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/comments"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "GET"
              }
            },
            {
              "name": "GET /v1/comments/:commentId",
              "request": {
                "description": {
                  "content": "Returns one comment with its reply count. Permission: `[comments:read]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "comments",
                    ":commentId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{comment_id}}",
                      "key": "commentId",
                      "description": "(Required) The comment's id (ours, not the platform's)."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/comments/:commentId"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "GET"
              }
            },
            {
              "name": "DELETE /v1/comments/:commentId",
              "request": {
                "description": {
                  "content": "Deletes the comment on the platform, where the platform allows it, and returns it as `DELETED`; `comment.deleted` is sent. Permission: `[comments:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 unsupported_for_platform` (the account lacks the `comments` capability), `404 not_found`, `422 platform_rejected`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "comments",
                    ":commentId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{comment_id}}",
                      "key": "commentId",
                      "description": "(Required) The comment's id (ours, not the platform's)."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/comments/:commentId"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "DELETE"
              }
            },
            {
              "name": "POST /v1/comments/:commentId/hide",
              "request": {
                "description": {
                  "content": "Hides the comment on Facebook or Instagram and sends `comment.hidden`. Permission: `[comments:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 unsupported_for_platform` (LinkedIn, or no `comment_hide` capability), `404 not_found`, `409 invalid_state` (the comment was deleted), `422 platform_rejected`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "comments",
                    ":commentId",
                    "hide"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{comment_id}}",
                      "key": "commentId",
                      "description": "(Required) The comment's id (ours, not the platform's)."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/comments/:commentId/hide"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST"
              }
            },
            {
              "name": "POST /v1/comments/:commentId/reactions",
              "request": {
                "description": {
                  "content": "Adds a `LIKE` from the account to the comment. The body may be left out. Permission: `[comments:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 unsupported_for_platform` (no `reactions` capability), `400 validation_failed` (a type other than `LIKE`), `404 not_found`, `422 platform_rejected`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "comments",
                    ":commentId",
                    "reactions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{comment_id}}",
                      "key": "commentId",
                      "description": "(Required) The comment's id (ours, not the platform's)."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/comments/:commentId/reactions"
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"type\": \"LIKE\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "POST /v1/comments/:commentId/replies",
              "request": {
                "description": {
                  "content": "Posts a reply as the account and returns it; `Idempotency-Key` makes a retry safe. Instagram allows replies to top-level comments only. Permission: `[comments:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 unsupported_for_platform` (the account lacks the `comments` capability), `400 unsupported_for_platform` (a reply to an Instagram reply), `404 not_found`, `409 invalid_state` (the comment was deleted), `409 idempotency_conflict`, `422 account_needs_reauth`, `422 platform_rejected`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "comments",
                    ":commentId",
                    "replies"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{comment_id}}",
                      "key": "commentId",
                      "description": "(Required) The comment's id (ours, not the platform's)."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/comments/:commentId/replies"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Any unique string of up to 255 characters, such as a UUID. Sending the same key again within 24 hours replays the original response instead of acting twice; the same key with a different body is `409 idempotency_conflict`. Scoped to the org.",
                    "key": "Idempotency-Key",
                    "value": "5f0c1d2e-launch-day-post"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"text\": \"Yes! Every latte comes with oat milk on request.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "POST /v1/comments/:commentId/unhide",
              "request": {
                "description": {
                  "content": "Makes a hidden comment visible again and sends `comment.updated`. Permission: `[comments:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 unsupported_for_platform` (LinkedIn, or no `comment_hide` capability), `404 not_found`, `409 invalid_state` (the comment was deleted), `422 platform_rejected`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "comments",
                    ":commentId",
                    "unhide"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{comment_id}}",
                      "key": "commentId",
                      "description": "(Required) The comment's id (ours, not the platform's)."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/comments/:commentId/unhide"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST"
              }
            },
            {
              "name": "DELETE /v1/comments/:commentId/reactions",
              "request": {
                "description": {
                  "content": "Removes the account's reaction from the comment. Permission: `[comments:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 unsupported_for_platform` (no `reactions` capability), `400 validation_failed` (a type other than `LIKE`), `404 not_found`, `422 platform_rejected`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "comments",
                    ":commentId",
                    "reactions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "type",
                      "value": "LIKE",
                      "description": "The reaction to remove: `LIKE`, the default."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{comment_id}}",
                      "key": "commentId",
                      "description": "(Required) The comment's id (ours, not the platform's)."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/comments/:commentId/reactions"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "DELETE"
              }
            },
            {
              "name": "POST /v1/accounts/:accountId/comments/sync",
              "request": {
                "description": {
                  "content": "Reads the account's recent posts and their comments now, to catch up after a webhook outage or ahead of the next LinkedIn poll. New and changed comments send their usual events. Permission: `[comments:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 unsupported_for_platform` (the account lacks the `comments` capability), `404 not_found`, `409 invalid_state` (a sync of this account is already running), `422 account_needs_reauth`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "accounts",
                    ":accountId",
                    "comments",
                    "sync"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{account_id}}",
                      "key": "accountId",
                      "description": "(Required) The connected account's id (ours, not the platform's)."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/accounts/:accountId/comments/sync"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST"
              }
            },
            {
              "name": "POST /v1/posts/:postId/targets/:targetId/comments",
              "request": {
                "description": {
                  "content": "Posts a top-level comment as the account on one of its published targets and returns it. Permission: `[comments:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 unsupported_for_platform` (the account lacks the `comments` capability), `404 not_found`, `409 invalid_state` (the target is not published), `422 account_needs_reauth`, `422 platform_rejected`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "posts",
                    ":postId",
                    "targets",
                    ":targetId",
                    "comments"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{post_id}}",
                      "key": "postId",
                      "description": "(Required) The post's id."
                    },
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{target_id}}",
                      "key": "targetId",
                      "description": "(Required) The target's id: one entry of the post's `targets`."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/posts/:postId/targets/:targetId/comments"
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"text\": \"Yes! Every latte comes with oat milk on request.\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            }
          ],
          "description": "Comments on your accounts' posts, from Facebook and Instagram (webhooks) and LinkedIn (polling): read, reply, comment, hide, delete and react. Content API: call it with an org key, or with an OPERATOR partner's key plus `X-Tenant-Id` (the org's `external_ref`). Permissions: `comments:read`, `comments:write`."
        },
        {
          "name": "Conversations",
          "item": [
            {
              "name": "GET /v1/conversations",
              "request": {
                "description": {
                  "content": "Lists the org's Messenger and Instagram DM conversations, most recent activity first. `since` compares with the last message's time. Permission: `[messages:read]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 validation_failed` (a bad filter, `limit` or `cursor`).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "conversations"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "account_id",
                      "value": "0192a7c1-6a10-7b22-8e31-4c5d6e7f8a01",
                      "description": "Only conversations with this account."
                    },
                    {
                      "disabled": true,
                      "key": "channel",
                      "value": "INSTAGRAM_DM",
                      "description": "Only this channel: `MESSENGER` or `INSTAGRAM_DM`."
                    },
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "OPEN",
                      "description": "Only conversations in this status: `OPEN` or `CLOSED`."
                    },
                    {
                      "disabled": true,
                      "key": "unread",
                      "value": "true",
                      "description": "`true` for conversations with unread messages only."
                    },
                    {
                      "disabled": true,
                      "key": "since",
                      "value": "2026-11-01T00:00:00Z",
                      "description": "Only conversations whose last message is at or after this time (ISO-8601, UTC)."
                    },
                    {
                      "disabled": true,
                      "key": "limit",
                      "value": "25",
                      "description": "Items per page, 1 to 100. Keep the same value while following `next_cursor`."
                    },
                    {
                      "disabled": true,
                      "key": "cursor",
                      "value": "eyJvIjoyNX0",
                      "description": "Where the page starts: the `next_cursor` of the previous page. Omit for the first page; a null `next_cursor` means there are no more."
                    }
                  ],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/conversations"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "GET"
              }
            },
            {
              "name": "GET /v1/conversations/:conversationId",
              "request": {
                "description": {
                  "content": "Returns a conversation with its reply window: whether, and until when, you may send. Permission: `[messages:read]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "conversations",
                    ":conversationId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{conversation_id}}",
                      "key": "conversationId",
                      "description": "(Required) The conversation's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/conversations/:conversationId"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "GET"
              }
            },
            {
              "name": "POST /v1/conversations/:conversationId/close",
              "request": {
                "description": {
                  "content": "Marks the conversation `CLOSED` in your inbox. The person can still write. Permission: `[messages:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "conversations",
                    ":conversationId",
                    "close"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{conversation_id}}",
                      "key": "conversationId",
                      "description": "(Required) The conversation's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/conversations/:conversationId/close"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST"
              }
            },
            {
              "name": "POST /v1/conversations/:conversationId/messages",
              "request": {
                "description": {
                  "content": "Sends text, media or both as the account: within 24 hours of the person's last message, or up to 7 days with `tag: HUMAN_AGENT`. The message is accepted as `QUEUED` and `message.sent` or `message.failed` follows; `Idempotency-Key` makes a retry safe. Permission: `[messages:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 validation_failed` (no text or media, or an unavailable tag), `400 media_not_ready`, `404 not_found`, `409 idempotency_conflict`, `422 reply_window_closed`, `422 account_needs_reauth`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "conversations",
                    ":conversationId",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{conversation_id}}",
                      "key": "conversationId",
                      "description": "(Required) The conversation's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/conversations/:conversationId/messages"
                },
                "header": [
                  {
                    "disabled": true,
                    "description": "Any unique string of up to 255 characters, such as a UUID. Sending the same key again within 24 hours replays the original response instead of acting twice; the same key with a different body is `409 idempotency_conflict`. Scoped to the org.",
                    "key": "Idempotency-Key",
                    "value": "5f0c1d2e-launch-day-post"
                  },
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"text\": \"Yes, every latte comes with oat milk on request.\",\n  \"media_id\": \"0192a7c2-0e00-7d44-8b55-6c7d8e9fa001\",\n  \"tag\": \"HUMAN_AGENT\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "POST /v1/conversations/:conversationId/read",
              "request": {
                "description": {
                  "content": "Sets the conversation's `unread_count` to 0. Permission: `[messages:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "conversations",
                    ":conversationId",
                    "read"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{conversation_id}}",
                      "key": "conversationId",
                      "description": "(Required) The conversation's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/conversations/:conversationId/read"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST"
              }
            },
            {
              "name": "POST /v1/conversations/:conversationId/reopen",
              "request": {
                "description": {
                  "content": "Marks a closed conversation `OPEN` again. Permission: `[messages:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "conversations",
                    ":conversationId",
                    "reopen"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{conversation_id}}",
                      "key": "conversationId",
                      "description": "(Required) The conversation's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/conversations/:conversationId/reopen"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST"
              }
            },
            {
              "name": "GET /v1/conversations/:conversationId/messages",
              "request": {
                "description": {
                  "content": "Lists the conversation's messages, newest first. Permission: `[messages:read]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found`, `400 validation_failed` (a bad `limit` or `cursor`).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "conversations",
                    ":conversationId",
                    "messages"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "limit",
                      "value": "25",
                      "description": "Items per page, 1 to 100. Keep the same value while following `next_cursor`."
                    },
                    {
                      "disabled": true,
                      "key": "cursor",
                      "value": "eyJvIjoyNX0",
                      "description": "Where the page starts: the `next_cursor` of the previous page. Omit for the first page; a null `next_cursor` means there are no more."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{conversation_id}}",
                      "key": "conversationId",
                      "description": "(Required) The conversation's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/conversations/:conversationId/messages"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "GET"
              }
            }
          ],
          "description": "Messenger and Instagram DM conversations: read threads and messages, send within the 24-hour reply window, and mark read, close or reopen. LinkedIn has no messaging. Content API: call it with an org key, or with an OPERATOR partner's key plus `X-Tenant-Id` (the org's `external_ref`). Permissions: `messages:read`, `messages:write`."
        },
        {
          "name": "Webhook subscriptions",
          "item": [
            {
              "name": "POST /v1/webhook-subscriptions",
              "request": {
                "description": {
                  "content": "Subscribes an https URL to org event types; every event and its payload is listed under `webhooks`. The signing `secret` is in this response only: verify `X-WSS-Signature` on every delivery with it. Permission: `[webhooks:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 validation_failed` (an unknown or partner-only event type, or a URL that is not https).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhook-subscriptions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/webhook-subscriptions"
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event_types\": [\n    \"post.published\",\n    \"post.failed\",\n    \"comment.created\",\n    \"message.received\"\n  ],\n  \"url\": \"https://app.acmecoffee.example/hooks/wasparks\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "GET /v1/webhook-subscriptions",
              "request": {
                "description": {
                  "content": "Lists the org's subscriptions, without their secrets. All come on one page. Permission: `[webhooks:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). No errors specific to this operation.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhook-subscriptions"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/webhook-subscriptions"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "GET"
              }
            },
            {
              "name": "PATCH /v1/webhook-subscriptions/:subscriptionId",
              "request": {
                "description": {
                  "content": "Replaces the event types, or pauses (`PAUSED`) and resumes (`ACTIVE`) deliveries; `ACTIVE` also re-enables a disabled subscription. Permission: `[webhooks:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 validation_failed` (`status: DISABLED`, or a disallowed event type), `404 not_found`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhook-subscriptions",
                    ":subscriptionId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{subscription_id}}",
                      "key": "subscriptionId",
                      "description": "(Required) The webhook subscription's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/webhook-subscriptions/:subscriptionId"
                },
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  },
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "PATCH",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"event_types\": [\n    \"post.published\",\n    \"post.failed\",\n    \"comment.created\",\n    \"message.received\"\n  ],\n  \"status\": \"PAUSED\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "DELETE /v1/webhook-subscriptions/:subscriptionId",
              "request": {
                "description": {
                  "content": "Deletes the subscription; nothing more is delivered to it. Permission: `[webhooks:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhook-subscriptions",
                    ":subscriptionId"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{subscription_id}}",
                      "key": "subscriptionId",
                      "description": "(Required) The webhook subscription's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/webhook-subscriptions/:subscriptionId"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "DELETE"
              }
            },
            {
              "name": "POST /v1/webhook-subscriptions/:subscriptionId/test",
              "request": {
                "description": {
                  "content": "Sends a signed `webhook.test` envelope to the URL now and reports how it went. It is not stored or retried, never counts towards disabling, and works on a disabled subscription. Permission: `[webhooks:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found`.",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhook-subscriptions",
                    ":subscriptionId",
                    "test"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{subscription_id}}",
                      "key": "subscriptionId",
                      "description": "(Required) The webhook subscription's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/webhook-subscriptions/:subscriptionId/test"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST"
              }
            },
            {
              "name": "GET /v1/webhook-subscriptions/:subscriptionId/deliveries",
              "request": {
                "description": {
                  "content": "Lists the subscription's deliveries and how each went, optionally filtered by status. Payloads are not included. Permission: `[webhooks:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found`, `400 validation_failed` (a bad `limit` or `cursor`).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhook-subscriptions",
                    ":subscriptionId",
                    "deliveries"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "status",
                      "value": "DEAD",
                      "description": "Only deliveries in this status: `PENDING`, `SENDING`, `DELIVERED`, `FAILED` or `DEAD`."
                    },
                    {
                      "disabled": true,
                      "key": "limit",
                      "value": "25",
                      "description": "Items per page, 1 to 100. Keep the same value while following `next_cursor`."
                    },
                    {
                      "disabled": true,
                      "key": "cursor",
                      "value": "eyJvIjoyNX0",
                      "description": "Where the page starts: the `next_cursor` of the previous page. Omit for the first page; a null `next_cursor` means there are no more."
                    }
                  ],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{subscription_id}}",
                      "key": "subscriptionId",
                      "description": "(Required) The webhook subscription's id."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/webhook-subscriptions/:subscriptionId/deliveries"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "GET"
              }
            },
            {
              "name": "POST /v1/webhook-subscriptions/deliveries/:deliveryId/redeliver",
              "request": {
                "description": {
                  "content": "Queues a delivery to be sent again with the same event, whatever its earlier outcome. The consumer sees the same envelope `id`, so its dedupe still holds. Permission: `[webhooks:write]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `404 not_found`, `409 invalid_state` (already queued, or the subscription is disabled).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "webhook-subscriptions",
                    "deliveries",
                    ":deliveryId",
                    "redeliver"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [],
                  "variable": [
                    {
                      "disabled": false,
                      "type": "any",
                      "value": "{{delivery_id}}",
                      "key": "deliveryId",
                      "description": "(Required) The delivery's id, from the deliveries list."
                    }
                  ],
                  "raw": "{{baseUrl}}/v1/webhook-subscriptions/deliveries/:deliveryId/redeliver"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "POST"
              }
            }
          ],
          "description": "The org's outbound webhooks: subscribe an https URL to event types, send a test, inspect deliveries and redeliver. Every delivery is a signed `WebhookEnvelope`; each event type and its payload is documented under `webhooks`. Content API: call it with an org key, or with an OPERATOR partner's key plus `X-Tenant-Id` (the org's `external_ref`). Permission: `webhooks:write`."
        },
        {
          "name": "Usage",
          "item": [
            {
              "name": "GET /v1/usage",
              "request": {
                "description": {
                  "content": "Counts the org's usage for a date range (by default the last 30 days), per event type or per day, with its plan limits against current use. Permission: `[usage:read]`. With a partner key, send `X-Tenant-Id` (the org's `external_ref`). Errors to handle: `400 validation_failed` (`from` after `to`, a range over 400 days, or `group_by=org`).",
                  "type": "text/plain"
                },
                "url": {
                  "path": [
                    "v1",
                    "usage"
                  ],
                  "host": [
                    "{{baseUrl}}"
                  ],
                  "query": [
                    {
                      "disabled": true,
                      "key": "from",
                      "value": "2026-10-03",
                      "description": "First day counted (UTC), inclusive. Defaults to 29 days before `to`."
                    },
                    {
                      "disabled": true,
                      "key": "to",
                      "value": "2026-11-01",
                      "description": "Last day counted (UTC), inclusive. Defaults to today; at most 400 days after `from`."
                    },
                    {
                      "disabled": true,
                      "key": "group_by",
                      "value": "day",
                      "description": "How to group: `event_type` (default) or `day`."
                    }
                  ],
                  "variable": [],
                  "raw": "{{baseUrl}}/v1/usage"
                },
                "header": [
                  {
                    "key": "X-Tenant-Id",
                    "value": "{{tenant_ref}}",
                    "type": "text",
                    "description": "Operator mode: the org's external_ref (your own client id). Remove this header if you call with an org key instead."
                  }
                ],
                "method": "GET"
              }
            }
          ],
          "description": "The org's own usage counts and plan limits, per event type or per day. Content API: call it with an org key, or with an OPERATOR partner's key plus `X-Tenant-Id` (the org's `external_ref`). Permission: `usage:read`."
        }
      ],
      "description": "Acts on the org named by X-Tenant-Id (= its external_ref). Rate limits, idempotency and usage are scoped to that org."
    }
  ],
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{partner_key}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://connect.social.wasparks.com"
    },
    {
      "key": "partner_key",
      "value": "",
      "description": "Your partner key (wsk_live_partner_...). Used as the bearer token on every request."
    },
    {
      "key": "tenant_ref",
      "value": "",
      "description": "external_ref of the org you are acting on"
    },
    {
      "key": "org_id",
      "value": ""
    },
    {
      "key": "workspace_id",
      "value": ""
    },
    {
      "key": "session_id",
      "value": ""
    },
    {
      "key": "account_id",
      "value": ""
    },
    {
      "key": "media_id",
      "value": ""
    },
    {
      "key": "post_id",
      "value": ""
    },
    {
      "key": "target_id",
      "value": ""
    },
    {
      "key": "comment_id",
      "value": ""
    },
    {
      "key": "conversation_id",
      "value": ""
    },
    {
      "key": "subscription_id",
      "value": ""
    },
    {
      "key": "key_id",
      "value": ""
    },
    {
      "key": "domain_id",
      "value": ""
    },
    {
      "key": "redirect_uri_id",
      "value": ""
    },
    {
      "key": "delivery_id",
      "value": ""
    },
    {
      "key": "plan_code",
      "value": ""
    }
  ]
}
