Metrilo · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Metrilo-published Tracking API spec

4 actions 4 updates security extends openapi/metrilo-tracking-api-openapi.yml
Derived by API Evangelist Built from the contracts Metrilo publishes. Metrilo did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-ratingx-artifact-sourcex-spec-sourcex-authenticationx-conventionsx-errorsx-data-modelx-rate-limits

Targets 3

$.info
$.servers
$.components

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Metrilo-published Tracking API spec
  version: 1.0.0
extends: openapi/metrilo-tracking-api-openapi.yml
x-provenance:
  generated: '2026-08-13'
  method: generated
  source: openapi/metrilo-tracking-api-openapi.yml
  note: >-
    openapi/metrilo-tracking-api-openapi.yml is Metrilo's OWN published
    specification, saved verbatim from
    https://github.com/Metrilo/custom-integration/blob/master/metrilo_open_api_specification.yml
    and never edited. Everything API Evangelist adds — including the two
    corrections below, both of which are contradicted by Metrilo's own
    developer guide — lives here as Overlay actions.
actions:
  - target: $.info
    update:
      x-apievangelist-rating: 4
      x-artifact-source: https://github.com/Metrilo/custom-integration
      x-spec-source: https://github.com/Metrilo/custom-integration/blob/master/metrilo_open_api_specification.yml
      x-authentication: authentication/metrilo-authentication.yml
      x-conventions: conventions/metrilo-conventions.yml
      x-errors: errors/metrilo-problem-types.yml
      x-data-model: data-model/metrilo-data-model.yml
      x-rate-limits: rate-limits/metrilo-rate-limits.yml
      x-sandbox: sandbox/metrilo-sandbox.yml
      x-tool-crosswalk: mcp/metrilo-tool-crosswalk.yml
      x-brevo: Metrilo is part of Brevo (formerly Sendinblue), acquired 2021.

  # CORRECTION 1 — the spec's servers[] omits the /v2 path prefix that every
  # published curl example, the docs, and apis.yml baseURL actually use.
  - target: $.servers
    update:
      - url: https://trk.mtrl.me/v2
        description: >-
          Metrilo tracking ingestion (production). The published spec declares
          https://trk.mtrl.me with no path; the developer guide's own examples
          POST to https://trk.mtrl.me/v2/customer, /v2/category, /v2/order etc.
          The /v2 prefix is required.
      - url: https://trk.mtrl.me
        description: As declared in the provider specification (servers[0]) — missing the /v2 version prefix.

  # CORRECTION 2 — the spec declares NO securitySchemes, yet every call is
  # authenticated by a body token and (except POST /customer) an HMAC header.
  - target: $.components
    update:
      securitySchemes:
        xDigest:
          type: apiKey
          in: header
          name: X-Digest
          description: >-
            HMAC-SHA256 digest of the raw request body string, keyed with the
            project API Secret. Required on every backend endpoint EXCEPT
            POST /customer. Not declared in the provider specification.
          x-algorithm: HMAC-SHA256
          x-message: raw JSON request body
          x-key: API Secret (Settings -> Installation)
        projectToken:
          type: apiKey
          in: query
          name: token
          description: >-
            The project API Token. NOTE: this is transmitted as a FIELD OF THE
            JSON REQUEST BODY (`{"token": "..."}`), which OpenAPI 3.0 has no
            securityScheme location for. Modelled as apiKey/query only so it is
            expressible; see authentication/metrilo-authentication.yml for the
            accurate description.
          x-actual-location: request body field `token`

  - target: $.info
    update:
      x-max-request-size: 5MB
      x-processing: asynchronous (~1 minute before events surface in reports)
      x-import-order:
        - /customer/batch
        - /category/batch
        - /product/batch
        - /order/batch
      x-idempotency: >-
        No idempotency key. Writes upsert on the resource identity (customer
        email; category/product/order id), so a retry updates in place rather
        than duplicating — but there is no idempotency contract.
      x-rate-limit-policy: >-
        None published. No 429 is declared and no RateLimit/Retry-After header
        is documented; only 500 (processing) and 502 (accepting) signal server
        load. See rate-limits/metrilo-rate-limits.yml.
      x-content-type-caveat: >-
        The spec models request bodies under `text/plain`, matching the guide's
        curl examples (-H "Content-Type: text/plain"), even though the payload
        is JSON. Send text/plain to match documented behaviour.

Work with this as data

Every overlay here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/metrilo-tracking-api-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.