domob · OpenAPI Overlay 1.0.0

API Evangelist enhancements — Domob Media Data API

5 actions 5 updates update extends ../openapi/domob-media-data-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for domob's API. It is a proposal applied on top of the contract, not a document domob publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-contract-originx-canonical-docx-docs-languagex-error-modelx-http-status-semanticsx-idempotentx-read-onlyx-signature-only

Targets 5

$.info
$.paths['/developer/api/get/stats'].post
$.paths['/developer/api/get/stats'].post.parameters[?(@.name=='Token')]
$.components.schemas.UserInfo
$.components.schemas.StatsRow

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements — Domob Media Data API
  version: 1.0.0
extends: ../openapi/domob-media-data-api-openapi.yml
x-provenance:
  generated: '2026-08-12'
  method: generated
  source: >-
    openapi/domob-media-data-api-openapi.yml — captures the API Evangelist
    enhancements layered on top of Domob's published PDF document, so the
    transcription and our annotations stay separable.
actions:
  - target: $.info
    description: >-
      Record that Domob publishes no machine-readable contract; this OpenAPI is
      a transcription of a PDF, and consumers should treat the PDF as canonical.
    update:
      x-contract-origin: pdf-transcription
      x-canonical-doc: https://landing.domobcdn.com/2022/adxFile/%E5%AA%92%E4%BD%93%E6%95%B0%E6%8D%AEAPI%E6%8E%A5%E5%8F%A3.pdf
      x-docs-language: zh-CN
  - target: $.paths['/developer/api/get/stats'].post
    description: >-
      Flag the non-standard error model: the API never uses HTTP status codes to
      signal failure. Every outcome is HTTP 200 and the body's `code` field is
      the only failure signal, so clients MUST branch on `code`, not on status.
    update:
      x-error-model: envelope-only
      x-http-status-semantics: >-
        HTTP 200 on both success and failure; verified live 2026-08-12 by an
        unauthenticated POST returning 200 with code=1.
      x-idempotent: true
      x-read-only: true
  - target: >-
      $.paths['/developer/api/get/stats'].post.parameters[?(@.name=='Token')]
    description: >-
      Annotate that the Token header is a derived signature over a
      publicly-published key, not a secret, so it cannot be treated as
      authentication by an integrating agent.
    update:
      x-signature-only: true
      x-shared-key-published: true
  - target: $.components.schemas.UserInfo
    description: >-
      Flag credential-in-body: account email and password travel in the JSON
      request payload on every call, which means the caller must store a
      long-lived reusable password rather than a scoped token.
    update:
      x-credential-in-body: true
      x-credential-rotation: none-documented
  - target: $.components.schemas.StatsRow
    description: >-
      Record the derived time-granularity rule so a client can predict which
      shape it will get without re-reading the prose.
    update:
      x-granularity-rule: >-
        start_dt == end_dt yields hour-level rows (day_type=hr);
        start_dt < end_dt yields day-level rows (day_type=dt).
      x-currency: CNY