Refersion · OpenAPI Overlay 1.0.0
Refersion Affiliates API — API Evangelist enrichment overlay
13 actions
13 updates
security
extends
openapi/refersion-affiliates-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Refersion's API. It is a proposal applied on top of the contract, not a document Refersion publishes.
What the actions change
x-consequencex-idempotentx-batchx-protocol-deviationx-paginationx-apis-io-provenancecomponentssecurity
Targets 12
$.info
$
$.paths.*.*.responses.204
$.paths.*.*.responses.404
$.paths["/affiliate/new"].post
$.paths["/affiliate/get"].post
$.paths["/affiliate/edit"].post
$.paths["/affiliate/list"].post
$.paths["/affiliate/search"].post
$.paths["/affiliate/status_change"].post
$.paths["/affiliate/trigger"].post
$.paths["/trigger/delete"].post
OpenAPI Overlay
overlay: 1.0.0
info:
title: Refersion Affiliates API — API Evangelist enrichment overlay
version: 1.0.0
x-description: 'OpenAPI Overlay 1.0.0 capturing API Evangelist enrichments for openapi/refersion-affiliates-api-openapi.yml.
It never mutates the provider contract: it declares the security schemes Refersion omits, flags two
RFC 9110 status-code deviations the provider ships in its own spec, and attaches consequence, idempotency,
batch and pagination semantics harvested from https://www.refersion.dev. Nothing here is invented
— every value traces to the provider docs or to the harvested spec at openapi/_original/refersion-rest-api-readme-harvest.json.'
x-generated: '2026-08-13'
x-method: generated
x-source: openapi/refersion-affiliates-api-openapi.yml
extends: openapi/refersion-affiliates-api-openapi.yml
actions:
- target: $.info
description: Record that this contract is provider-published and where it was harvested from.
update:
x-apis-io-provenance:
method: searched
source: https://www.refersion.dev/reference/ (OpenAPI embedded per operation in the ReadMe .md rendering)
harvest: openapi/_original/refersion-rest-api-readme-harvest.json
harvested: '2026-08-13'
- target: $
description: Declare the paired API-key credentials as real security schemes. Refersion models them
only as required header parameters, so tooling that reads securitySchemes concludes this API is unauthenticated.
update:
components:
securitySchemes:
RefersionPublicKey:
type: apiKey
in: header
name: Refersion-Public-Key
description: Public half of the Refersion key pair. Example prefix pub_.
RefersionSecretKey:
type: apiKey
in: header
name: Refersion-Secret-Key
description: Secret half of the Refersion key pair. Server-side only.
security:
- RefersionPublicKey: []
RefersionSecretKey: []
- target: $
description: Attach the cross-cutting runtime semantics an agent needs and that the contract does not
express.
update:
x-conventions: conventions/refersion-conventions.yml
x-error-catalog: errors/refersion-problem-types.yml
x-data-model: data-model/refersion-data-model.yml
x-lifecycle: lifecycle/refersion-lifecycle.yml
x-webhooks: asyncapi/refersion-webhooks.yml
x-idempotency:
supported: false
note: No idempotency key of any kind is published. Writes are not safe to retry.
- target: $.paths.*.*.responses.204
description: 'Flag the 204 protocol violation: Refersion returns HTTP 204 No Content WITH a JSON validation-error
body, which most HTTP clients discard, turning a hard failure into a silent success.'
update:
x-protocol-deviation:
rfc: RFC 9110
issue: 204 No Content carries a response body describing a validation error
treat-as: failure
- target: $.paths.*.*.responses.404
description: 'Flag the 404 semantics deviation: 404 here means "empty request body", not "resource not
found".'
update:
x-protocol-deviation:
rfc: RFC 9110
issue: 404 is returned for a malformed/empty request body rather than a missing resource
treat-as: client-error
- target: $.paths["/affiliate/new"].post
description: Runtime semantics for new_affiliate derived from the provider documentation and error catalog.
update:
x-consequence: write
x-idempotent: false
- target: $.paths["/affiliate/get"].post
description: Runtime semantics for get_affiliate derived from the provider documentation and error catalog.
update:
x-consequence: read
x-idempotent: true
- target: $.paths["/affiliate/edit"].post
description: Runtime semantics for edit_affiliate derived from the provider documentation and error
catalog.
update:
x-consequence: write
x-idempotent: false
x-batch:
partial-failure: true
note: Returns HTTP 200 even when some elements fail; inspect ids_changed / ids_not_changed / duplicate_not_added.
- target: $.paths["/affiliate/list"].post
description: Runtime semantics for list_affiliates derived from the provider documentation and error
catalog.
update:
x-consequence: read
x-idempotent: true
x-pagination:
style: offset
params:
- page
- limit
max-limit: 100
response:
- total
- results
- target: $.paths["/affiliate/search"].post
description: Runtime semantics for search_affiliates derived from the provider documentation and error
catalog.
update:
x-consequence: read
x-idempotent: true
x-pagination:
style: offset
params:
- page
max-limit: null
response:
- total
- results
- target: $.paths["/affiliate/status_change"].post
description: Runtime semantics for affiliate_status_change derived from the provider documentation and
error catalog.
update:
x-consequence: write
x-idempotent: false
x-batch:
partial-failure: true
note: Returns HTTP 200 even when some elements fail; inspect ids_changed / ids_not_changed / duplicate_not_added.
max-elements: 50
- target: $.paths["/affiliate/trigger"].post
description: Runtime semantics for new_affiliate_trigger derived from the provider documentation and
error catalog.
update:
x-consequence: write
x-idempotent: false
- target: $.paths["/trigger/delete"].post
description: Runtime semantics for delete_conversion_trigger derived from the provider documentation
and error catalog.
update:
x-consequence: write
x-idempotent: false
x-batch:
partial-failure: true
note: Returns HTTP 200 even when some elements fail; inspect ids_changed / ids_not_changed / duplicate_not_added.
max-elements: 50
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/refersion-affiliates-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.