OneSignal · OpenAPI Overlay 1.0.0
API Evangelist enrichment overlay for OneSignal Templates API
6 actions
6 updates
documentation
extends
openapi/onesignal-templates-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for OneSignal's API. It is a proposal applied on top of the contract, not a document OneSignal publishes.
What the actions change
x-apievangelist-notex-apievangelist-enrichmentdescription
Targets 6
$.info
$.info.description
$.servers
$.components.securitySchemes.rest_api_key
$.paths['/templates'].post
$.paths['/templates/{template_id}/copy_to_app'].post
OpenAPI Overlay
overlay: 1.0.0
info:
title: API Evangelist enrichment overlay for OneSignal Templates API
version: 1.0.0
x-provenance:
generated: '2026-08-13'
method: generated
source: openapi/onesignal-templates-api-openapi.yml plus https://documentation.onesignal.com/reference/rest-api-overview,
/reference/rate-limits, /reference/idempotent-notification-requests, /docs/en/keys-and-ids
note: Captures API Evangelist enhancements only. The underlying OpenAPI is never mutated; apply this
overlay to produce the enriched document.
extends: openapi/onesignal-templates-api-openapi.yml
actions:
- target: $.info
description: Record the enrichment provenance and the runtime rules this specification omits.
update:
x-apievangelist-enrichment:
generated: '2026-08-13'
provider: onesignal
extends: openapi/onesignal-templates-api-openapi.yml
artifacts:
- authentication/onesignal-authentication.yml
- conventions/onesignal-conventions.yml
- errors/onesignal-problem-types.yml
- rate-limits/onesignal-rate-limits.yml
- lifecycle/onesignal-lifecycle.yml
- data-model/onesignal-data-model.yml
- conformance/onesignal-conformance.yml
- target: $.info.description
description: Append the cross-cutting runtime semantics an agent needs but the specification does not
carry.
update: 'API Evangelist enrichment. Runtime semantics OneSignal documents in prose but does not express
in this specification:
- **Auth**: `Authorization: Key <APP_API_KEY>` (App tier) or an Organization API key for org-level
endpoints. See `authentication/onesignal-authentication.yml`.
- **Rate limits**: per app AND per endpoint. Message create/cancel share one bucket: 150 req/sec/app
on free plans, 6,000 on paid. A separate application message limit (10x subscribed Subscriptions in
a rolling 15 minutes) can temporarily DISABLE the app. See `rate-limits/onesignal-rate-limits.yml`.
- **429 handling**: honor `Retry-After`. No RateLimit-* budget headers are published.
- **Idempotency**: `idempotency_key` is a BODY field (RFC 9562 UUID, 30-day retention) on message
and custom-event creation, not an `Idempotency-Key` header. Reuse the SAME key on every retry. See
`conventions/onesignal-conventions.yml`.
- **Errors**: two proprietary envelopes, not RFC 9457. Some 2xx responses also carry a non-empty `errors`
array. See `errors/onesignal-problem-types.yml`.
- **Timeout**: default API response timeout is 100 seconds.
- **Versioning**: the API is unversioned; change is announced in a dated changelog with no Sunset
or Deprecation headers. See `lifecycle/onesignal-lifecycle.yml`.
- **Currency**: this document is generated from OneSignal''s 5.5.0 OpenAPI. OneSignal now publishes
an 11.6 document at https://documentation.onesignal.com/openapi.json with 59 operations, captured
verbatim at `openapi/_original/onesignal-api-openapi.json`.'
- target: $.servers
description: Confirm the production base URL; OneSignal publishes exactly one host and it is unversioned.
update:
- url: https://api.onesignal.com
description: Production. HTTPS on port 443, TLS 1.2 minimum, fronted by Cloudflare. Respect a DNS
TTL of 300 seconds.
- target: $.components.securitySchemes.rest_api_key
description: Describe the App API key tier the bearer scheme actually represents.
update:
description: 'App API key. Header form is `Authorization: Key <APP_API_KEY>`. Values are prefixed
`os_v2_app_` and shown exactly once, at creation or rotation. Up to 16 per app. Optional per-key
IP allowlist.'
- target: $.paths['/templates'].post
description: Add OneSignal-documented runtime behavior for this operation.
update:
x-apievangelist-note: Templates are reusable across push, email and SMS. Returns 422 on a plan entitlement
failure.
- target: $.paths['/templates/{template_id}/copy_to_app'].post
description: Add OneSignal-documented runtime behavior for this operation.
update:
x-apievangelist-note: Copies a template into another app. Requires the calling key to reach both the
source and destination app; returns 404 when it cannot.
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/onesignal-templates-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.