Skip to main content

API v2 Changelog

All notable changes to the Scope3 Agentic API v2 are documented here.

2.57.0 — April 10, 2026 at 10:21 PM UTC

  • MCP tool calls now return clear, descriptive error messages immediately when required fields are missing or field values are invalid, rather than failing later with a less informative error.
  • Advertiser API responses now consistently return the advertiser identifier as id across all endpoints (list, create, get, update, restore).

2.56.0 — April 10, 2026 at 7:58 PM UTC

  • Administrators on a parent organization can now switch into and access child customer accounts without requiring explicit per-account permissions.
  • The account list now includes child customers accessible through parent organization hierarchy, so all manageable accounts appear in the customer selector.
  • A maintenance banner is now displayed in the application when scheduled or active maintenance windows are configured, showing relevant timing and status information.
  • Fixed an issue where switching customer context could result in incorrect access permissions or an inconsistent impersonation state.
  • Fixed an issue where child customers now correctly inherit their parent’s contract and Terms of Service when they have no contract of their own.
  • Fixed an issue where returning from an impersonated customer session now correctly restores the previous customer context and page location.
  • Error messages shown in notifications now display the human-readable message instead of an internal error code when both are available.

2.55.0 — April 10, 2026 at 4:50 PM UTC

  • Added notification preference opt-out controls: users can now manage which notification types they receive per channel via GET /api/v2/buyer/notification-preferences and PUT /api/v2/buyer/notification-preferences.
  • In-app notifications now respect per-user opt-out preferences, automatically filtering out notification types the user has opted out of.
  • Email notifications now respect per-user opt-out preferences, skipping delivery for users who have opted out of a given notification type.
  • Signup flow now accepts only Advertiser and Seller as account types; previously accepted types such as “Agency” and “Other” are no longer valid.
  • Invitation requirement for joining an existing organization is now enforced by default for all users, without requiring a feature flag to be enabled.
  • The audience sync member removal schema has been aligned with the latest spec; the externalId, hashedEmail, hashedPhone, and uids fields are now consistently structured.
  • Fixed a security issue where an OAuth re-registration could allow one customer’s credentials to be overwritten by another customer using the same account identifier.
  • Fixed an issue where switching to a customer account via the API could return users scoped to the wrong customer.
  • Fixed authentication callback handling to correctly display a fallback for non-standard auth flows and handle missing customer state gracefully.
  • Fixed cross-links on the authentication pages to use correct navigation behavior, preventing unintended full page reloads.
  • Fixed Terms of Service and Privacy Policy links on the signup page to render as standard anchor links.
  • Fixed the customer_switch MCP tool to return a clear validation error when a non-numeric or invalid customer ID is provided, rather than an internal database error.

2.54.0 — April 8, 2026 at 9:11 PM UTC

  • Users now receive email notifications when new notifications are created, keeping teams informed of important updates without needing to log in.
  • A new suggestion apply flow has been added with webhook status tracking, allowing optimization suggestions to be applied and their progress monitored end-to-end.
  • Discovery session activity is now logged for analytics, enabling better insights into marketplace search and product interactions over time.
  • The UI now preserves the intended destination path through account resolution, so users are correctly redirected to their original target after authentication.
  • Packages are now associated with a single product via a direct relationship, improving consistency and reliability of package-product data.

2.53.0 — April 8, 2026 at 2:14 PM UTC

  • Added a new endpoint POST /api/v2/buyer/advertisers/:advertiserId/measurement-data/sync for syncing advertiser performance measurement data to the ingestion pipeline.
  • Unversioned API paths /api/buyer and /api/storefront now permanently redirect (308) to their versioned equivalents /api/v2/buyer and /api/v2/storefront.
  • The source field on measurement data objects now accepts only the values advertiser, mmp, or measurement_partner instead of any free-form string.
  • A new optional source_metric_name field is available on measurement data objects for mapping raw partner metric names.
  • Trace context (traceparent) and MCP session ID headers are now propagated to all downstream service calls, improving end-to-end request traceability.
  • Fixed a bug where customer-level API users were incorrectly blocked from updating or deleting campaigns that belong to a specific seat within their organization.
  • Fixed a data corruption issue where brand manifest URLs were being double-serialized, which could cause campaign execution to fail or send malformed data.
  • Fixed a bug where the brand_manifest URL field was not validated, allowing invalid values to be stored and forwarded.
  • Improved error messages when a tactic cannot be created because no brand is linked to the campaign, replacing a technical internal message with a clearer user-facing explanation.
  • When creating an advertiser, the brand is now automatically saved without requiring a separate “Register & Create” action.

2.52.0 — April 7, 2026 at 4:18 PM UTC

  • Added new optimization suggestion endpoints to the Buyer API, allowing you to list, view, approve, and reject AI-generated optimization suggestions for your media buys via the api_call tool.
  • Expired OAuth tokens are now automatically refreshed when resolving agent accounts, reducing authentication failures for OAuth-connected integrations.
  • API responses now include an x-trace-id header, making it easier to correlate requests with support when troubleshooting issues.
  • Fixed a bug where the campaign optimizer job used an incorrect argument format, which could cause optimization runs to fail silently.
  • MCP sessions are now reliably consistent across server instances, eliminating cases where customer switches or seat selections made on one server were not reflected when requests routed to a different server.

2.51.0 — April 6, 2026 at 5:38 PM UTC

  • Added a new testing endpoint POST /api/v2/testing/deleteSsoConnection that allows deletion of all SSO connections for a given WorkOS organization ID, returning 204 whether connections existed or not (idempotent). Requires SUPER_ADMIN authentication.
  • Seat-scoped API tokens now automatically infer the advertiser ID, allowing use of /advertisers/me/ in endpoint paths as a shorthand that resolves to your token’s advertiser. Explicit advertiser IDs in requests are validated against the token scope and will return a clear error on mismatch.
  • Advertiser account linking now returns a validation error immediately if any requested account is not found or has a sandbox/production mismatch, rather than silently skipping the invalid accounts.
  • Fixed a bug where the deleteUser cleanup endpoint would return a 502 error if the backend deletion step failed; the operation now completes successfully and reports the partial result.
  • Non-OAuth inventory source agents are now created in PENDING status instead of being auto-activated on inventory source creation.
  • Fixed the Terms of Service modal so the ToS link is now clickable and opens correctly.
  • Fixed an issue where isCustomerSwitched was not correctly detected for member-level customer switches, ensuring contract and ToS enforcement behaves correctly when switching between customers.
  • The measurement config API list endpoint now uses limit instead of take as the pagination parameter, and response data is accessed at data.data.items.

