Ads Manager
REST API
Plan, launch and report on campaigns from your own tools. The API uses the same permissions as the person who created the key, and every call is written to the journal with source API.
EndpointWhat it does
POST /v1/forecastsScreens, plays and impressions for a plan, before you payPOST /v1/campaignsCreate a campaign from a forecast, as a draft or for reviewGET /v1/campaigns/{id}Status, budget, pacing and flightGET /v1/campaigns/{id}/resultsImpressions, plays, scans and spend by day, hour and screenPOST /v1/creativesUpload a still or a video of up to 20 seconds and run the spec checksGET /v1/screensScreens in an area, with venue type and opening hourscurl https://api.hub.verse.ad/v1/forecasts \
-H "Authorization: Bearer $VERSE_KEY" \
-H "Content-Type: application/json" \
-d '{
"areas": [{ "lat": 53.7997, "lng": -1.5492, "radiusKm": 3 }],
"venueTypes": ["cafes", "gyms", "coworking"],
"hours": { "days": ["mon","tue","wed","thu","fri"], "from": "07:00", "to": "19:00" },
"budget": 300,
"currency": "USD"
}'const res = await fetch("https://api.hub.verse.ad/v1/forecasts", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.VERSE_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
areas: [{ lat: 53.7997, lng: -1.5492, radiusKm: 3 }],
venueTypes: ["cafes", "gyms", "coworking"],
budget: 300,
currency: "USD"
})
});
const forecast = await res.json();
console.log(forecast.screens, forecast.impressions);import os, requests
r = requests.post(
"https://api.hub.verse.ad/v1/forecasts",
headers={"Authorization": f"Bearer {os.environ['VERSE_KEY']}"},
json={
"areas": [{"lat": 53.7997, "lng": -1.5492, "radiusKm": 3}],
"venueTypes": ["cafes", "gyms", "coworking"],
"budget": 300,
"currency": "USD",
},
)
print(r.json()["screens"], r.json()["impressions"])Examples are illustrative.
- Create keys in Ads Manager › Settings › API keys. Keys are scoped to one workspace.
- Rate limit: 600 requests a minute per key. Responses carry X-RateLimit-Remaining.
- Money is in minor units only where the field name ends in Minor; everywhere else it is a decimal in the campaign currency.