Which credential should I use?
These credentials are not interchangeable. The Conversion API rejects workspace
execution tokens and OAuth management credentials. MCP rejects Signals workspace
secrets and OAuth management credentials.
How do I authenticate the REST API?
Send the Signals workspace secret as a bearer token to the server-side Conversion API athttps://plainrouter.com/api/v1:
PLAINROUTER_TOKEN must contain the Signals workspace secret. A missing or
invalid secret returns HTTP 401.
How do I authenticate the TypeScript SDK?
Install@plainrouter/sdk@0.5.1, then configure the generated client explicitly:
signalTrackerSecret.
The property keeps its pre-collapse name for compatibility.
How do I authenticate the Python SDK?
Installplainrouter==0.5.2, then create a client with the Signals workspace secret:
asyncio method.
How do I authenticate the Ruby SDK?
Installplainrouter-sdk 0.1.1, then create a client with the Signals workspace secret:
How do I authenticate the Go SDK?
Installgithub.com/plainrouter/sdk-go@v0.5.2, create the generated client, and attach the Signals workspace secret to the request context:
How do I authenticate the CLI?
The CLI uses the same Signals workspace secret. Current0.5.x builds call it a
tracker token in prompts for compatibility. Store it through the hidden login
prompt for an interactive workstation:
PLAINROUTER_TOKEN through the job’s secret
manager before running the command. The CLI does not expose a --token option.
An environment token takes precedence over the locally stored token.
How do I try MCP without a credential?
Connect an MCP client to the synthetic test endpoint:get_account_state, get_signal_health, get_performance, and
validate_sandbox_event. Every response is synthetic and marked with
"sandbox": true. The endpoint reads no tenant data, persists nothing, and
contacts no advertising provider.
The production endpoint also permits anonymous protocol discovery, tool and
resource listing, and reads of static ui:// app shells. Every production tool
call and every account-data read still requires an account-bound workspace
execution token.
How do I authenticate Plainrouter MCP?
Configure an MCP-compatible client with these exact connection values:
A workspace owner issues the token from API in the dashboard for one workspace,
one active Meta ad account, one Read, Write, or Admin tier, and a 30, 90, or 365
day expiry.
Call
get_account_state first. Confirm the returned workspace and Meta ad
account before calling another tool. Tool arguments cannot override the account
stored with the token.
How do I use an OAuth management credential?
An OAuth management credential has one documented agent-facing use:Why does a dashboard URL reject my bearer token?
Dashboard settings and approval pages require a signed-in browser session. A valid workspace execution token or OAuth management credential cannot replace that session, even with an active grant or Admin tier. If an automation receives401 on a dashboard URL, check the requested interface before rotating credentials. Use the documented MCP or API operation with its matching credential, or sign in to complete the interactive action. For grant management, follow the dashboard revocation steps or the separately authorized revoke_grant MCP tool.
Which clients are available?
The REST contract and all four SDKs expose the signed Conversion API operations. The
PyPI and npm CLI distributions expose nine commands and do not include an ingestion-verification
command. Use REST, an SDK, or MCP for ingestion verification.
Which credentials must not be confused?
- A Signals workspace secret cannot authenticate MCP.
- A workspace execution token cannot authenticate the Conversion API.
- An OAuth management credential cannot authenticate MCP.
- A browser session cannot replace an API or MCP bearer credential.
- A same-origin Path B forwarding secret authenticates generated forwarding infrastructure only. It is not an API, SDK, CLI, or MCP credential.
- Meta access tokens remain on the Plainrouter server. Do not place a Meta token in a Plainrouter client configuration.