2.50.1 — April 3, 2026 at 6:50 PM UTC

  • Fixed an issue where the authConfigured field on storefront agent responses could incorrectly reflect a non-existent configuration source, ensuring it now accurately indicates whether authentication is set up.

2.50.0 — April 3, 2026 at 5:58 PM UTC

  • Inventory sources can now be edited after creation, including updating the endpoint URL, protocol, authentication type, and credentials.
  • A new hosted sales agent setup flow is available when creating inventory sources, simplifying agent onboarding.
  • Agents associated with non-OAuth inventory sources are now automatically activated upon source creation, removing the need for a manual activation step.
  • A new GET /billing/accounts endpoint is available for parent customers to view billing status across all managed child accounts.
  • Billing configuration is now scoped to the customer account rather than the storefront, enabling more consistent billing management across storefronts.
  • Parent customers can now accept the Terms of Service directly without needing to switch accounts first.
  • The Terms of Service acceptance flow now automatically provisions the required contract, removing a manual step that previously blocked new customers.
  • The ToS enforcement error code has been unified: all cases where ToS acceptance is required now return TOS_ACCEPTANCE_REQUIRED instead of the previous CONTRACT_REQUIRED code.
  • Fixed an issue where customer session context (including account type) was not correctly persisted when switching between parent and child accounts.
  • Fixed a bug where parent-account access restrictions were incorrectly applied after switching away from a child account.
  • Fixed a bug where a missing bid_price field in campaign execution returned an unformatted error; it now returns a clear validation error.
  • Fixed an issue where products added via product IDs were missing the bid_price field.
  • Fixed an issue where the generation_prompt asset status and creative brief were not resolving or clearing correctly.
  • Fixed a bug where tactic creation failed when no agent was associated with the campaign.
  • Fixed an issue where the SSO configuration feature flag was not evaluated for super admins and sellers.
  • Fixed distributed tracing context propagation so tool call spans are correctly linked to their originating HTTP request.

2.49.0 — April 2, 2026 at 4:45 PM UTC

  • The buyer campaigns list endpoint now supports an includeMediaBuys query parameter (true/false); when enabled, each campaign in the response will include its associated media buys with products, packages, and delivery data.
  • The Creative Assets page filters (Advertiser, Campaign, Creative) have moved into the page header, and the Campaign dropdown no longer requires selecting an advertiser first — you can now search campaigns independently.
  • Selecting a campaign in Creative Assets will automatically resolve and set the matching advertiser, improving navigation flow.
  • The billing readiness check on the Storefront page is now clickable for admin users, navigating directly to the billing settings page.
  • Org settings now support deep-linking to a specific tab via a ?tab= query parameter (e.g. ?tab=billing), and tab changes update the URL accordingly.
  • Fixed an issue where media buys were missing from the buyer campaigns list response.
  • Fixed an issue where accounts with a restricted billing onboarding status were not shown the onboarding card to complete their Stripe setup.
  • Fixed a loading state issue on the billing page where content would not show a skeleton placeholder immediately on load.
  • The onboarding card for billing now shows a different message for accounts that have a partially connected Stripe account, prompting them to finish setup.

2.48.0 — April 2, 2026 at 2:13 PM UTC

  • Storefront readiness status now surfaces partial states and failure details, giving you clearer visibility into why a storefront check did not fully pass.
  • Creative assignments are now reliably tracked per product based on format compatibility, ensuring the correct creatives are associated with each product in a media buy.
  • Super admins now correctly bypass the alpha opt-in feature flag, giving them full API access without needing explicit flag enrollment.
  • Compliance track results now include an optional failureReason field in the API response, explaining why a track failed or only partially passed.

2.47.0 — April 1, 2026 at 8:10 PM UTC

  • When creating a storefront, the platformId is now automatically generated from the storefront name (e.g. “CVS Media” becomes cvs-media), so you no longer need to provide it manually.
  • Campaign creatives are now automatically synchronized to media buys when a campaign is updated, removing the need to manage creative assignments manually.
  • Product discovery now uses your storefront’s configured inventory sources first, with a fallback to the broader agent catalog, so buyers see a more curated and relevant set of products.
  • Storefront compliance checks now load asynchronously, reducing wait times when accessing storefront readiness information.
  • A new endpoint GET /api/v2/buyer/creative-dashboard-url?advertiserId={advertiserId}&campaignId={campaignId} returns a fully-resolved URL for managing creative assets, replacing the previous two-step lookup flow.
  • Fixed an issue where the contract page incorrectly displayed “No active contract” even when an active contract existed.
  • Fixed the discover products selection bar and recommended plan flow to behave correctly.
  • Fixed an issue where switching customers did not redirect to the homepage; role-based route guards are now enforced on navigation.
  • The advertiser status filter has been moved to the page header dropdown for easier access.

2.46.0 — April 1, 2026 at 1:09 AM UTC

  • Non-admin users can now list accessible customers and switch between customer contexts via the MCP customer_list and customer_switch tools, without requiring administrator privileges.
  • Media buys can now be canceled or archived directly through the campaign update endpoint (PUT /api/v2/buyer/campaigns/{id}) using the new action field ("cancel" or "delete") in the mediaBuys array.
  • The /tools endpoint now enforces Terms of Service acceptance, returning a TOS_ACCEPTANCE_REQUIRED or CONTRACT_REQUIRED error if the organization has not completed onboarding requirements.
  • Localhost URLs are now permitted for storefront agent registration when running in a development environment, enabling local agent testing.
  • Fixed an issue where account API keys were not displaying correctly and new key creation was failing.
  • Fixed a bug where the storefront MCP endpoint was not mounting correctly following a recent rename.
  • Fixed an issue where switching organizations from the org settings page did not navigate to the home page as expected.
  • Fixed a bug where the admin portal could be incorrectly redirected to a customer-scoped URL.
  • Fixed an issue where media buy cache was not invalidated after product budget updates, causing stale data to be returned.
  • Fixed a bug where Terms of Service enforcement could be bypassed when switching accounts.
  • Fixed format previews not displaying for certain creative types.
  • Fixed upstream error details not being forwarded correctly in event logging responses.
  • The confirmStandaloneConversion field has been removed from the child account creation request body; standalone conversion now happens automatically.
  • The Storefronts section has been renamed to “Storefront” in the UI and now includes an edit dialog.

2.45.0 — March 31, 2026 at 3:46 PM UTC

  • When a new seller account is created, a default storefront is now automatically provisioned for that account.
  • Existing seller accounts with a single active sales agent have been retroactively provisioned with a default storefront.
  • When a sales agent is registered, a storefront and inventory source are now automatically created for the seller if one does not already exist.
  • Product discovery responses now include empty result groups for sales agents that were successfully queried but returned no matching inventory, making it clear the agent was reached but had no products to offer.
  • When a sales agent returns zero products during discovery, the response now includes a message indicating no matching inventory was found and suggests adjusting the brief, budget, or filters.
  • Fixed an issue where empty results from a sales agent during product discovery were indistinguishable from a null or failed response.
  • Failed sales agent queries are no longer surfaced to end users in discovery summaries; only successful agent results are shown.

