Listrak · OpenAPI Overlay 1.0.0
API Evangelist enhancements for Listrak
8 actions
8 updates
update
extends
openapi/listrak-contact-api-openapi.yml
Derived by API Evangelist
Built from the contracts Listrak publishes. Listrak did not publish this file.
What the actions change
x-apievangelist-profilex-apievangelist-reviewedOAuth2x-error-envelopex-idempotencyx-paginationx-rate-limitsx-versioning
Targets 2
$.info
$.components.securitySchemes
OpenAPI Overlay
overlay: 1.0.0
info:
title: API Evangelist enhancements for Listrak
version: 1.0.0
x-generated: '2026-08-13'
x-method: generated
x-source: >-
Derived from Listrak's own published documentation (the prose embedded in each spec's
info.description) and from openapi/_original/*.json. Nothing here invents behaviour - every value
restates something Listrak publishes, in a machine-readable place.
x-extends-note: >-
This overlay applies to the refined per-resource specs in openapi/. It exists because the tag-split
refinement of Listrak's Email/SMS/Data/Privacy Swagger 2.0 documents kept only the AWS API Gateway
`Authorizer` apiKey declaration and dropped the real OAuth 2.0 clientCredentials scheme, its token
URL and its scope map. Applying this overlay restores the auth contract Listrak actually documents
and adds the rate-limit, error-envelope and idempotency facts that live only in prose. The
harvested originals in openapi/_original/ are never mutated.
extends: openapi/listrak-contact-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-profile: https://apis.io/provider/listrak
x-apievangelist-reviewed: '2026-08-13'
- target: $.components.securitySchemes
update:
OAuth2:
type: oauth2
description: >-
OAuth 2.0 client_credentials. POST grant_type=client_credentials, client_id and
client_secret as application/x-www-form-urlencoded to the token endpoint, then send the
result as `Authorization: Bearer <token>`. Credentials are issued per Integration in the
Listrak application and the client secret cannot be recovered once lost.
flows:
clientCredentials:
tokenUrl: https://auth.listrak.com/OAuth2/Token
scopes:
Contact: Read, create, update, subscribe and unsubscribe contacts on a list.
Event: Contact events used to drive triggered and behavioral sends.
List: Lists, folders, IP pools, imports and resources nested under a list.
Message: Messages, saved messages, content, campaigns, split tests and sends.
Report: Message activity, link clickers and summary reporting reads.
Segmentation: Profile (segmentation) fields, field groups and field values.
Customer: Import retail customer records (Data Import API).
Order: Import retail order records (Data Import API).
Product: Import retail product catalog records (Data Import API).
Review: Import product reviews and rating summaries (Data Import API).
- target: $.info
update:
x-error-envelope:
media_type: application/json
rfc9457: false
fields: [status, error, message]
code_field: error
registry: errors/listrak-error-codes.yml
example: '{"status":401,"error":"ERROR_UNAUTHORIZED","message":"Authorization was denied for this request."}'
- target: $.info
update:
x-idempotency:
supported: false
header: null
note: >-
Listrak documents no idempotency key and no retry-dedup contract on any of its eight REST
APIs. A retried send is a second message. The Data Import collection POSTs are re-runnable
only because they upsert on merchant-owned natural keys.
- target: $.info
update:
x-pagination:
style: cursor
request:
cursor: {default: Start}
count: {default: 1000, maximum: 5000}
response:
next: nextPageCursor
note: The Media REST API instead uses page-number pagination with pageNumber/pageSize/totalCount.
- target: $.info
update:
x-rate-limits:
published_for: [Privacy REST API]
privacy:
- {limit: 20, window: 10 seconds}
- {limit: 60, window: 1 minute}
status_on_exhaustion: 429
response_headers: []
retry_after: false
note: >-
Only the Privacy REST API publishes numbers. Mobile App Push and Two-Way SMS declare 429
without a threshold. No Listrak API emits a rate-limit response header, so clients must use
blind exponential backoff.
- target: $.info
update:
x-versioning:
scheme: uri-path
current: v1
breaking_change_policy_published: true
deprecation_policy_published: false
sunset_header: false
- target: $.info
update:
x-agent-surface:
mcp_server: false
agent_card: false
asyncapi: false
webhooks: 1
webhook_signature_verification: false
engagement_events: poll-only
note: >-
Email and SMS engagement (opens, clicks, bounces, unsubscribes) has no webhook and must be
polled from the reporting operations. This is the largest agent-readiness gap in the surface.
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/listrak-security-and-semantics-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.