Authentication
Authentication depends on route and method:- Public read endpoints (
GET /v1/ads/*) require API key or authenticated session. - Session-protected account endpoints (
/v1/ads/me/*) require Better Auth session. - Admin endpoints (
/internal/*) requireAuthorization: Bearer <ADMIN_API_KEY>.
Response Envelope
Successful responses use:data(required)meta(optional, for list endpoints)
error.codeerror.message
Field Naming (v1)
- Response payload fields are
camelCase. - Query parameter names follow per-route definitions (existing
snake_casefilters such asis_active,media_type,ad_archive_idare preserved).