Sandbox Environment
The sandbox serves a static ad catalogue embedded at startup, returning the top semantic matches for each request in the same response schema as production. Use it to build and verify your integration before pointing at production.
Base URL
https://sandbox.adzen.aiEndpoints
| Endpoint | Sandbox behaviour |
|---|---|
GET /ugc/health | 200, no key required |
POST /ugc/v1/process | Matches against the static catalogue, returns top-K ads |
GET /v1/ad-manager/campaigns | Returns sandbox campaigns |
GET /v1/ad-manager/ad-sets | Returns sandbox ad sets |
No billing events are generated by any sandbox call.
The UGC sandbox path differs from production. In the sandbox, UGC is
served at /ugc/v1/process. In production it is
https://api.adzen.ai/v1/ugc/process. When you switch to production, change
the host, the path and the key. Ad Manager paths are the same in both
environments.
There is no sandbox for AI Surfaces yet. Talk to your Adzen account representative about testing an AI integration.
Getting a sandbox key
Ask your Adzen account representative. Sandbox keys are scoped to a single product in the same way production keys are.
Requests without a valid key return 401 on sandbox exactly as they do in
production, so authentication failures surface during development rather than
at cutover.
Example
curl -X POST https://sandbox.adzen.ai/ugc/v1/process \
-H 'Content-Type: application/json' \
-H 'X-API-Key: YOUR_SANDBOX_KEY' \
-d '{
"post_id": "thread-12345",
"message": "Looking for a good plumber in Seattle",
"geo_target": { "state": "US-WA" }
}'Check the health endpoint first. It needs no key and confirms you can reach the environment at all:
curl https://sandbox.adzen.ai/ugc/healthTesting the no-match path
About one in five sandbox UGC requests returns the no-match body instead of ads, so your client meets it during development:
{ "no_ad_retry_after_seconds": 86400 }This body has no ads field. See
No match for how to handle it.
Testing failure paths
To exercise your error handling, send a deliberately malformed request:
| Endpoint | Malformed body | No key |
|---|---|---|
POST /ugc/v1/process | 400 | 401 |
Because responses are schema-identical to production, the same client code handles both environments.
Before you go live: production is US-only
Production accepts API calls and impression and click beacons from US IP
addresses only. Requests from outside the US get 403. The sandbox does
not apply this rule, so a server outside the US can pass sandbox testing and
still be rejected in production.