2.44.0 — March 31, 2026 at 2:19 PM UTC

  • OAuth redirect URIs can now be managed dynamically, enabling faster onboarding of new integration partners without requiring a service deployment.
  • Access to MCP and API features is now gated behind an alpha opt-in flag, allowing gradual rollout to eligible users.
  • The buyer assistant AI has been updated with additional guardrails to reduce inaccurate or fabricated responses.
  • Fixed an issue where an empty dropdown in the Creatives section was not labeled clearly and could not be clicked.
  • Fixed an issue where the Creatives card was incorrectly visible to seller users on the home page.

2.43.1 — March 30, 2026 at 10:19 PM UTC

  • The Event Sources API has been streamlined: individual create, get, update, and delete endpoints have been removed in favour of the sync (POST /api/v2/buyer/advertisers/:advertiserId/event-sources/sync) and list (GET /api/v2/buyer/advertisers/:advertiserId/event-sources) endpoints only.
  • Fixed an error on the reporting page that caused it to fail to load metrics data correctly.

2.43.0 — March 30, 2026 at 9:15 PM UTC

  • The Partner API has been renamed to the Storefront API. All endpoints previously under /api/v2/partner/ are now available at /api/v2/storefront/, and requests to the old path will be automatically redirected.
  • The MCP endpoint for the Storefront API has moved from /mcp/v2/partner to /mcp/v2/storefront (and /mcp/partner to /mcp/storefront).
  • A new GET /api/v2/buyer/advertisers/{advertiserId}/events/summary endpoint is available, returning hourly-aggregated event counts (impressions, clicks, conversions, measurements, and MMP events) for an advertiser. Supports optional filtering by event type and custom date ranges.
  • The events summary endpoint defaults to the last completed UTC hour when no date range is specified, and event data may take up to 1 hour to appear after being reported.
  • Two new audience notification event types (audience.synced and audience.sync_failed) are now supported and will be delivered via the notifications system.
  • All authenticated pages now include the customer ID in their URLs (e.g., /208/reporting), making links shareable across users and customer contexts.

2.42.0 — March 30, 2026 at 3:32 PM UTC

  • The default UTM parameters applied to advertiser landing page URLs have been updated to better align with GA4 standards: utm_medium is now included with the value agentic, and the creative parameter now uses the standard utm_content key instead of utm_creative.
  • Fixed an issue where the Advertisers management table appeared empty even when data was successfully returned by the API.

2.41.0 — March 30, 2026 at 3:50 AM UTC

  • The Creative Manifest API (v2) is now available, enabling campaign-scoped management of creative assets including HTML processing, format previews, ADCP template detection, and tracking pixel support. Manifests are created and uploaded via the dashboard UI; list, get, update metadata, and delete operations are available via the API.
  • Audience sync now delivers a push notification webhook to the buyer upon completion. Provide a pushNotificationConfig (with url, authentication, and token) in the sync request body to receive the callback.
  • Storefronts now enforce a readiness gate before going live: setting enabled: true returns a 400 error if required readiness checks are not yet passing. Setting enabled: false is always allowed without restriction.
  • Inventory source registration now makes sourceId optional. When omitted, a sourceId is automatically generated from the name field (e.g. "Auto Generated Source" becomes "auto-generated-source").
  • The Conversion Events API (/advertisers/{advertiserId}/conversion-events) has been removed. Conversion tracking is now handled via event sources; use GET /advertisers/{advertiserId}/events/summary with type: "conversion" to view available events for optimization.
  • Fixed a bug where property list responses contained incorrect data and missing entries. Properties are now sourced from an updated registry for improved accuracy.
  • Fixed an issue where per-agent discovery errors were silently swallowed; they are now surfaced in debug output for easier troubleshooting.
  • Fixed an issue where the Create Storefront modal opened automatically on page load.

2.40.0 — March 27, 2026 at 12:26 AM UTC

  • The POST /api/v2/buyer/accounts/create-child endpoint now requires a customerRole field (BUYER or SELLER) when creating a child account.
  • Creating a storefront no longer requires a platformId — if omitted, one is automatically generated from the storefront name.
  • A new storefront billing page is available, providing Stripe Connect integration for sellers to manage payments, payouts, and balances.
  • A new storefront management page is available, showing readiness checks and configuration status for your storefront.
  • Discovery card product listings now include biddable pricing indicators and updated fonts and styling.
  • The advertiser_id field has been removed from the measurement data request body; it is now taken from the URL path parameter and injected automatically.
  • Pricing option data now includes a priceGuidance object with floor, p25, p50, p75, and p90 price percentile fields when available.
  • Fixed an issue where media buy requests were not compatible with older publisher versions; the buyer_ref field is now sent in the expected format for all publisher versions.
  • Fixed an issue where the customer dropdown was disabled and not properly visible during superadmin impersonation sessions.
  • Fixed an issue where the billing page did not prompt users to set up a storefront when none existed.
  • The OAuth redirect URI for bayes.fly.dev is now supported.

2.39.0 — March 26, 2026 at 1:19 PM UTC

  • Added a new POST /api/v2/buyer/advertisers/:advertiserId/log-event endpoint for ingesting conversion and marketing events (purchases, leads, page views, etc.) with support for user matching, custom data, and test event codes.
  • Added a new POST /api/v2/buyer/accounts/create-child endpoint allowing admin users to create child accounts under their organization hierarchy, including support for converting standalone accounts.
  • The GET /api/v2/buyer/campaigns endpoint now accepts a mediaBuyStatus filter parameter (single value or array) to narrow campaign results by the status of their associated media buys.
  • The resolve-account response now includes endpointUrl and authenticationType fields.
  • Users with pending invitations are now automatically routed to the correct customer organization during signup, and the email availability check response now surfaces pendingInvitations when applicable.
  • Added a POST /api/v2/buyer/campaigns/:id/reactivate endpoint to reactivate a paused or stopped campaign and cascade the update to its associated media buys.
  • The property list resolve endpoint has moved from GET /api/v2/buyer/property-lists/:listId/resolve to GET /lists/:listId to align with the expected URL convention used by sales agents.
  • Audience webhook payloads now use camelCase field names consistently.
  • Fixed an issue where users signing up for an existing domain with a pending invitation could be incorrectly blocked from completing registration.
  • Reduced the per-agent discovery timeout from 90 seconds to 30 seconds, resulting in faster error responses when an agent is unreachable.
  • The MediaBuyStatus enum now includes CANCELED and INPUT_REQUIRED as valid values across relevant API responses and filters.

