Skip to main content
Use the Plainrouter REST API to send consented conversion events, inspect delivery, read stored reports, and submit or track governed action proposals. Start with an authenticated read from your workspace. The unauthenticated sandbox is retired. To compare this API with Meta’s own Marketing API, see the Meta Ads API guide.

Make your first request

Read retained events with your workspace Server secret.

Authenticate production requests

Choose a Server secret, Workspace key, or Management key for the interface.

Connection details

This is Plainrouter’s API, not Meta’s Graph API. Workspace keys used for MCP do not authenticate the Signals REST API.

Make your first request

You need an active Signals workspace, its Server secret and an HTTP client such as cURL. Store PLAINROUTER_TOKEN in a protected server environment; do not paste the secret into chat or commit it.
HTTP 200 confirms that the authenticated list request succeeded. Inspect the returned data and pagination before treating it as complete. An empty list is valid; it does not verify browser collection or destination delivery. This read creates no conversion. For an account-bound Actions read, use the separate Actions API.

Choose an endpoint group

Expand a group in the sidebar for its request fields, responses, and examples. Production operations use real workspace data; check each endpoint’s side effects before sending a request.

Set up collection and delivery

  1. Set up Signals, then configure your server with its Server secret. Keep credentials out of browser code, prompts, and source control.
  2. Use the identity-free ingestion diagnostic if you only need to check the authenticated write path. It does not verify a real website arrival.
  3. For advertising delivery, connect the intended Meta dataset. Send an actual conversion only with the recorded consent and original event data required by the conversion guide.
  4. Preserve the event ID on retries and inspect the delivery trace. HTTP 202 is ingestion acceptance; destination acceptance is a separate result.

Handle errors and retries

Send Accept: application/json on REST requests and Content-Type: application/json when sending a JSON body. Agent API routes under /api/v1/agent/ return JSON errors for authentication, validation and busy-workspace failures even when Accept is absent. This does not change MCP’s streaming headers. If a client receives HTML or a sign-in redirect, inspect the original status, Content-Type and request URL before parsing the body. Use the API base URL and the endpoint’s credential type; a dashboard URL is not an API endpoint. Do not forward a bearer key to a redirect target. See conversion errors, consent warnings for the applicable details. Prefer an official SDK when you want typed operations in application code.