links.10x.in/docs/end-user/mcp-tools-reference Published:

MCP Tools Reference

This page documents the tool families exposed by the Link Platform MCP server. Use OAuth-based connector setup against https://{handle}.mcp.{domain}/mcp, with the shared-host compatibility path on https://ai.10x.in/mcp/{handle}/mcp when needed.

Hosted MCP can expose three capability shapes for a handle:

  • tools for actions and structured reads
  • read-only resources under tenx://...
  • reusable prompts that package recommended workflows

This page focuses on tool calls. Use MCP Builder and Hosted Tools when you need the operator-facing browser workflow that reviews tools, resources, and prompts together.

Need the API + Edge + MCP flow in one place? Use Platform-Wide Feature Exploration Lab.

Warning

Mapped custom domains are not valid MCP hosts. MCP must stay on the platform environment hostname such as https://{handle}.mcp.10x.in/mcp in production or the staging/test platform hostname in non-prod environments.

How tool responses work

Every tool returns the same envelope:

{
  "content": [{ "type": "text", "text": "<pretty-printed JSON>" }],
  "structuredContent": { /* same data as a plain object */ }
}

On error:

{
  "isError": true,
  "content": [{ "type": "text", "text": "{ \"error\": \"monolith_api_error\", \"status\": 403 ... }" }],
  "structuredContent": { "error": "monolith_api_error", "status": 403, "body": { "error": "insufficient_scope" } }
}

The handle parameter is optional on every tool — it falls back to the server's LINK_PLATFORM_DEFAULT_HANDLE (set at session creation time via the subdomain, e.g. hello.mcp.arjun.tv).


Scope quick reference

ScopeTools it unlocks
mcp.connectSession initialization
skills.readtools/list (see all tools)
links.readlinks_list, links_health_check, links_route_preview
links.writelinks_upsert
pages.readpages_list, campaign_structure_get, commerce_pages_list, commerce_page_buyers_list, commerce_access_check, commerce_checkout_session_preview
pages.writecampaign_structure_upsert, campaign_structure_publish, commerce_refund_issue
site.deployments.readsite_list_deployments, site_preview_deployment
site.deployments.writesite_deploy_inline, site_deploy_multifile
analytics.readanalytics_get, analytics_export
webhooks.readwebhooks_list
webhooks.writewebhooks_create, webhooks_delete, webhooks_test
tracking.templates.readtracking_list_templates
tracking.templates.writetracking_upsert_template
tracking.personalization.readtracking_list_personalization_rules
tracking.personalization.writetracking_upsert_personalization_rule
routing.context_origins.readrouting_list_context_origins
routing.context_origins.writerouting_update_context_origins
system.usage.readsystem_usage_meters
system.audit.readsystem_audit_events
agent.strategy.readHosted Strategy Repository retrieval such as strategy_query when that capability is enabled

The live tool catalog appears in tools/list regardless of scopes. Scope errors only surface when a tool is actually called.

Some handles also expose pack-specific resources and prompts. For example, commerce-enabled handles may expose resources such as tenx://commerce/overview and guided prompts such as refund_triage alongside the tool catalog.

Companion workflow guide:


Links

links_list

List all links for a handle.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key (defaults to session handle)

Example prompt

"List all my links for handle hello."

Response shape

{
  "handle": "hello",
  "links": [
    {
      "slug": "pricing",
      "destinationUrl": "https://example.com/pricing",
      "title": "Pricing page",
      "enabled": true,
      "position": 1,
      "createdAt": "2026-01-10T12:00:00Z"
    }
  ]
}

links_upsert

Create or update a link by slug.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
slugstringYesLink slug (path segment, e.g. pricing)
payloadobjectYesLink fields to set (destinationUrl, title, enabled, etc.)

Example prompt

"Create a link with slug launch pointing to https://example.com/launch for handle hello."

Response shape

{
  "slug": "launch",
  "destinationUrl": "https://example.com/launch",
  "title": "Launch",
  "enabled": true,
  "updatedAt": "2026-03-02T09:00:00Z"
}

links_health_check

Run destination health checks on links (verifies that destination URLs are reachable).

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
payloadobjectNoOptional body — can include slugs array to limit which links are checked

Example prompt

"Run a health check on all links for hello and tell me which ones are broken."

Response shape

{
  "results": [
    { "slug": "pricing", "status": 200, "healthy": true },
    { "slug": "old-page", "status": 404, "healthy": false }
  ]
}

links_route_preview

Preview the routing decision for a link under given conditions, without actually redirecting.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
slugstringYesLink slug
payloadobjectNoConditions to simulate (e.g. visitor context, device type)

