API Concepts
A short orientation to how the Vibe Developer Platform API is shaped. Read this once before integrating; come back to the linked References when you need details.
Object model
Vibe's resources form a tree:
graph TD
Account --> Advertiser
Advertiser --> Campaign
Advertiser --> Creative
Advertiser --> Audience
Advertiser --> ImpressionTracker
Campaign --> Strategy
Strategy --> CA[Creative associations]
Audience --> AudienceSync
AudienceSync --> Batch
And two read-only catalogs you'll query while building a Strategy's targeting:
- Channels — CTV apps and channels.
- Interest segments — audience taxonomies.
Identifiers
| Object | ID type |
|---|---|
| Account | integer |
| Advertiser | UUID |
| Campaign | UUID |
| Strategy | UUID |
| Creative | UUID |
| Audience | UUID |
| AudienceSync | UUID |
Conventions in one place
Every API call shares the same contract. The details live in their own pages:
- Required headers and scopes —
Authorization,X-Vibe-Revision, and the scope each endpoint needs. - API Versioning — how the
X-Vibe-Revisionheader pins behavior across releases. - Pagination —
limitandoffseton list endpoints. - HEM Format — hashed-email specification for audience syncs.
Errors
Vibe API endpoints return errors in a uniform JSON envelope:
{
"error": {
"type": "Bad Request",
"message": "Missing or invalid account_id query parameter.",
"status": 400,
"detail": null,
"request_id": "ec7cc78b-00ec-4883-bee1-5188b28635aa",
"doc_url": null
}
}| Field | Description |
|---|---|
type | Short error classifier. |
message | Human-readable description. |
status | HTTP status code. |
detail | Structured context for the error, or null. |
request_id | Include this value in any support request — it lets Vibe trace the call. |
doc_url | Link to the relevant docs page when applicable. |
Common status codes:
| Status | Meaning |
|---|---|
| 400 | Malformed request — bad JSON, missing required header, wrong content-type, unknown revision. |
| 401 | Missing or invalid token. |
| 403 | Authenticated but the token lacks the required scope. |
| 404 | Resource doesn't exist or isn't visible to your tenant. |
| 409 | Conflict — operation isn't valid in the resource's current state. |
| 422 | Well-formed request that failed semantic validation. See detail. |
| 500 | Unexpected server error. Retry with exponential backoff. |
OAuth endpoints (/oauth2/auth, /oauth2/token) follow standards-compliant OAuth error shapes per RFC 6749, not this envelope. See OAuth.
Testing
Use a dedicated test Advertiser within your real Vibe account to keep test data isolated from production at this time.
Updated 6 days ago