2.38.0 — March 25, 2026 at 11:36 AM UTC

  • Advertisers now support configurable UTM parameters (utmConfig) at creation and update, allowing you to define custom tracking parameters appended to landing page URLs during clickthrough. Defaults (utm_source, utm_medium, utm_campaign, utm_content, utm_media_buy, utm_package) are applied automatically if no config is provided.
  • Campaigns now support a utmConfig field to set campaign-level UTM parameter overrides, which take precedence over advertiser-level defaults for matching parameter keys. Use deleteMissing: true for replace mode, or omit it for additive updates.
  • Storefront readiness checks now include live agent compliance results, giving you richer diagnostics on agent connectivity and compliance status.
  • Discovery product browsing now caches enrichment results (descriptions and relevance summaries) across requests, so repeated browses within the same session return consistent, faster results.
  • Fixed an issue where media buy validation errors (such as invalid dates, missing fields, or budget problems) were incorrectly treated as server errors instead of client errors, resulting in cleaner, more actionable error messages.
  • Fixed signal tools failing when no seat was selected.
  • Fixed an issue where the tracking endpoint used an incorrect authentication key, which could cause measurement sync requests to fail.

2.37.1 — March 24, 2026 at 5:48 PM UTC

  • The Storefront API endpoints have been simplified: all storefront and billing routes now use /storefront (singular) instead of /storefronts/:platformId, since each customer has exactly one storefront. The platformId path parameter is no longer required for any storefront, billing, or inventory source operations.
  • The GET /storefront endpoint now serves as the single way to retrieve your storefront, replacing both the previous GET /storefronts and GET /storefronts/:platformId endpoints.
  • Billing endpoints (/storefront/billing, /storefront/billing/connect, /storefront/billing/status, etc.) no longer include platformId in their responses.
  • Fixed an issue where users who had already been migrated to the new authentication system would receive an unhelpful error during login; they now correctly receive an “invalid credentials” response instead of being sent through a redundant migration flow.
  • Improved the error message shown when account setup fails during login migration — the message now suggests resetting your password and no longer references internal migration processes.
  • System tokens now have full administrative access when using the customer_switch tool, resolving an issue where those operations were incorrectly restricted.

2.37.0 — March 24, 2026 at 12:28 PM UTC

  • Added a new POST /api/v2/buyer/syndicate-audience endpoint that triggers an audience syndication backfill. On success, it returns a 202 Accepted response with an operationId (UUID) that can be used to track the operation.
  • Fixed the request body format sent to the audience sync endpoint to use camelCase field names, aligning with standard API conventions.

2.36.0 — March 24, 2026 at 8:14 AM UTC

  • Added a new suggestion data structure to support optimization recommendations linked to campaigns and media buys.
  • Fixed an issue where product selection in the media planning interface could break due to a field naming mismatch, causing pricing options and biddable products to not display or behave correctly.
  • Clarified API documentation to distinguish between using the demo flag (to return synthetic demo data) versus filtering reporting results by an advertiser or campaign whose name contains “demo”.
  • Fixed incorrect endpoint references in the v2 partner API documentation to match the actual available endpoints.

2.35.1 — March 24, 2026 at 1:06 AM UTC

  • Reporting CSV exports are now available via the REST API using the ?download=true query parameter on the reporting metrics endpoint; the response includes a downloadUrl, fileName, and an expiration timestamp valid for 7 days.
  • Fixed a bug where the offset (and limit) pagination parameters were being ignored when listing advertisers through the API; pagination now correctly respects these values.
  • Fixed MCP session errors that could cause requests to fail when a client reconnected or sent requests before completing the initialization handshake.
  • Fixed MCP App UI rendering issues related to how widget display domains are resolved for different AI client types.

2.35.0 — March 23, 2026 at 3:59 PM UTC

  • Storefront billing is now available via Stripe Connect. Partners can provision a connected account, complete onboarding, and view account status, balance transactions, and payouts through new endpoints under /api/v2/partner/storefronts/{platformId}/billing.
  • Storefronts now accept an optional publisherDomain field (e.g. "cvs.com") on create and update, used for Stripe Connect business profile setup.
  • Notifications now include a status field (success, error, warning, or info) and can be filtered by status when listing.
  • Service tokens can no longer be created using another service token — token creation now requires a user context. Requests authenticated with a service token will receive a 400 error if they attempt to mint new tokens.
  • Fixed an issue where seat invitations were not visible immediately after login. Invitation processing now completes before the auth response is returned.
  • Fixed an issue where seat auto-assignment was not triggered when inviting a new customer member via the v1 invite flow.
  • Fixed an OAuth session loop and stuck callback page that could occur during MCP authentication.
  • Fixed an issue where MCP session IDs provided in an invalid format were silently accepted, which could cause sessions to fail to persist correctly. Invalid session IDs are now rejected early with a warning.
  • Fixed a race condition in SSE connections where heartbeat writes could trigger a headers-already-sent error.
  • Fixed MCP request IDs not being consistently propagated across the full session lifecycle, improving log correlation.
  • The advertiser list endpoint now returns more results per page, matching what the UI displays.
  • ChatGPT plugin OAuth now correctly supports dynamic redirect URIs, resolving authentication failures for ChatGPT-initiated OAuth flows.

2.34.1 — March 21, 2026 at 12:52 AM UTC

  • Improved reliability of real-time streaming (SSE) connections by reducing the frequency of keepalive signals, preventing unexpected disconnections that some clients were experiencing during MCP sessions.

2.34.0 — March 20, 2026 at 11:12 PM UTC

  • The List Advertisers endpoint (GET /api/v2/buyer/advertisers) now returns a paginated response with items, total, hasMore, and nextOffset fields instead of a flat array with separate meta.pagination wrapper.
  • Pagination parameters for the List Advertisers endpoint have changed from take/skip to limit/offset, with a maximum page size of 10.
  • The user management API now supports multi-customer views, returning each user’s memberships across all accessible child customers instead of a single permission level per user.
  • Inviting a user to a specific child customer is now supported via the optional targetCustomerId field on the invite endpoint.
  • Updating a team member’s role now accepts an optional customerId field, allowing parent account admins to update roles on child customer accounts.
  • The measurement data sync endpoint (POST /api/v2/buyer/advertisers/{id}/measurement-data/sync) has updated field names: start_date/end_date are now start_time/end_time, and event_id/event_value are now metric_id/metric_value.
  • The measurement data sync endpoint now requires metric_id (from a fixed set of supported metrics), unit (currency, count, ratio, or percentage), and at least one entity identifier (advertiser_id, campaign_id, media_buy_id, package_id, or creative_id). Currency code is required when unit is "currency".
  • Fixed an issue where campaigns in terminal states could be incorrectly re-executed; campaign status is now preserved correctly on failure.
  • Fixed incorrect data returned by the measurement configuration API.
  • The POST /api/v2/buyer/accounts/create-child endpoint has been removed.