Example prompt

"Show me where the pricing link would redirect a mobile visitor from the US."

Response shape

{
  "slug": "pricing",
  "resolvedUrl": "https://example.com/pricing-mobile",
  "ruleApplied": "mobile-us-variant",
  "fallback": false
}

Site Management

site_deploy_inline

Deploy a complete HTML page to a handle's site in one step.

This publishes the site root only. For public paths like /perfume, /courses, /store, or /dashboard, use site_deploy_multifile with nested files such as perfume/index.html, courses/index.html, store/index.html, and dashboard/index.html. In ChatGPT, successful results also render launcher buttons for the live site, preview URL, and routed page URLs.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
htmlstringYesFull HTML content to deploy
activatebooleanNoIf false, creates a draft only. Default: true

For ChatGPT and other MCP clients, do not pass deploymentId when creating a deployment. The server generates one and returns it in the response for later preview or activation steps.

Example prompt

"Deploy this HTML to handle hello and activate it immediately: <html>...</html>"

Response shape

{
  "handle": "hello",
  "deploymentId": "dep_abc123",
  "status": "ACTIVE",
  "liveUrl": "https://hello.10x.in/",
  "pageUrls": ["https://hello.10x.in/"],
  "activatedAt": "2026-03-02T09:05:00Z",
  "previewUrl": "https://api.10x.in/v2/public/preview/activate?token=eyJ..."
}

site_deploy_multifile

Create a multi-file static site deployment and receive pre-signed upload URLs. Must include index.html in the file list.

Use nested index.html files to publish specific public paths. Example: perfume/index.html becomes https://hello.10x.in/perfume. In ChatGPT, successful results also render launcher buttons for the live site, preview URL, and routed page URLs.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
filesarrayYesArray of { path, contentType, sizeBytes? } — must include index.html

For ChatGPT and other MCP clients, do not pass deploymentId when creating the draft. The server generates one and returns it for upload, preview, and activation.

Example prompt

"Create a multifile deployment for hello with index.html, courses/index.html, store/index.html, and dashboard/index.html."

Response shape

{
  "handle": "hello",
  "deploymentId": "dep_xyz789",
  "status": "DRAFT",
  "liveUrl": "https://hello.10x.in/",
   "pageUrls": [
     "https://hello.10x.in/",
     "https://hello.10x.in/courses",
     "https://hello.10x.in/store",
     "https://hello.10x.in/dashboard"
   ],
   "uploadUrls": [
     { "path": "index.html", "contentType": "text/html", "putUrl": "https://s3.amazonaws.com/..." },
     { "path": "courses/index.html", "contentType": "text/html", "putUrl": "https://s3.amazonaws.com/..." },
     { "path": "store/index.html", "contentType": "text/html", "putUrl": "https://s3.amazonaws.com/..." },
     { "path": "dashboard/index.html", "contentType": "text/html", "putUrl": "https://s3.amazonaws.com/..." }
   ],
  "previewUrl": "https://api.10x.in/v2/public/preview/activate?token=eyJ..."
}

Upload each file to its putUrl with a PUT request, then activate the deployment separately if needed.


site_list_deployments

List all site deployments for a handle.

In ChatGPT, successful results render a launcher button for the live site URL.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key

Example prompt

"List recent deployments for hello."

Response shape

{
  "handle": "hello",
  "activeDeploymentId": "dep_abc123",
  "liveUrl": "https://hello.10x.in/",
  "deploymentCount": 2,
  "deployments": [
    {
      "deploymentId": "dep_abc123",
      "status": "ACTIVE",
      "isActive": true,
      "liveUrl": "https://hello.10x.in/",
      "createdAt": "2026-03-02T09:05:00Z",
      "activatedAt": "2026-03-02T09:05:00Z"
    },
    {
      "deploymentId": "dep_old456",
      "status": "INACTIVE",
      "createdAt": "2026-02-20T14:00:00Z"
    }
  ]
}

site_preview_deployment

Get a signed preview URL for any deployment (active or draft).

In ChatGPT, successful results render launcher buttons for the signed preview URL and the live site URL.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
deploymentIdstringYesDeployment ID (e.g. dep_abc123)

Example prompt

"Give me a preview link for deployment dep_abc123 on handle hello."

Response shape

{
  "handle": "hello",
  "deploymentId": "dep_abc123",
  "liveUrl": "https://hello.10x.in/",
  "previewUrl": "https://api.10x.in/v2/public/preview/activate?token=eyJ...",
  "expiresInSec": 900
}

