Main Header

Axiom for SignalPress

Updated on July 30, 2026

Use Settings to configure delivery, Routing to select events, Logs to inspect delivery history, and Help for this guide. Routing requires Tier 1; Tier 2 adds request rules. Log visibility, payload previews, and deletion can be delegated separately with Tier 2 role permissions.

Send signals to Axiom for dataset ingestion.

Axiom is a premium SignalPress service. The active license must include service_axiom or *.

Hub service ID: axiom. Index: Integrations Overview. Target from PHP: Service Targeting.

Get the API token

  1. Sign in to [Axiom](https://app.axiom.co/) and create or open a dataset (for example signalpress).
  2. Open Settings → API tokens (or your org token settings).
  3. Create an API token with permission to ingest into that dataset. Do not use a personal access token (PAT).
  4. Copy the token immediately.
  5. In SignalPress, activate Axiom, paste the token, enter the Dataset name, and confirm Ingest Domain (api.axiom.co for most orgs).
  6. Set a Project name, click Save changes, enable the service if needed, and save again.
  7. Click Send test signal.

If your org uses a regional edge deployment, set Ingest Domain to that host only (for example us-east-1.aws.edge.axiom.co or eu-central-1.aws.edge.axiom.co). SignalPress picks the matching path automatically (/v1/datasets/{name}/ingest on api.axiom.co, /v1/ingest/{name} on *.edge.axiom.co).

  • [Axiom API tokens](https://axiom.co/docs/reference/tokens)
  • [Send data via API](https://axiom.co/docs/restapi/ingest)
  • [Ingest into dataset (cloud API)](https://axiom.co/docs/restapi/endpoints/ingestIntoDataset)

Test the connection

  1. Open the dataset in Axiom (Stream or Query).
  2. In SignalPress, click Send test signal.
  3. Confirm an event with event == "signalpress_test" appears.

Send a signal

PHP

sp_capture(
	'payment_provider_failed',
	[
		'message'  => 'The payment provider returned an unexpected response.',
		'level'    => 'error',
		'order_id' => 123,
		'response' => $provider_response,
	],
	[
		'source'   => 'checkout',
		'services' => [ 'axiom' ],
	]
);

Axiom receives a JSON event with message, level, event name, project, environment, source, nested payload and context, site URL, and SignalPress version.

The signalpress/axiom/payload filter can adjust the event JSON before delivery.

Troubleshooting

  • A disabled test button means API Token, Dataset, Ingest Domain, or Project has not been saved.
  • HTTP 401 or 403 usually means the token is a PAT, lacks ingest permission, or the dataset name is wrong.
  • HTTP 404 with dataset not found means the Dataset name does not exist yet — create it in Axiom under Settings → Datasets, or use an existing dataset name.
  • HTTP 404 with path /v1/ingest/... was not found means a domain/path mismatch — keep api.axiom.co (cloud) or switch to a *.edge.axiom.co host.
  • Successful ingestion returns a 2xx response with "failed": 0.