2.33.0 — March 20, 2026 at 9:06 PM UTC

  • The List Advertisers endpoint (GET /api/v2/buyer/advertisers) now returns a paginated response with items, total, hasMore, and nextOffset fields instead of a flat array with separate pagination metadata.
  • Pagination parameters for List Advertisers have changed from take/skip to limit/offset, with a maximum page size of 10.
  • The Measurement Data Sync endpoint now uses updated field names: start_time/end_time (replacing start_date/end_date), metric_id/metric_value (replacing event_id/event_value), and requires a unit field (currency, count, ratio, percentage). When unit is currency, a 3-letter ISO 4217 currency code is required.
  • Measurement Data Sync now accepts additional optional fields: source, source_platform, external_row_id, and advertiser_id. At least one of advertiser_id, campaign_id, media_buy_id, package_id, or creative_id must be provided per measurement object.
  • The POST /api/v2/buyer/accounts/create-child endpoint has been removed.
  • Fixed an issue where campaign execution could be triggered when a campaign was already in a terminal state; campaign status is now correctly preserved on failure.
  • Fixed an issue where completed media buys had an incorrect valid_to value set, which could affect versioning and data accuracy.
  • Fixed MCP session authentication so that session state is reliably consistent across server instances, improving stability for multi-turn agentic workflows.
  • The User Management tool now supports multi-customer access, allowing parent account admins to view and manage users across their child accounts in a single call.
  • Member invitation now accepts a targetCustomerId parameter, allowing parent admins to invite users directly to a specific child customer.
  • Updating a member’s role now accepts an optional customerId parameter, allowing parent admins to update roles on child customer memberships directly.

2.32.0 — March 20, 2026 at 3:31 PM UTC

  • Added a new POST /api/v2/buyer/accounts/create-child endpoint that creates a child account under the authenticated user’s organization. Requires ADMIN role; automatically promotes standalone accounts to parent accounts and grants the requesting user admin access on the new child.
  • The customer switcher in the application now includes a “New Account” option for eligible admin users, allowing child account creation directly from the navigation menu.
  • The API keys page has been updated with an improved layout, clearer section titles and descriptions, and tabs for switching between personal and organization keys.
  • Dialog titles for API key actions have been updated to use consistent casing (e.g. “Edit API key”, “Delete API key”, “API key created successfully”).
  • The “Delete API key” confirmation dialog now displays a cleaner confirmation message and uses a more appropriate button style.
  • The API key secret dialog now shows a “Copied” confirmation tooltip when the token is copied to clipboard, and displays a clearer security warning message.
  • The API keys list now displays up to 50 keys per page, up from 20.
  • Fixed a layout issue on the API keys page where the list could overflow the screen; it now sizes to fit its content correctly.

2.31.0 — March 20, 2026 at 11:56 AM UTC

  • The GET /api/v2/buyer/campaigns/{campaignId} response now includes discoveryId, products, and productCount fields for campaigns in DRAFT status, reflecting the products selected during the discovery workflow. These fields are not present on campaigns that have been executed.
  • API requests to v2 REST routes are now blocked with a 403 error if your organization has not accepted the Terms of Service or does not have an active contract. Affected responses will include an error code of TOS_ACCEPTANCE_REQUIRED or CONTRACT_REQUIRED respectively. Account and contract management endpoints remain accessible regardless.
  • Fixed an issue where pricing type detection could behave incorrectly in certain v2/v3 pricing scenarios, which may have caused errors when creating or executing campaigns with some pricing configurations.

2.30.0 — March 20, 2026 at 8:42 AM UTC

  • Added a new POST /campaigns/{campaignId}/auto-select-products endpoint that automatically selects products and allocates budget for performance campaigns using AI-driven scoring, returning selected products, budget context, and a rationale explaining the selection strategy.
  • API fields across campaigns, discovery, syndication, and catalog endpoints have been standardized to camelCase (e.g., bid_pricebidPrice, is_fixedisFixed, resource_typeresourceType, adcp_agent_idsadcpAgentIds, publisher_domainpublisherDomain). Update any requests and response parsing that reference the old snake_case field names.
  • Error responses from API tools now include a recovery field (correctable, transient, or terminal) to help clients determine whether to retry, prompt the user to fix input, or stop. HTTP status codes are also more precise (e.g., 404 for not found, 409 for conflicts, 429 for rate limiting).
  • Validation error messages throughout the v2 API are now more descriptive and human-readable, making it easier to identify and correct invalid request payloads.
  • Fixed a bug where duplicate products could appear in media buy queries.
  • Fixed an issue where campaign update requests could incorrectly send conflicting identifier fields simultaneously, which caused update failures.
  • Fixed enforcement of operator authentication requirements during agent authorization flows.

2.29.0 — March 19, 2026 at 7:38 PM UTC

  • Added a new measurement data endpoint (POST /advertisers/{advertiserId}/measurement-data/sync) for syncing advertiser performance data as time-series events, supporting upsert semantics with up to 1,000 measurements per request.
  • Added property list management endpoints (/advertisers/{advertiserId}/property-lists) for curating include/exclude lists of publisher domains that automatically apply to all campaigns under an advertiser.
  • Added a domain validation endpoint (POST /property-lists/check) that checks domains against the AAO Community Registry, identifying blocked domains, normalizing URLs, and flagging unknowns.
  • Added storefront management endpoints (/partner/storefronts) enabling partners to create and configure storefronts with inventory sources and an agent lifecycle, replacing the previous partner/agent registration flow.
  • Added SCD Type 2 versioning for media buys — updating an active media buy now creates a PENDING_APPROVAL version; the original remains active until the publisher approves the change.
  • Added a debug parameter to the product discovery endpoints (POST /discovery/discover-products and GET /discovery/{id}/discover-products) that returns detailed per-agent request/response logs when set to true.
  • Added support for multiple credential sets per sales agent — customers can now register more than one set of credentials for the same agent, with a credentialId parameter on the account discovery endpoint to specify which credential to use.
  • Added multi-account support with endpoints to list accounts (GET /buyer/accounts), get the current account (GET /buyer/accounts/current), and switch between accounts (POST /buyer/accounts/switch).
  • The sales agent list endpoint now returns a maximum of 10 results per page and includes a nextOffset field in the response for easier pagination.
  • Fixed an issue where child accounts incorrectly required users to accept terms of service when the parent account had already accepted.
  • Fixed media buy budget calculations in v1 to correctly sum all products and round spend values.
  • Fixed a sync failure that occurred after media buy versioning where associated packages could not be found.
  • Removed partner CRUD endpoints (GET/POST/PUT/DELETE /partner/partners) from the v2 API; partner management is now handled through the storefront onboarding flow.