pages_list

List creator pages for a handle with an optional status filter.

In ChatGPT, successful results render launcher buttons for the returned public page URLs.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
statusDRAFT \PUBLISHED \ARCHIVEDNoFilter by page status

Example prompt

"Show me all published pages for hello."

Response shape

{
  "handle": "hello",
  "pageCount": 1,
  "pages": [
    {
      "pageSlug": "welcome",
      "title": "Welcome",
      "status": "PUBLISHED",
      "pageUrl": "https://hello.10x.in/welcome"
    }
  ]
}

campaign_structure_get

Fetch campaign detail structure for a campaign (CAMPAIGN_DETAIL_V1 pages).

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
campaignIdstringYesCampaign ID (for example cmp_launch)

Example prompt

"Fetch the campaign structure for campaign cmp_launch on handle hello."

Response shape

{
  "handle": "hello",
  "campaignId": "cmp_launch",
  "pageSlug": "campaign-launch",
  "accessMode": "FREE_WITH_LOGIN",
  "status": "PUBLISHED",
  "structureType": "CAMPAIGN_DETAIL_V1",
  "schemaVersion": 3,
  "schemaS3Key": "site-structure/hello/campaigns/cmp_launch/v3.json",
  "schema": {
    "modules": [{ "id": "hero", "type": "hero_banner" }]
  }
}

campaign_structure_upsert

Create or update the campaign detail structure page and schema JSON.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
campaignIdstringYesCampaign ID
payloadobjectYesRequest payload; include schema JSON object and page details

Example prompt

"Upsert campaign structure for cmp_launch with pageSlug campaign-launch and schema modules."

Response shape

{
  "ok": true,
  "handle": "hello",
  "campaignId": "cmp_launch",
  "pageSlug": "campaign-launch",
  "accessMode": "FREE_WITH_LOGIN",
  "status": "DRAFT",
  "schemaS3Key": "site-structure/hello/campaigns/cmp_launch/v4.json",
  "schemaVersion": 4
}

campaign_structure_publish

Publish campaign detail structure page (server enforces FREE_WITH_LOGIN).

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
campaignIdstringYesCampaign ID

Example prompt

"Publish campaign structure page for cmp_launch."

Response shape

{
  "ok": true,
  "handle": "hello",
  "campaignId": "cmp_launch",
  "pageSlug": "campaign-launch",
  "accessMode": "FREE_WITH_LOGIN",
  "publishedAt": "2026-03-06T12:00:00.000Z"
}

Companion API/Edge Surfaces (Function Bindings)

Function binding creation and runtime invocation are API/Edge flows that complement MCP usage.

Create function binding (control-plane)

POST /v2/handles/{handle}/function-bindings

Bindings now declare:

  • status: ACTIVE or DISABLED
  • target: template or skill
  • exposure.publicWeb and exposure.authenticatedMcp
  • execution.mode: sync or async
  • tool.name, tool.description, and inputSchema
  • config: target-specific runtime config

Public Web exposure is limited to template-backed bindings in v1.

Discover enabled bindings (public handle)

GET /v2/public/handles/{handle}/function-bindings

Returns only ACTIVE template-backed bindings exposed on the public Web lane.

Discover authenticated MCP bindings

GET /v2/public/handles/{handle}/function-bindings/mcp

Requires PAT scope mcp.connect plus binding/skill invoke authorization.

Invoke binding runtime (edge)

GET|POST /_edge/fn/{handle}/{bindingKey}

Use this for request-level invocation tests and integration checks.

Invoke authenticated MCP binding

POST /v2/public/handles/{handle}/function-bindings/{bindingKey}/invoke

Returns the normalized sync or async tool envelope used by hosted/compat MCP.

For runnable examples, use Platform-Wide Feature Exploration Lab.


Analytics

analytics_get

Get click and conversion rollups for a handle.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
queryobjectNoQuerystring filters (e.g. { "slug": "pricing", "period": "7d" })

Example prompt

"How many clicks did handle hello get in the last 7 days?"

Response shape

{
  "handle": "hello",
  "period": "7d",
  "clicks": 1842,
  "conversions": 94,
  "conversionRate": 0.051
}

analytics_export

Export raw analytics data (larger datasets, for reporting).

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
queryobjectNoExport filters (date range, slug, etc.)

analytics_campaign_health

Check campaign health and surface marketing signals via the agent discovery endpoint.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
payloadobjectNoOptional discovery context

Tracking

tracking_list_templates

List all tracking templates (Meta Pixel, GTM events, GA4, custom webhooks) for a handle.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key

