Nursa · OpenAPI Overlay 1.0.0
API Evangelist enhancements for the Nursa Public API V2
5 actions
5 updates
documentation
extends
openapi/nursa-public-api-v2-openapi.yml
Derived by API Evangelist
Built from the contracts Nursa publishes. Nursa did not publish this file.
What the actions change
x-apievangelist-profilex-apievangelist-harvestedx-apievangelist-harvest-methodx-support-contactx-defectsx-agent-readiness-notesx-notetags
Targets 4
$.info
$
$.components
$.paths['/api/v2/support/facilities/user/associate'].put
OpenAPI Overlay
overlay: 1.0.0
info:
title: API Evangelist enhancements for the Nursa Public API V2
version: 1.0.0
extends: openapi/nursa-public-api-v2-openapi.yml
x-provenance:
generated: '2026-08-04'
method: generated
source: >-
API Evangelist enrichment pipeline. Captures OUR additions and OUR observations about Nursa's
published contract. It never mutates the harvested spec — apply it to see the enhanced view.
actions:
- target: $.info
update:
x-apievangelist-profile: https://apievangelist.com/providers/nursa
x-apievangelist-harvested: '2026-08-04'
x-apievangelist-harvest-method: >-
decoded from the docusaurus-plugin-openapi-docs page chunks at docs.nursa.com; Nursa
publishes no downloadable OpenAPI document
x-support-contact: josh.bear@nursa.com
- target: $.info
update:
x-defects:
description: >-
Schema defects present in Nursa's own published operation objects, preserved verbatim in
the harvested spec. Each one makes the contract fail standard OpenAPI validation.
items:
- invalid-type-Array: >-
CliniciansController_getDetails declares `licenseType: {type: Array}` — OpenAPI types are
lowercase; the valid value is `array` with an `items` schema.
- invalid-type-sting: >-
CliniciansController_getDetails declares `lastShiftDate: {type: sting}` — a typo for
`string`.
- boolean-example-as-string: >-
FacilitiesController_favoritingClinician declares `isFavorited: {type: boolean}` with
`example: 'true'` (a string).
- number-field-string-example: >-
MarketplaceShiftReportsController_* declares `reviewComment: {type: number}` with
`example: A comment` — the field is prose, not a number.
- polymorphic-message-field: >-
The error envelope declares `message` as a string but 12 documented examples supply an
array of validation strings.
- untagged-operation: >-
SupportFacilitiesController_associateUsersToFacility carries no tags, so it is orphaned
in every generated reference.
- target: $
update:
x-agent-readiness-notes:
idempotency: >-
No idempotency contract. MarketplaceController_createShifts creates shifts in BATCHES under
a transaction; a retried request after a timeout can double-post real financial
commitments. An Idempotency-Key header on the four Marketplace write operations is the
highest-value single addition to this API.
error_semantics: >-
Errors carry no stable machine-readable code — only prose in `message`. An agent must
string-match to branch.
pagination: >-
Two pagination models coexist (limit+offset and page+limit) with no total or next-page
signal.
scopes: >-
20 documented resource scopes exist, but every operation declares `security: [{public-api: []}]`
with an EMPTY scope array, so least privilege cannot be computed from the contract.
events: >-
14 real webhook events with signed, retried delivery — and no AsyncAPI and no OpenAPI 3.1
`webhooks:` block.
- target: $.components
update:
x-note: >-
Nursa's spec defines no components.schemas — every body is inlined per operation. Extracting
Facility, Shift, Clinician, ShiftRequest, ScheduledShift and ShiftReport into named schemas
would make the contract generatable and remove the largest source of drift. See
data-model/nursa-data-model.yml for the entity graph as derived.
- target: $.paths['/api/v2/support/facilities/user/associate'].put
update:
tags:
- Support
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/nursa-public-api-v2-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.