HAProxy · OpenAPI Overlay 1.0.0
API Evangelist enhancements for the HAProxy Data Plane API
10 actions
10 updates
update
Derived by API Evangelist
Built from the contracts HAProxy publishes. HAProxy did not publish this file.
What the actions change
x-harvested-fromx-harvested-onx-vendorx-product-linex-licensex-deploymentx-write-semanticsx-reload-semantics
Targets 6
$.info
$
$.definitions.error
$.securityDefinitions.basic_auth
$.parameters.version
$.parameters.transaction_id
OpenAPI Overlay
overlay: 1.0.0
info:
title: API Evangelist enhancements for the HAProxy Data Plane API
version: 1.0.0
x-provenance:
generated: '2026-08-28'
method: generated
source: openapi/haproxy-data-plane-api-openapi.yml
extends: openapi/haproxy-data-plane-api-openapi.yml
note: >-
This overlay records API Evangelist's derived enrichment of the harvested HAProxy Data
Plane API contract. The original Swagger 2.0 document is never mutated. Actions add
documentation and machine-readable pointers that the upstream spec does not carry:
the self-hosted base URL shape, the contact/licence identity, the optimistic-concurrency
and transaction semantics, and links to the artifacts derived from this spec.
actions:
- target: $.info
description: >-
Record where this copy came from and which HAProxy release line it describes.
update:
x-harvested-from: https://raw.githubusercontent.com/haproxytech/client-native/master/specification/build/haproxy_spec.yaml
x-harvested-on: '2026-08-28'
x-vendor: HAProxy Technologies
x-product-line: HAProxy Data Plane API 3.4
- target: $.info
description: State the licence of the upstream project, which the spec omits.
update:
x-license:
name: Apache-2.0
url: https://github.com/haproxytech/dataplaneapi/blob/master/LICENSE
- target: $
description: >-
The contract declares no `host`, because the Data Plane API is self-hosted software.
Record the documented default deployment shape so a client knows what to fill in.
update:
x-deployment:
model: self-hosted
default_port: 5555
base_path: /v3
base_url_template: http://{haproxy-host}:5555/v3
note: >-
There is no vendor-operated host. Port and base path are the documented defaults;
both are configurable via the dataplaneapi --port flag and the URI version.
- target: $
description: >-
Surface the write-safety model at the document level. It is expressed in the spec only
as two shared query parameters, which is easy to miss.
update:
x-write-semantics:
concurrency: optimistic
version_parameter: version
version_read: GET /v3/services/haproxy/configuration/version
conflict_status: 409
response_header: Configuration-Version
transactional: true
transaction_open: startTransaction
transaction_commit: commitTransaction
transaction_rollback: deleteTransaction
reversible_until: commit
idempotency_key_header: null
- target: $
description: Record the reload signalling that a 202 response implies.
update:
x-reload-semantics:
accepted_status: 202
header: Reload-ID
poll: GET /v3/services/haproxy/reloads/{id}
note: A 202 is not confirmation the change is live.
- target: $
description: Link the artifacts derived from this contract.
update:
x-api-evangelist-artifacts:
authentication: authentication/haproxy-authentication.yml
conventions: conventions/haproxy-conventions.yml
errors: errors/haproxy-problem-types.yml
data_model: data-model/haproxy-data-model.yml
lifecycle: lifecycle/haproxy-lifecycle.yml
conformance: conformance/haproxy-conformance.yml
skills: skills/_index.yml
mcp: mcp/haproxy-mcp.yml
- target: $.definitions.error
description: >-
The error definition carries no guidance on what a caller should do. Record the
remediation the derived error catalog captures.
update:
x-remediation:
'409': >-
Re-read the configuration version (or the Configuration-Version response header)
and replay the write with the fresh value. Do not retry with the same version.
'429': >-
Commit or delete open transactions. This 429 is a transaction-concurrency limit,
not a request-rate limit.
x-error-catalog: errors/haproxy-problem-types.yml
- target: $.securityDefinitions.basic_auth
description: State how the Basic credentials are provisioned.
update:
x-credential-source: >-
Users defined in the HAProxy userlist referenced by the Data Plane API's --userlist
or --userlist-file flag. There are no API keys, no OAuth flows and no scopes.
- target: $.parameters.version
description: Make the concurrency contract explicit on the parameter itself.
update:
x-concurrency: optimistic-lock
x-read-from: GET /v3/services/haproxy/configuration/version
x-on-mismatch: 409
- target: $.parameters.transaction_id
description: Make the reversibility window explicit on the parameter itself.
update:
x-reversible-until: commitTransaction
x-rollback: DELETE /v3/services/haproxy/transactions/{id}
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/haproxy-data-plane-api-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.