2.28.0 — March 18, 2026 at 8:11 PM UTC

  • Campaigns now support an optional catalogId field on both create (POST) and update (PUT) requests, allowing you to attach a catalog to a campaign. Pass null to detach an existing catalog.
  • The signal keyType enum has been updated: liveramp is renamed to rampid, and three new values are added — uid2, euid, and pairid.
  • Parent customer accounts are now restricted from accessing most REST API endpoints directly. Affected requests will receive a 403 PARENT_ACCOUNT_RESTRICTED error. Switch to a child account to regain access.
  • When connecting an MCP client, users with an existing valid session are no longer shown a redundant login page — they are redirected directly to the callback, preventing duplicate browser tabs from opening.
  • Media buys are now automatically transitioned to COMPLETED status once their end time has passed, keeping campaign and media buy statuses consistent without manual intervention.
  • Fixed an issue where switching customer accounts in an MCP session did not correctly update permission checks for the new account’s type.
  • Fixed a bug where the MCP connector flow could display multiple OAuth pages during authentication.
  • Resolved an issue where signals were being polled for media buys that had already passed their end time.

2.27.0 — March 13, 2026 at 9:49 PM UTC

  • Added support for partner seats when creating organization-level API keys, allowing users to select both advertiser and partner seats with appropriate type disambiguation
  • Enhanced audience sync processing to integrate with real-time syndication services, improving audience delivery performance
  • Fixed dependency issues with Google Cloud services to ensure reliable BigQuery and Secret Manager operations

2.26.0 — March 13, 2026 at 6:06 PM UTC

  • Added multi-currency support in product pricing displays, now showing proper currency symbols (€, £, ¥) based on product currency instead of defaulting to USD
  • Added SSO configuration page for admin users to self-service setup single sign-on with their identity providers
  • Fixed discovery endpoint performance issues that could cause timeouts during product searches
  • Fixed data accuracy issues in V2 reporting by removing duplicate entries that could inflate metrics
  • Improved load balancer timeout handling by increasing from 2 minutes to 4 minutes for better reliability
  • Enhanced discovery session lookups by removing redundant filters that could slow down searches

2.25.0 — March 12, 2026 at 6:04 PM UTC

  • Added advertiser name field to query responses for better identification and filtering
  • Fixed media buy creation process to ensure proper validation order and prevent errors
  • Improved authentication to support additional Google Cloud Platform credential types
  • Fixed API response format to remove unnecessary internal fields and ensure consistent parameter forwarding
  • Updated service token creation to allow organization-level tokens without requiring individual user assignment
  • Improved credential management system with enhanced security and updated terminology
  • Increased API timeout limits to reduce connection errors and improve reliability
  • Enhanced deployment stability with longer grace periods for service updates

2.24.0 — March 12, 2026 at 5:20 PM UTC

  • Added advertiser name to ADCP queries for improved query context and results
  • Fixed service token creation for organization-level tokens to work without requiring a specific user ID
  • Updated API response terminology from “credential registration” to “account linking” for better clarity
  • Removed deprecated accountResolution field from API responses to streamline data structure
  • Fixed query parameter forwarding for MCP queries to ensure proper request handling
  • Increased API timeout limits to prevent request interruptions and improve reliability
  • Updated API response format to v2 specification for consistency across endpoints

2.23.0 — March 11, 2026 at 8:16 PM UTC

  • Added campaign audience targeting functionality to campaigns API - allows targeting and suppressing specific audiences when creating or updating campaigns
  • Added timeframe selection controls to reporting metrics - users can now select custom date ranges and preset timeframes (7 days, 14 days, 30 days, all time) when viewing campaign performance data
  • Added new suggestion history tracking table to store campaign suggestion status and transitions
  • Fixed signal creation tool to make agent ID and access parameters optional for more flexible signal registration
  • Fixed issue where certain table formatting was incorrectly triggering interactive UI detection
  • Fixed Docker builds by properly scoping gitignore patterns for output directories
  • Improved authentication model to enforce stricter security checks across customer boundaries

2.22.1 — March 11, 2026 at 1:43 AM UTC

  • Temporarily disabled webhook signature verification to resolve compatibility issues with upstream client libraries
  • Fixed linkedAccounts field to return an empty array instead of undefined when includeAccounts=true is specified but no accounts exist
  • Improved CSV export reliability by using a dedicated storage bucket for report downloads
  • Fixed reporting data lookups to use the correct media buy identifiers for more accurate BigQuery results
  • Removed creative sets endpoints from the API specification

2.22.0 — March 10, 2026 at 11:48 PM UTC

  • Added push notification configuration support to the audience sync API endpoint to enable real-time updates when sync operations complete.
  • Fixed advertiser list responses to properly return the advertiserId field instead of incorrect field mapping.
  • Enhanced observability functions to handle edge cases more gracefully and prevent potential API errors.

2.21.0 — March 10, 2026 at 7:02 PM UTC

  • Added signal groups for audiences, allowing you to organize and manage multiple signals together for better audience targeting
  • Added optimization apply mode setting that controls whether AI model optimizations to media buys are applied automatically or require manual approval - can be set at advertiser level (default for all campaigns) or overridden per campaign
  • Fixed text formatting issues in sales agent and advertiser list responses to ensure all account status, credential requirements, and linked account information is properly displayed
  • Improved production deployment reliability by fixing Docker build issues that could occur during retry scenarios

2.20.0 — March 10, 2026 at 4:56 PM UTC

  • Added sandbox field to media buy API responses to indicate when a media buy belongs to a sandbox advertiser
  • Moved audience management endpoints from separate “Audiences” tag to “Advertisers” tag in API documentation for better organization
  • Fixed button text readability issues in dark mode across the UI
  • Added enriched brand preview functionality when creating or editing advertisers with unregistered domains
  • Increased API timeout from 30 seconds to 3 minutes for acceptance tests to handle longer-running operations
  • Improved production deployment reliability by fixing retry scenario handling

2.19.0 — March 10, 2026 at 3:37 AM UTC

  • Added comprehensive product detail view showing detailed manifest information including formats, reporting capabilities, optimization goals, setup requirements, and targeting approach
  • Added publisher domain filter to product discovery allowing filtering of products by specific publisher domains
  • Added audience syndication endpoint to distribute audiences to sales agents with status tracking
  • Implemented audience syndication status query endpoint with filtering by resource type, status, agent, and other parameters
  • Added product detail endpoint for retrieving full product specifications and manifest data
  • Enhanced product descriptions with formatted display showing bold labels for structured information
  • Fixed cross-sandbox linking prevention to ensure data isolation between different sandbox environments
  • Improved product discovery service integration for more reliable product recommendations
  • Enhanced UI formatting for better readability of product information and descriptions

