Epsilon · OpenAPI Overlay 1.0.0

API Evangelist enhancements — Citrus filter-mapping API

8 actions 8 updates update extends openapi/epsilon-retail-media-filter-mapping-openapi.json
Generated by API Evangelist Written by API Evangelist tooling for Epsilon's API. It is a proposal applied on top of the contract, not a document Epsilon publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-consequencex-apievangelist-idempotentx-apievangelist-sourcex-apievangelist-harvestx-apievangelist-harvestedx-apievangelist-conventionsx-apievangelist-authenticationx-apievangelist-errors

Targets 7

$.info
$.servers
$.paths['/filter-mapping'].post
$.paths['/filter-mapping'].get
$.paths['/filter-mapping/{id}'].patch
$.paths['/filter-mapping/{id}'].get
$.paths['/filter-mapping/{id}'].delete

OpenAPI Overlay

Raw ↑
# authorship: generated by API Evangelist tooling. Stamped 2026-08-18
# on the file's own generator header (roadmap#64). An unmarked file is
# NOT assumed to be ours -- absence of evidence was never stamped.
x-method: generated
overlay: 1.0.0
info:
  title: API Evangelist enhancements — Citrus filter-mapping API
  version: 1.0.0
extends: openapi/epsilon-retail-media-filter-mapping-openapi.json
x-generated: '2026-08-12'
x-method: generated
x-source: >-
  Generated by the API Evangelist enrichment pipeline from the spec this
  overlay extends, plus the Epsilon Retail Media developer hub at
  https://developers.citrusad.com/integration/reference/. The original spec is
  never mutated; every enhancement below is expressed as an Overlay action.
actions:
  - target: $.info
    description: Record where this contract came from and how it was assembled.
    update:
      x-apievangelist-source: https://developers.citrusad.com/integration/reference/
      x-apievangelist-harvest: >-
        Assembled verbatim from the per-operation OpenAPI 3.1.0 documents the
        provider publishes inside each API reference page (fetched as .md). The
        provider does not publish a single combined document for this API.
      x-apievangelist-harvested: '2026-08-12'
  - target: $.info
    description: Cross-link the runtime-semantics artifacts OpenAPI cannot express.
    update:
      x-apievangelist-conventions: conventions/epsilon-conventions.yml
      x-apievangelist-authentication: authentication/epsilon-authentication.yml
      x-apievangelist-errors: errors/epsilon-problem-types.yml
      x-apievangelist-rate-limits: rate-limits/epsilon-rate-limits.yml
      x-apievangelist-lifecycle: lifecycle/epsilon-lifecycle.yml
      x-apievangelist-data-model: data-model/epsilon-data-model.yml
      x-apievangelist-sandbox: sandbox/epsilon-sandbox.yml
  - target: $.servers
    description: >-
      Record what the published server URL actually is. The host is assigned by
      Epsilon at onboarding and the published value is a template, so a consumer
      cannot call this API from the spec alone.
    update:
      x-apievangelist-server-note: >-
        Tenant/region-assigned host. Verified live regional ad-serving hosts at
        probe time (2026-08-12): eu-ads, eu-tracking, us-east-ads and apac-ads
        under rmn.dotomi.com. The citrusad.com hosts named in servers[] do not
        resolve on the public internet.
  - target: $.paths['/filter-mapping'].post
    description: Tag and classify createFilterMapping for discovery and agent safety.
    update:
      x-apievangelist-consequence: write
      x-apievangelist-idempotent: false
      x-apievangelist-idempotency-note: >-
        No Idempotency-Key mechanism is supported by this API. Safe retry is
        the caller's problem.
  - target: $.paths['/filter-mapping'].get
    description: Tag and classify listFilterMappings for discovery and agent safety.
    update:
      x-apievangelist-consequence: read
      x-apievangelist-idempotent: true
  - target: $.paths['/filter-mapping/{id}'].patch
    description: Tag and classify updateFilterMapping for discovery and agent safety.
    update:
      x-apievangelist-consequence: write
      x-apievangelist-idempotent: false
  - target: $.paths['/filter-mapping/{id}'].get
    description: Tag and classify getFilterMapping for discovery and agent safety.
    update:
      x-apievangelist-consequence: read
      x-apievangelist-idempotent: true
  - target: $.paths['/filter-mapping/{id}'].delete
    description: Tag and classify deleteFilterMapping for discovery and agent safety.
    update:
      x-apievangelist-consequence: destructive
      x-apievangelist-idempotent: true