Response shape

{
  "templates": [
    { "templateKey": "meta_pixel", "enabled": true, "config": { "pixelId": "12345" } },
    { "templateKey": "ga4_event", "enabled": true, "config": { "measurementId": "G-XXXX" } }
  ]
}

tracking_upsert_template

Create or update a fixed-key tracking template. templateKey must be one of: meta_pixel, gtm_event, ga4_event, custom_webhook. This tool does not accept freeform {{variable}} UTM string templates.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
payload.templateKeyenumYesOne of meta_pixel, gtm_event, ga4_event, custom_webhook
payload.enabledbooleanNoDisable the template when false
payload.configobjectNoTemplate configuration object. Use eventName for event-driven templates or endpointUrl for custom_webhook

Example prompt

"Add a Meta Pixel with ID 98765 to handle hello."

Working example

{
  "handle": "deepak",
  "payload": {
    "templateKey": "ga4_event",
    "enabled": true,
    "config": {
      "eventName": "ai_masterclass_visit"
    }
  }
}

tracking_list_personalization_rules

List A/B and personalization rules for a handle.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key

tracking_upsert_personalization_rule

Create or update a personalization rule by ID.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
ruleIdstringYesLowercase rule identifier matching ^[a-z0-9][a-z0-9_-]{1,63}$
payload.enabledbooleanNoDisable the rule when false
payload.prioritynumberNoLower numbers run first
payload.whenobjectNoFixed match conditions using sourceIn, campaignIn, countryIn, deviceIn, and segmentIn arrays
payload.variant.idstringYesRequired variant identifier
payload.variant.titlestringNoOptional personalized title
payload.variant.ctastringNoOptional personalized CTA
payload.variant.destinationUrlstringNoOptional destination override
payload.variant.metadataobjectNoOptional arbitrary metadata
payload.trafficAllocationnumberNoOptional 0-1 traffic allocation

There are no generic operators such as equals. Matching uses the fixed ...In arrays inside payload.when.

Working example

{
  "handle": "deepak",
  "ruleId": "ai-masterclass-2026-landing",
  "payload": {
    "enabled": true,
    "priority": 100,
    "when": {
      "campaignIn": ["ai-masterclass-2026"]
    },
    "variant": {
      "id": "masterclass_variant_a",
      "title": "AI Masterclass 2026",
      "cta": "Reserve your seat",
      "destinationUrl": "https://deepak.10x.in/masterclass"
    }
  }
}

tracking_resolve_context

Resolve a ?ctx= token into its attribution data and variables. No connector token required — public endpoint.

Inputs

ParameterTypeRequiredDescription
ctxstringYesThe CTX token value from a link URL

Response shape

{
  "attribution": { "source": "newsletter", "campaign": "march-launch" },
  "vars": { "variant": "B", "segment": "returning" }
}

tracking_write_signal

Write a behavioral signal into the chain for a visitor session.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
payloadobjectYesSignal body (type, sessionId, value, etc.)

tracking_resolve_chain

Evaluate a chain trigger and get the routing decision for a visitor.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
payloadobjectYesTrigger context (chainId, sessionId, signals, etc.)

Routing

routing_list_context_origins

List allowlisted browser origins that can generate CTX tokens.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key

routing_update_context_origins

Replace the full list of allowlisted browser origins.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
payloadobjectYesNew origins list

routing_read_chain_session

Read a chain session — accumulated signals and current state.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
payloadobjectYesSession reference (chainId, sessionId)

routing_prefetch_decisions

Pre-compute routing decisions for multiple trigger events in a single call.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
payloadobjectYesArray of trigger contexts to pre-evaluate

Webhooks

webhooks_list

List all webhook subscriptions for a handle.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key

Response shape

{
  "subscriptions": [
    {
      "subscriptionId": "wh_abc",
      "endpointUrl": "https://myserver.com/hook",
      "eventTypes": ["link.clicked", "conversion.recorded"],
      "enabled": true
    }
  ]
}

webhooks_create

Register a new webhook subscription.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
payload.endpointUrlstringYesPublic HTTPS destination URL
payload.eventTypesarrayNoOptional event list. Omit this field to subscribe to all supported webhook events
payload.enabledbooleanNoDisable the subscription when false

Example prompt

"Create a webhook for handle hello that fires on link.clicked events and sends to https://myserver.com/hook."

Working example

{
  "handle": "deepak",
  "payload": {
    "endpointUrl": "https://n8n.1to10x.ai/webhook/lead-capture",
    "eventTypes": ["lead.captured", "link.clicked"],
    "enabled": true
  }
}

