Onesignalonesignal.com
OneSignal's API design is a clear strength — the contract is well-structured and machine-readable, giving partners a solid foundation to build against. However, the partner program is held back by two critical gaps: partners have no self-service path to a first working call (no portal, no quickstart, no inline code samples), and AI agents lack the runnable examples and idempotency guidance they need to execute reliable workflows without human intervention.
API DesignA clean, typed, well-governed API contract agents can reason about2 pass1 warn0 fail91A+
| Signal | Points | Findings | Rationale | |
|---|---|---|---|---|
| pass | Schema coverage & depthvia sdk | 25/25 | 2/2 enums are named types (not bare strings). Investigated: sdk 100%. | Typed, complete request/response schemas are what make agent function-calling possible. |
| pass | Security & governance hygienevia wellknown | 15/15 | security.txt valid at https://onesignal.com/.well-known/security.txt (Contact + unexpired Expires). Investigated: wellknown 100%. | No leaked secrets, no critical lint violations, no OWASP API Top-10 spec smells, and a published vulnerability-disclosure channel. |
| warn | Example coveragevia sdk | 5/10 | README is present but has no runnable quickstart. Investigated: sdk 50%, docs 0%. | Examples carry shape semantics schemas under-specify — for humans and agents alike. |
| na | Machine-readable, versioned contract | —/25 | No surface produced evidence for this capability in this run. | A current OpenAPI version with a declared versioning scheme lets agents reason about the contract. |
| na | Auth declared & discoverable | —/25 | No surface produced evidence for this capability in this run. | Agents can only authenticate when auth is declared, scoped, and discoverable. |
Developer ExperienceThe context both developers and agents need to integrate fast — onboarding, code samples, complete descriptions and worked examples1 pass0 warn3 fail44F
| Signal | Points | Findings | Rationale | |
|---|---|---|---|---|
| pass | Changelog publishedvia sdk | 13/13 | Newest official SDK activity 3 day(s) ago. Investigated: sdk 100%. | A published changelog lets partners track changes without surprise. |
| fail | Self-service developer portalvia docs | 0/29 | No signup page detected across conventional paths (/signup, /sign-up, /register, /get-started, /console/signup, /dashboard/signup, /try, /try-free, /free, /free-trial, /start, /start-free). Investigated: docs 0%. | Self-serve key/account creation is the fast first call for partners, with no sales gate. |
| fail | Quickstart presentvia docs | 0/25 | No quickstart/getting-started page found at the conventional paths. Investigated: docs 0%. | A quickstart is the fastest path from landing page to first successful call. |
| fail | Code samples in docsvia docs | 0/18 | No detectable code samples across 20 sampled docs pages. Investigated: docs 0%. | Multi-language samples shorten time-to-first-call. |
| na | Description completeness | —/15 | No surface produced evidence for this capability in this run. | Complete descriptions are the context humans and agents need to use endpoints. |
Agent DiscoveryPartners and their agents can find your APIs — llms.txt, registries, crawlable and reachable docs3 pass1 warn0 fail98A+
| Signal | Points | Findings | Rationale | |
|---|---|---|---|---|
| pass | Docs reachable, not hard auth-gatedvia docs | 30/30 | All 50 sampled pages are publicly accessible. Investigated: docs 100%. | Agents can only index and fetch docs they can reach — past auth gates and over correct HTTP semantics. |
| warn | llms.txt present, valid & comprehensivevia docs | 28.1/30 | llms.txt is 80,560 characters (between 50,000 and 100,000; consider splitting). Investigated: docs 94%, sdk 0%. | A valid, comprehensive llms.txt is the machine-readable entry point for agents. |
| pass | Registry & SDK presencevia docs | 28/28 | Indexed on Context7 (websites/onesignal, 7532 snippets). Investigated: docs 100%, cli 100%, sdk 67%. | Listing in MCP registries and publishing SDKs puts the API where agents and their tooling look. |
| pass | Crawlable / AEOvia wellknown | 12/12 | Docs paths crawlable by all monitored AI agents. Investigated: wellknown 100%. | Bots allowed plus a fresh sitemap make docs findable by agent crawlers. |
Agent UnderstandingAgents can correctly interpret your APIs — machine-readable errors, consistent descriptions, structured data, parseable docs1 pass1 warn1 fail71B
| Signal | Points | Findings | Rationale | |
|---|---|---|---|---|
| warn | Agent-navigable, token-efficient docsvia docs | 17.6/22 | 1 of 50 sampled pages convert to over 100K chars (max 4047K HTML → 100K markdown (96% boilerplate)). Investigated: docs 80%. | Server-rendered, clean, small-footprint docs are what an agent can cheaply fetch and parse correctly. |
| pass | Docs structured datavia docs | 8/8 | JSON-LD Article markup on 19/19 assessed pages (100%) with dateModified present. Investigated: docs 100%. | Structured data (JSON-LD/schema.org) on docs pages gives agents an unambiguous parse target and is what answer engines cite. Detected on the JS-rendered head (Firecrawl) for a bounded page budget, so JS-injected JSON-LD is now caught; pages we can't render are excluded rather than failed. |
| fail | Agent instructions file (AGENTS.md)via wellknown | 0/10 | No AGENTS.md at the site root or /.well-known/. Investigated: wellknown 0%. | An AGENTS.md gives coding agents explicit setup, auth, and usage instructions to interpret and operate the API — beyond llms.txt's link index. |
| na | Machine-readable errors (RFC 9457) | —/28 | No surface produced evidence for this capability in this run. | RFC 9457 problem details and a documented error-code inventory let agents parse failures without burning tokens. |
| na | Operation purpose clarity | —/25 | No surface produced evidence for this capability in this run. | Agents select the right endpoint from its summary + operationId; clear, named operations make tool-selection reliable — the strongest driver of correct tool choice. |
| na | Description consistency across surfaces | —/7 | Only 1 surface description(s) with ≥6 tokens available; need at least 2 to compare. | Every surface tells the same story about what the product is. |
Agent UsabilityAgents have the context to use your APIs reliably, not just find them0 pass1 warn2 fail45F
| Signal | Points | Findings | Rationale | |
|---|---|---|---|---|
| warn | Sandbox separationvia sdk | 10/20 | No test-mode flag or sandbox environment is exposed. Investigated: sdk 50%. | An isolated environment lets agents exercise destructive operations safely. |
| fail | Idempotency documentedvia sdk | 0/27 | No built-in retry machinery was found; transient failures are not retried. Investigated: sdk 0%. | Documented idempotency lets agents retry safely. |
| fail | Runnable collection with test scriptsvia platform | 0/9 | No public Postman workspace discovered for the org. Investigated: platform 0%. | A public, maintained collection with assertions is runnable truth agents validate against. |
| na | Rate-limit signaling | —/22 | No surface produced evidence for this capability in this run. | Machine-readable rate-limit headers let agents throttle adaptively. |
| na | Pagination documented & consistent | —/22 | No surface produced evidence for this capability in this run. | Consistent, documented pagination lets agents traverse collections. |
Resources Discovered
The public resources we found for Onesignal — the evidence behind the score. All discovered from public sources; nothing here requires access to your systems.
| Agent hints | Context7 (7,532) |
|---|