Privacy preferences

Necessary features

Required for security and basic site functions.

Always on

Landing diagnostics & masked replay

Measures public visits, drop-off and signup-link interactions with a tab-only anonymous ID and no account linking. All text is masked and forms are blocked.

Optional usage analytics

Allow PostHog usage analytics? Change your choice any time in the footer.

Also allow session replay on this public website

Replay in optional cross-site mode shows public pages and interactions, with inputs and private content masked. App replay is a separate choice.

Requires optional analytics; replay in this cross-site mode is off by default. The Landing mode above runs separately.

Browser analytics does not enable account analytics.

Search loads only when you use it. Browse all categories below.

MCP tool

Ads accounts bind

sosoapi_ads_accounts_bind

Bind one provider-proved Ad Account to this Workspace and exact principal grant. Requires manage capability; no provider mutation or ad spend.

Read as Markdown

Profiles and transports

Profiles: full · Transports: stdio, http

Choose core or full to control which tools your client sees; this does not change its permissions. Local file upload requires stdio and is unavailable over HTTP. Set SOSOAPI_OUTPUT_SCHEMAS=1 to include output schemas in discovery. Tools return structured results with or without that setting.

Permissions and side effects

Annotations help clients describe a tool. Each call still checks the user’s authentication, role, resource access and capability grants.

{
  "readOnlyHint": false,
  "destructiveHint": false,
  "idempotentHint": false,
  "openWorldHint": true
}

Input fields

Required means required inside its parent object and selected branch. A required child does not make an optional parent required. Rules and field names below are copied from the contract.

Input fields
Field / branchType / requiredConstraints
$objectRequired in parent
  • additionalProperties: false
workspace_idstringRequired in parent
  • format: "uuid"
grant_idstringRequired in parent
  • format: "uuid"
provider_account_idstringRequired in parent
  • pattern: "^[1-9]\\d{1,24}$"
Complete JSON Schema
{
  "type": "object",
  "properties": {
    "workspace_id": {
      "type": "string",
      "format": "uuid"
    },
    "grant_id": {
      "type": "string",
      "format": "uuid"
    },
    "provider_account_id": {
      "type": "string",
      "pattern": "^[1-9]\\d{1,24}$"
    }
  },
  "required": [
    "workspace_id",
    "grant_id",
    "provider_account_id"
  ],
  "additionalProperties": false
}

Structured output

This schema describes structuredContent in a successful tool result. The MCP response also includes content and may set isError when a call fails. For publishing, read the post’s final result rather than treating an accepted request or text response as confirmation. The linked API operation explains permissions and retry rules.

Required means required inside its parent object and selected branch. A required child does not make an optional parent required. Rules and field names below are copied from the contract.

Structured output
Field / branchType / requiredConstraints
$objectRequired in parent
  • additionalProperties: false
contract_versionstringRequired in parent
  • const: "advertising/v1"
accountobjectRequired in parent
  • additionalProperties: false
account.idstringRequired in parent
  • format: "uuid"
account.workspace_idstringRequired in parent
  • format: "uuid"
account.grant_idstringRequired in parent
  • format: "uuid"
account.provider_account_idstringRequired in parent
  • pattern: "^[1-9]\\d{1,24}$"
account.provider_app_idstringRequired in parent
  • pattern: "^[1-9]\\d{1,24}$"
account.provider_principal_idstringRequired in parent
  • pattern: "^[1-9]\\d{1,24}$"
account.namestringRequired in parent
  • minLength: 1
  • maxLength: 200
account.currencystringRequired in parent
  • pattern: "^[A-Z]{3}$"
account.timezonestringRequired in parent
  • minLength: 1
  • maxLength: 100
account.account_statusintegerRequired in parent
  • minimum: -9007199254740991
  • maximum: 9007199254740991
account.tasksarrayRequired in parent
  • maxItems: 50
account.tasks[]stringOptional / item
  • maxLength: 100
account.granted_permissionsarrayRequired in parent
  • maxItems: 100
account.granted_permissions[]stringOptional / item
  • maxLength: 100
account.access_modestringRequired in parent
  • enum: ["read","manage"]
account.statestringRequired in parent
  • enum: ["ready","action_required","disconnected"]
account.generationintegerRequired in parent
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
account.observed_atstringRequired in parent
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
Complete JSON Schema
{
  "type": "object",
  "properties": {
    "contract_version": {
      "type": "string",
      "const": "advertising/v1"
    },
    "account": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid"
        },
        "workspace_id": {
          "type": "string",
          "format": "uuid"
        },
        "grant_id": {
          "type": "string",
          "format": "uuid"
        },
        "provider_account_id": {
          "type": "string",
          "pattern": "^[1-9]\\d{1,24}$"
        },
        "provider_app_id": {
          "type": "string",
          "pattern": "^[1-9]\\d{1,24}$"
        },
        "provider_principal_id": {
          "type": "string",
          "pattern": "^[1-9]\\d{1,24}$"
        },
        "name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "currency": {
          "type": "string",
          "pattern": "^[A-Z]{3}$"
        },
        "timezone": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "account_status": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "tasks": {
          "maxItems": 50,
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 100
          }
        },
        "granted_permissions": {
          "maxItems": 100,
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 100
          }
        },
        "access_mode": {
          "type": "string",
          "enum": [
            "read",
            "manage"
          ]
        },
        "state": {
          "type": "string",
          "enum": [
            "ready",
            "action_required",
            "disconnected"
          ]
        },
        "generation": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "observed_at": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        }
      },
      "required": [
        "id",
        "workspace_id",
        "grant_id",
        "provider_account_id",
        "provider_app_id",
        "provider_principal_id",
        "name",
        "currency",
        "timezone",
        "account_status",
        "tasks",
        "granted_permissions",
        "access_mode",
        "state",
        "generation",
        "observed_at"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "contract_version",
    "account"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Example tool call

These examples use fictional values checked against the schemas. Replace the IDs with ones you are authorized to use, the media with ready assets and the dates with your confirmed publishing time. Check the account’s eligibility before submitting a write. This page sends no API requests.

{
  "name": "sosoapi_ads_accounts_bind",
  "arguments": {
    "workspace_id": "11111111-1111-4111-8111-111111111111",
    "grant_id": "11111111-1111-4111-8111-111111111111",
    "provider_account_id": "12345"
  }
}

structuredContent

{
  "contract_version": "advertising/v1",
  "account": {
    "id": "11111111-1111-4111-8111-111111111111",
    "workspace_id": "11111111-1111-4111-8111-111111111111",
    "grant_id": "11111111-1111-4111-8111-111111111111",
    "provider_account_id": "12345",
    "provider_app_id": "12345",
    "provider_principal_id": "12345",
    "name": "example",
    "currency": "USD",
    "timezone": "UTC",
    "account_status": 0,
    "tasks": [],
    "granted_permissions": [],
    "access_mode": "read",
    "state": "ready",
    "generation": 1,
    "observed_at": "2099-01-15T09:00:00Z"
  }
}
Install or connect MCP