overlay: 1.0.0
info:
title: API Evangelist enhancements for Canoe API v1
version: 1.0.0
extends: openapi/canoe-intelligence-api-openapi.yml
x-generated: '2026-08-09'
x-method: generated
x-source: https://api.canoesoftware.com/api/docs.json
actions:
- target: $.info
description: Fill the empty contact/licence surface and record provenance.
update:
x-apievangelist-profile: https://apievangelist.com/providers/canoe-intelligence
x-apievangelist-harvested: '2026-08-09'
x-apievangelist-source: https://api.canoesoftware.com/api/docs.json
x-apievangelist-rating-artifacts:
- authentication/canoe-intelligence-authentication.yml
- conventions/canoe-intelligence-conventions.yml
- errors/canoe-intelligence-problem-types.yml
- lifecycle/canoe-intelligence-lifecycle.yml
- data-model/canoe-intelligence-data-model.yml
- target: $.info
description: Canoe publishes API Terms of Use but no machine-readable licence object.
update:
x-terms-of-service-note: https://canoeintelligence.com/api-terms-of-use/ — access to any Canoe API requires
a separate agreement; the portal terms grant documentation access only.
- target: $.tags
description: The Custom Fields tag is used by GET /v1/custom_fields but is never declared in tags[].
update:
- name: Custom Fields
description: Tenant-defined custom field definitions.
- target: $.components.securitySchemes['oauth2'].flows.authorizationCode
description: Record that the declared scopes map is empty — authorization is by purchased service and user permission,
not OAuth scope.
update:
x-apievangelist-scopes-note: Empty scopes map. Canoe gates access by purchased services and per-user permissions
rather than OAuth scopes.
- target: $.paths
description: Record the cross-cutting request headers every published code sample sends but which no operation
declares as parameters.
update:
x-apievangelist-required-headers:
- name: Authorization
value: Bearer {token}
- name: Accept
value: application/json
- name: X-Requested-With
value: XMLHttpRequest
- name: X-API-VERSION
value: YYYY-MM-DD
note: Opt-in dated behaviour train; required to enable pagination on several collection endpoints.
- target: $.paths
description: Record the pagination response contract, which is delivered in headers and is absent from every response
definition.
update:
x-apievangelist-pagination:
style: page-number
request_params:
- page
- limit
- perPage
response_headers:
- total
- first
- next
- prev
- last
max_page_size: 100
opt_in_header: X-API-VERSION
- target: $.paths
description: Record the documented error envelope, which appears in the docs narrative but in no response schema.
update:
x-apievangelist-error-envelope:
content_type: application/json
rfc9457: false
fields:
- error_code
- error_description
- hint
- retry_after
known_codes:
- INVALID_CREDENTIALS
- MALFORMED_JWT
- RATE_LIMIT_EXCEEDED
- target: $.paths
description: Record that the API has no idempotency contract, so agents must not blind-retry writes.
update:
x-apievangelist-idempotency:
supported: false
guidance: Reconcile with a GET before retrying any POST/PUT/PATCH; Canoe does not de-duplicate writes.
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.