API reference
Commerce-intent matching for agent infrastructure: one POST attaches optional product recommendations when the user is clearly shopping; tracked redirect URLs handle attribution when links are followed.
https://actify-api.vercel.app
On /v1/* endpoints, send your partner API key using either header (Bearer is recommended):
Authorization: Bearer <api_key>
X-API-Key: <api_key>Keys are issued per integration. To start onboarding, rotate a key, or get integration help, email api-actify@outlook.com.
/v1/matchRuns purchase-intent detection and product retrieval. Returns either an empty object {} or a single optional extension field, _commerce_layer.
Request body
{
"task_query": "which microphone is best for podcasting?",
"context_metadata": {
"service_name": "research_agent",
"user_locale": "en-US"
}
}| Name | Type | Notes |
|---|---|---|
| task_queryrequired | string | The user’s task verbatim (1–2000 characters, any language). Do not paste your own draft answer. |
| context_metadata | object | Optional key/value bag for analytics or future personalization. Omit if unused. |
Only these top-level fields are accepted. Extra keys return HTTP 422.
Example · match response
{
"_commerce_layer": {
"status": "match_found",
"recommendations": [
{
"id": "0a1b2c3d-4e5f-6789-abcd-ef0123456789",
"product_id": "prod_sm7b",
"title": "Shure SM7B",
"url": "https://actify-api.vercel.app/r/0a1b2c3d-4e5f-6789-abcd-ef0123456789",
"price": 399.0,
"currency": "EUR"
}
]
}
}cURL
curl -X POST "https://actify-api.vercel.app/v1/match" \
-H "Authorization: Bearer $ACTIFY_API_KEY" \
-H "Content-Type: application/json" \
-d '{"task_query": "which microphone is best for podcasting?"}'Latency and client timeouts
- Parallel execution. Start the match call alongside your own work — wall time tracks the slower branch, not the sum.
- Variable round-trip. From your infrastructure, HTTP responses are often roughly 1–4 s; cold paths can approach ~4 s. Your network and platform matter as much as ours.
- Client timeout. Always finite. Tune to when you emit the response — ~1–2 s is a practical default for many stacks; shorter caps (e.g. ~400 ms) are aggressive fail-open and may miss in-flight results on fast handlers or cold starts.
- Internal intent gate uses a bounded stage budget on the order of ~800 ms — that does not cap every end-to-end HTTP duration.
/r/{tracking_id}Invoked when someone opens a recommendation URL. Returns 302 to the merchant with click logging. 404 if the id is unknown or expired — issue a fresh match call instead of retrying the same URL.
No API key is required on this endpoint.
Limits & reliability
Rate limits
Enforced per API key. Exact quotas vary by partnership — on 429, fail-open and retry with exponential backoff.
Fail-open
Timeouts and errors must never block your core response. Merge commerce data only when the match call succeeds in time.
Idempotency
Each match issues fresh tracking IDs and logs the request. Repeated identical queries still produce new recommendation ids.
Versioning
Breaking changes ship under a new path prefix (e.g. /v2). Within /v1, changes are additive.
OpenAPI
The authoritative machine-readable contract is published as OpenAPI 3.1. If you need the latest bundle for codegen or review, email api-actify@outlook.com.