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
- Sign in to [Axiom](https://app.axiom.co/) and create or open a dataset (for example
signalpress). - Open Settings → API tokens (or your org token settings).
- Create an API token with permission to ingest into that dataset. Do not use a personal access token (PAT).
- Copy the token immediately.
- In SignalPress, activate Axiom, paste the token, enter the Dataset name, and confirm Ingest Domain (
api.axiom.cofor most orgs). - Set a Project name, click Save changes, enable the service if needed, and save again.
- 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
- Open the dataset in Axiom (Stream or Query).
- In SignalPress, click Send test signal.
- 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
401or403usually means the token is a PAT, lacks ingest permission, or the dataset name is wrong. - HTTP
404withdataset not foundmeans the Dataset name does not exist yet — create it in Axiom under Settings → Datasets, or use an existing dataset name. - HTTP
404withpath /v1/ingest/... was not foundmeans a domain/path mismatch — keepapi.axiom.co(cloud) or switch to a*.edge.axiom.cohost. - Successful ingestion returns a
2xxresponse with"failed": 0.
What to read next
- Integrations Overview — browse and activate services
- Your First Connection Test — send a test signal and read the log
- Advanced Event Routing — per-service event filters
- Connection Tests and Delivery Log — interpret delivery results
- Service Targeting — limit destinations from PHP