Skip to Content

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.ai

Endpoints

EndpointSandbox behaviour
GET /ugc/health200, no key required
POST /ugc/v1/processMatches against the static catalogue, returns top-K ads
GET /v1/ad-manager/campaignsReturns sandbox campaigns
GET /v1/ad-manager/ad-setsReturns 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/health

Testing 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:

EndpointMalformed bodyNo key
POST /ugc/v1/process400401

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.

Last updated on