The destination URL does not need pre-registration in 10x. It must be public HTTPS, resolvable, and outside the blocked private-host list.

Supported event names include link.clicked, deployment.created, deployment.activated, skill.invoked, link.routed, link.context_created, conversion.recorded, personalization.resolved, campaign.created, campaign.health_changed, lead.captured, moderation events, webhook.delivery.terminal_failure, destination-domain events, groupbuy events, scene events, agent events, and QA events.


webhooks_delete

Delete a webhook subscription by ID.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
subscriptionIdstringYesWebhook subscription ID

webhooks_test

Send a test event to a webhook to verify delivery.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
subscriptionIdstringYesWebhook subscription ID
payloadobjectNoOptional test event body

Agent (AI Planning & Execution)

The agent tools follow a lifecycle: discover → strategy → proposal → run.

agent_discover

Run agent discovery to surface marketing signals and opportunities for a handle.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
payloadobjectNoOptional discovery context

agent_generate_strategy

Generate strategy recommendations based on discovery signals.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
payloadobjectNoStrategy generation context

agent_list_proposals

List execution proposals, optionally filtered by status (PENDING, APPROVED, REJECTED, RUNNING, COMPLETED).

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
statusstringNoStatus filter

agent_create_proposal

Create an execution proposal from strategy output.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
payloadobjectYesProposal definition

agent_approve_proposal

Approve a pending proposal so it can be executed.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
proposalIdstringYesProposal ID

agent_reject_proposal

Reject a pending proposal with an optional reason.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
proposalIdstringYesProposal ID
payloadobjectNoOptional rejection reason

agent_start_run

Start execution of an approved proposal.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
payloadobjectYesRun parameters (proposalId, etc.)

agent_get_run_status

Poll the status of a running or completed execution, including step-level details.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
runIdstringYesRun ID

Response shape

{
  "runId": "run_xyz",
  "status": "RUNNING",
  "steps": [
    { "stepId": "s1", "name": "upsert-links", "status": "COMPLETED" },
    { "stepId": "s2", "name": "deploy-site", "status": "RUNNING" }
  ]
}

agent_rollback_run

Rollback a completed run, reverting changes made during execution.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
runIdstringYesRun ID

System

system_health

Check connector health and verify OAuth-backed MCP access for a handle.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key

Example prompt

"Is the MCP connection healthy for handle hello?"

Response shape

{
  "handle": "hello",
  "healthy": true,
  "links": 12
}

system_usage_meters

Get current usage and rate-limit meters for a handle.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
payloadobjectNoOptional filter

system_audit_events

List recent audit events (API actions) for a handle.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
payloadobjectNoOptional body (limit, cursor, etc.)

Code Runs

code_runtime_list

List configured code runtimes available for a handle.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key

code_run_submit

Submit a code run with an idempotency key.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
payloadobjectYesRun definition (runtimeId, code, idempotencyKey, etc.)

code_run_status

Fetch the current status of a submitted code run.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
runIdstringYesRun ID

code_run_fetch_output

Fetch inline output or file output metadata for a completed run.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
runIdstringYesRun ID

Forms

forms_schema_get

Retrieve the learned schema for a form.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
formIdstringNoCurrently only link_form_v1 is supported. Defaults to link_form_v1

link_form_v1 is the shipped link-management baseline schema. There is currently no built-in lead-capture baseline form for fields like name, email, phone, or job title.


forms_feedback_record

Record feedback on a form submission (used to improve schema learning).

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
formIdstringNoForm identifier (defaults to link_form_v1)
payloadobjectYesFeedback body

links_form_submit

Submit a form with schema validation and automatic feedback recording in one call.

Inputs

ParameterTypeRequiredDescription
handlestringNoHandle key
formIdstringNoForm identifier (defaults to link_form_v1)
slugstringNoOptional slug override
valuesobjectNoForm values keyed by canonical field keys
feedbackbooleanNoWhen true, records successful feedback after submit

Troubleshooting

ErrorMeaningFix
isError: true + status: 401Connector grant missing or expiredRe-open connector auth and complete OAuth for the handle
isError: true + status: 403 + insufficient_scopeConnector grant lacks a required scopeRe-authorize connector with the missing scope
isError: true + missing_handleNo handle was resolvedPass handle explicitly or set LINK_PLATFORM_DEFAULT_HANDLE
isError: true + status: 404Resource not foundVerify the slug/ID exists for your handle
isError: true + status: 429Rate limitedRetry after a short backoff

Related