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.
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
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.
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.