2.18.0 — March 9, 2026 at 8:48 PM UTC

  • Added pricingModel filter to product discovery endpoints to filter inventory by pricing type (cpm, vcpm, cpc, cpcv, cpv, cpp, flat_rate)
  • Added sandbox parameter to advertiser creation for testing campaigns without real spend - all operations for sandbox advertisers use test accounts
  • Added sandbox query parameter to advertiser listing to filter by sandbox/production advertisers
  • Enhanced product discovery UI to support multiple pricing options per product with interactive price selection
  • Fixed OAuth credential storage to prevent cross-customer account linking security issue
  • Fixed malformed JSON responses from AI services that could cause discovery failures
  • Improved streaming connection reliability for real-time updates with automatic resumption on disconnect
  • Fixed budget field conversion issues that could cause campaign creation errors

2.17.1 — March 6, 2026 at 9:47 PM UTC

  • Renamed bundleId to discoveryId across all API endpoints for better terminology clarity
  • Updated /api/v2/buyer/bundles/* endpoints to /api/v2/buyer/discovery/* to reflect the product discovery workflow
  • Campaign creation and updates now use discoveryId instead of bundleId to reference product selections
  • All API responses now return discoveryId instead of bundleId for consistency
  • Updated product selection workflow terminology from “bundle” to “discovery session” throughout the API

2.17.0 — March 6, 2026 at 8:03 PM UTC

  • Added multi-provider AI service with automatic fallback and circuit breaker protection for improved reliability and faster response times
  • Added new notification event types for optimization suggestions (received, approved, rejected, applied, failed)
  • Fixed product discovery view to display actual pricing models (CPM, vCPM, CPC, etc.) instead of hardcoded “CPM” labels
  • Fixed pricing consistency issues in product recommendations by including pricing options in product data
  • Improved bundle descriptions by deprioritizing pricing information to focus on key features
  • Enhanced customer domain handling by using database values instead of deriving from email addresses

2.16.0 — March 6, 2026 at 6:59 PM UTC

  • Multi-provider AI service with automatic failover for improved reliability and reduced downtime when generating content
  • Added new optimization suggestion notification event types for campaign optimization workflows
  • Fixed pricing model display in product discovery to show actual model (vCPM, CPC, etc.) instead of always showing “CPM”
  • Fixed pricing options data consistency in product listings and API responses
  • Improved pricing display logic to show appropriate labels based on actual product pricing models
  • Enhanced bundle descriptions by reducing emphasis on pricing information for better readability
  • Fixed customer domain resolution to use database values instead of deriving from email addresses

2.15.0 — March 6, 2026 at 12:46 AM UTC

  • New audience management endpoints: sync CRM audiences with hashed identifiers, list stored audiences, and track processing status
  • New task status endpoint to poll async operation progress when webhooks aren’t available
  • New notification system with endpoints to list, mark as read, and acknowledge notifications about campaigns, agents, and other resources
  • New contract information endpoint for platform admins to view contract details
  • New user invitation management for admins: approve, reject, resend, or cancel pending invitations
  • Enhanced product discovery with AI-generated “why” explanations for recommended media plans
  • Bundle management now supports replacing all products instead of just adding new ones
  • Bundle apply-proposal endpoint to automatically add products from recommended plans with budget allocations
  • Interactive product selection UI improvements with better handling of existing bundle products and confirmation flows
  • Added parent-child customer hierarchy support allowing parent account users to access child accounts via header
  • Sales agent status transitions now properly enforced - disabled agents cannot be updated
  • Fixed campaign budget calculations to exclude archived media buys
  • Fixed sales agent manifest resolution during campaign execution
  • User access request flow for existing organizations when invitation system is enabled
  • Enhanced MCP session management with cross-pod synchronization and better impersonation persistence

2.14.0 — March 5, 2026 at 11:15 PM UTC

  • Added new audience management endpoints for syncing first-party CRM data with hashed customer identifiers for targeting
  • Added notification system with endpoints to list, mark as read, and acknowledge notifications about campaigns, agents, and other resources
  • Added task polling endpoints to check status of asynchronous operations like audience syncing and media buy creation
  • Added contract information endpoint for admin users to view their organization’s contract details
  • Added parent-child customer hierarchy support allowing parent users to access child organization data via header
  • Added user invitation system with request access flow for existing organizations
  • Added bundle proposal application endpoint to automatically apply recommended media plans with budget allocations
  • Enhanced bundle product selection to support replace mode instead of just adding products
  • Enhanced product discovery with AI-generated explanations for recommended plan allocations and budget guidance
  • Enhanced signup flow to require invitations for joining existing organizations when enabled
  • Fixed campaign budget calculations to properly exclude archived media buys
  • Fixed media buy retrieval to work without seat filtering restrictions
  • Fixed brief updates in product discovery to show current information
  • Fixed cross-pod session synchronization to prevent stale data when switching between servers

2.13.0 — March 5, 2026 at 4:40 PM UTC

  • Added new audience management endpoints for syncing first-party customer data with hashed identifiers
  • Added new notification system with endpoints to list, mark as read, and acknowledge system notifications
  • Added contract information endpoint for admin users to view agreement details and status
  • Added task status endpoint for tracking asynchronous operations like audience syncing
  • Added LLM-enhanced recommendation logic that provides detailed rationale for suggested media plans
  • Fixed media buy retrieval to work properly without seat-based filtering
  • Fixed campaign budget calculations to exclude archived media buys from active budget totals
  • Fixed brief updates in product discovery to work more reliably
  • Fixed audience data type handling to properly support large seat ID values

2.12.0 — March 4, 2026 at 9:41 PM UTC

  • Enhanced media buy creation and updates to automatically extend campaign end dates when media buy end times exceed the campaign timeline
  • Added start_time and end_time fields to media buy responses, allowing independent scheduling within campaign bounds
  • Improved webhook signature validation to return 401 errors instead of 500 errors for authentication failures
  • Fixed session state persistence issues that could cause seat selection and customer switching to fail silently
  • Enhanced brand agent ID validation in API tools to provide clearer error messages when invalid IDs are provided
  • Improved error handling for session state changes to ensure consistency between local and stored state

2.11.0 — March 4, 2026 at 7:59 PM UTC

  • Added support for media buy-level start and end dates that can be set independently from campaign dates
  • Media buy end dates that exceed campaign end dates will now automatically extend the campaign end date
  • Enhanced webhook security with HMAC signature verification for improved request authentication
  • Fixed webhook signature validation errors that were previously returning HTTP 500 instead of HTTP 401
  • Fixed session state persistence issues that could cause seat and customer switches to fail silently
  • Improved brand agent ID validation to require numeric values and provide clearer error messages when invalid IDs are used

2.10.0 — March 4, 2026 at 1:12 AM UTC

  • Added new POST /api/v2/buyer/advertisers/{advertiserId}/event-sources/sync endpoint for bulk syncing event sources with upsert functionality
  • Fixed OAuth redirect URI validation to support dynamic query parameters for Microsoft Copilot Studio integrations
  • Resolved build warnings in the user interface that could affect page loading performance

2.9.0 — March 3, 2026 at 11:14 PM UTC

  • Added Microsoft Copilot OAuth support with OpenID Connect discovery endpoint for seamless integration
  • Fixed UI v2 flag to automatically grant app access, simplifying feature flag management
  • Improved MCP session reconnection reliability by preserving session state across API deployments
  • Fixed authentication credential lookup to use the correct database table for improved connection stability

2.8.0 — March 3, 2026 at 4:46 PM UTC

  • Improved error reporting when media buy submissions fail - you’ll now receive more specific error messages to help diagnose issues
  • Streamlined seat management by consolidating description storage, improving performance for advertiser and partner operations
  • Fixed automatic installation of pre-archive hooks during workspace setup to ensure proper workflow execution

2.7.0 — March 3, 2026 at 5:52 AM UTC

  • Catalog sync and listing endpoints moved to new paths: POST /api/v2/buyer/advertisers/{advertiserId}/catalogs/sync and GET /api/v2/buyer/advertisers/{advertiserId}/catalogs (replacing previous /sync_catalogs and /list_catalogs endpoints)
  • Account linking now supports soft-delete functionality to preserve historical account assignments for better media buy attribution
  • Improved account resolution logic ensures more reliable account identification across different sales agent configurations
  • Fixed account assignment workflow to properly handle account reassignment scenarios when advertisers switch to new accounts
  • Enhanced catalog sync validation to ensure advertiser ID consistency between URL path and request body
  • Improved database query performance and reliability for account-related operations

2.6.0 — March 2, 2026 at 10:07 PM UTC

  • Added new endpoint POST /api/v2/advertisers/:id/restore to restore archived advertisers (admin users only)
  • Added support for filtering advertisers by status with new ALL option to retrieve both active and archived advertisers
  • Fixed webhook processing to maintain backward compatibility with legacy systems that don’t include HMAC signature headers

2.5.0 — March 2, 2026 at 5:56 PM UTC

  • Added new catalog management endpoints for syncing and listing product catalogs via /api/v2/buyer/sync_catalogs and /api/v2/buyer/list_catalogs
  • Added comprehensive account linking workflow for advertisers with new endpoints to discover and link partner platform accounts
  • Added new /api/v2/buyer/sales-agents/accountCredentials endpoint to list all registered sales agent credentials
  • Enhanced advertiser creation and updates to support linking partner accounts at creation time
  • Added includeAccounts parameter to advertiser list endpoint to embed linked partner account information
  • Fixed JSON response formatting for AI assistants to use proper structured output mode
  • Added new url value to signal key types for expanded targeting capabilities
  • Enhanced platform monitoring with comprehensive metrics, dashboards, and alerting for better service visibility

2.4.0 — February 27, 2026 at 4:23 AM UTC

  • Fixed an issue where default channels and country codes were being automatically injected into product discovery requests, ensuring that empty channel and country filters are now respected as intended.

2.3.1 — February 27, 2026 at 12:56 AM UTC

  • Performance campaigns now support multiple optimization goals with priority ordering, allowing more sophisticated targeting strategies
  • Event-based optimization goals now support multiple event sources and improved targeting options including maximize value and threshold rate targets
  • Metric-based optimization goals introduced for optimizing seller-native delivery metrics like clicks, views, and engagement
  • Fixed issue where production deployment notifications were not properly marked as skipped for staging-only releases
  • Fixed version bumping process to correctly include all application components during production releases
  • Improved campaign execution workflow to properly handle new optimization goal structure

2.3.0 — February 26, 2026 at 9:54 PM UTC

  • Added new event source validation that enforces valid IAB ECAPI event types at the database level
  • Added organization-level API key management with role-based permissions and advertiser scoping
  • Enhanced service token API to support revealing token secrets via includeSecret query parameter
  • Improved partner and advertiser management UI with updated styling and navigation
  • Fixed changelog display by replacing accordion layout with plain bullet lists for better readability
  • Enhanced OAuth token refresh flow with better error tracking and logging for MCP clients
  • Improved Stripe billing portal session creation with better customer ID persistence and deduplication
  • Fixed product discovery to work correctly even when campaign briefs are not provided
  • Enhanced service token creation and management workflows with improved validation and user experience

2.2.0 — February 26, 2026 at 2:16 PM UTC

  • Added seat-scoped service tokens with full CRUD support via the V2 REST API
  • Added ability to bypass Terms of Service acceptance for customers with custom contracts
  • Fixed service token creation to make the name field optional with a sensible default
  • Fixed brand agent listing to correctly filter by customer for SuperAdmin users

2.1.5 — February 25, 2026 at 1:18 PM UTC

  • Fixed request timeout handling for AI model requests to prevent hanging operations and improve response reliability.
  • Resolved an issue where certain aborted AI generation requests would unnecessarily retry, reducing API latency.
  • Updated AI model version for more consistent response quality and performance.

2.1.4 — February 25, 2026 at 3:58 AM UTC

  • Internal improvements and maintenance

2.1.3 — February 25, 2026 at 1:30 AM UTC

  • Improved compatibility with partner integrations by retrying failed requests using an alternative brand identification format
  • Improved error detection to correctly identify and handle validation failures during brand identification

2.1.2 — February 24, 2026 at 8:13 PM UTC

  • Improved product discovery reliability with automatic fallback when brand identification fails
  • Fixed documentation site routing to correctly serve versioned API docs
  • Updated advertiser form field naming for consistency
  • Updated homepage copy and messaging

2.1.1 — February 24, 2026 at 3:00 AM UTC

  • Fixed documentation homepage returning 401 errors and broken routing for v2 API docs

2.1.0 — February 23, 2026 at 11:10 PM UTC

  • Added reporting page with hierarchical metrics table for campaign performance visualization
  • Fixed budget currency handling to use the actual currency from product pricing options instead of defaulting to USD
  • Fixed creative format assignment to ensure each product only receives creatives that match its supported formats
  • Added stable versioned documentation URLs with dark mode branding
  • Improved metrics grid layout for better responsiveness across different screen sizes