Every API 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 apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
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.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/cfengine:cfengine-build-api"
All apis
curl "https://apis.io/api/v1/apis?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.
openapi: 3.2.0
info:
title: Cfengine Build API
version: '2026-10-08'
description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-08: 44 operation(s) read from 8 public documentation page(s) (each operation names its page in x-source). This is not the provider''s published contract; Cfengine has published no machine-readable contract that the pipeline could find. Engine: local.'
x-evidence-tiers:
code-example: 42
documentation: 2
pages-with-code: 8
pages-read: 8
x-generated-from: documentation
x-provenance: generated
x-authored-by: API Evangelist
x-generated: '2026-10-08'
x-generator: generate-contract-from-docs.py
x-engine: local
x-sources:
- https://docs.cfengine.com/docs/lts/api/enterprise-api-ref
- https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/host
- https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/ai-chat
- https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/cmdb-api
- https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/web-rbac
- https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api
- https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/inventory
- https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/users-rbac
servers:
- url: https://hub.cfengine.com
security:
- api_token: []
- Basic: []
- Bearer: []
tags:
- name: Build
paths:
/api/build/modules/autorun:
get:
operationId: get_api_build_modules_autorun
tags:
- Build
summary: GET /api/build/modules/autorun
x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/GetApiBuildModulesAutorunResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl --user <username>:<password> -X GET https://hub.cfengine.com/api/build/modules/autorun\n Successful response example: \n HTTP 200 OK\n{\n \"name\": \"autorun\",\n \"readme\": \"<h1 id=\\\"enable-autorun\\\">Enable autorun</h1>\\n<p>Simple module to enable autorun functionality, using def.json.</p>\\n\",\n \"description\": \"Enable autorun functionality\",\n \"version\": \"1.0.1\",\n \"author\": {\n \"url\": \"https://github.c"
/api/build/modules/autorun/1.0.0:
get:
operationId: get_api_build_modules_autorun_1_0_0
tags:
- Build
summary: GET /api/build/modules/autorun/1.0.0
x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/GetApiBuildModulesAutorun100Response'
x-evidence:
kind: code-example
language: curl
snippet: "curl --user <username>:<password> -X GET https://hub.cfengine.com/api/build/modules/autorun/1.0.0/\n Successful response example: \n HTTP 200 OK\n{\n \"name\": \"autorun\",\n \"readme\": \"<h1 id=\\\"enable-autorun\\\">Enable autorun</h1>\\n<p>Simple module to enable autorun functionality, using def.json.</p>\\n\",\n \"description\": \"Enable autorun functionality\",\n \"version\": \"1.0.0\",\n \"author\": {\n \"url\": \"https://g"
/api/build/projects/1/modules/autorun:
delete:
operationId: delete_api_build_projects_1_modules_autorun
tags:
- Build
summary: DELETE /api/build/projects/1/modules/autorun
x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteApiBuildProjects1ModulesAutorunResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl --user <username>:<password> -X DELETE https://hub.cfengine.com/api/build/projects/1/modules/autorun\n Successful response example: \n HTTP 204 No content \n Responses: \n HTTP response code \n Description \n 204 No content \n Module successfully deleted from project \n 404 Not found \n Project not found \n 500 Internal server error \n Internal server error \n Update CFEngine Build module version \n URI"
patch:
operationId: patch_api_build_projects_1_modules_autorun
tags:
- Build
summary: PATCH /api/build/projects/1/modules/autorun
x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/PatchApiBuildProjects1ModulesAutorunResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl --user <username>:<password> -X PATCH https://hub.cfengine.com/api/build/projects/1/modules/autorun -H 'content-type: application/json' -d '\n {\n \"version\": \"1.0.2\"\n }'\n Successful response example: \n HTTP No content \n Responses: \n HTTP response code \n Description \n 204 No content \n Module successfully updated \n 404 Not found \n Project not found \n 422 Unprocessable entity \n Validation erro"
post:
operationId: post_api_build_projects_1_modules_autorun
tags:
- Build
summary: POST /api/build/projects/1/modules/autorun
x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api
responses:
'201':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/PostApiBuildProjects1ModulesAutorunResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl --user <username>:<password> -X POST https://hub.cfengine.com/api/build/projects/1/modules/autorun -H 'content-type: application/json' -d '\n {\n \"version\": \"1.0.1\"\n }'\n Successful response example: \n HTTP 201 Created \n Responses: \n HTTP response code \n Description \n 201 Created \n Module successfully added \n 404 Not found \n Project not found \n 422 Unprocessable entity \n Validation error occ"
/api/build/projects/1/modules/delete-files/input:
get:
operationId: get_api_build_projects_1_modules_delete_files_input
tags:
- Build
summary: GET /api/build/projects/1/modules/delete-files/input
x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/GetApiBuildProjects1ModulesDeleteFilesInputResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl --user <username>:<password> -X GET https://hub.cfengine.com/api/build/projects/1/modules/delete-files/input\n Successful response example: \n HTTP 200 OK\n{\n \"status\": \"ok\",\n \"input_spec\": [\n {\n \"type\": \"list\",\n \"label\": \"Files\",\n \"while\": \"Specify another file you want deleted on your hosts?\",\n \"bundle\": \"delete_files\",\n \"subtype\": [\n {\n \"key\": \"path\",\n \"type\": \"string\",\n \"label\": \"Path\",\n \""
post:
operationId: post_api_build_projects_1_modules_delete_files_input
tags:
- Build
summary: POST /api/build/projects/1/modules/delete-files/input
x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
type: object
properties:
type:
type: string
label:
type: string
while:
type: string
bundle:
type: string
subtype:
type: array
items:
type: object
properties:
key:
type: string
type:
type: string
label:
type: string
question:
type: string
variable:
type: string
namespace:
type: string
response:
type: array
items:
type: object
properties:
path:
type: string
why:
type: string
responses:
'201':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/PostApiBuildProjects1ModulesDeleteFilesInputResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl --user <username>:<password> -X POST https://hub.cfengine.com/api/build/projects/1/modules/delete-files/input --header 'Content-Type: application/json' --data-raw '[\n {\n \"type\":\"list\",\n \"label\":\"Files\",\n \"while\":\"Specify another file you want deleted on your hosts?\",\n \"bundle\":\"delete_files\",\n \"subtype\":[\n {\n \"key\":\"path\",\n \"type\":\"string\",\n \"label\":\"Path\",\n \"question\":\"Path to file\"\n },\n"
/api/build/projects/2:
delete:
operationId: delete_api_build_projects_2
tags:
- Build
summary: DELETE /api/build/projects/2
x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteApiBuildProjects2Response'
x-evidence:
kind: code-example
language: curl
snippet: "curl --user <username>:<password> -X DELETE https://hub.cfengine.com/api/build/projects/2\n Successful response example: \n HTTP 204 No content \n Responses: \n HTTP response code \n Description \n 204 No content \n Project successfully deleted \n 404 Not found \n Project not found \n 500 Internal server error \n Internal server error \n Sync project \n URI: https://hub.cfengine.com/build/projects/:id/sync \n"
get:
operationId: get_api_build_projects_2
tags:
- Build
summary: GET /api/build/projects/2
x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/GetApiBuildProjects2Response'
x-evidence:
kind: code-example
language: curl
snippet: "curl --user <username>:<password> -X GET https://hub.cfengine.com/api/build/projects/2\n Successful response example: \n HTTP 200 OK\n{\n \"id\": 2,\n \"repository_url\": \"https://github.com/username/repository.git\",\n \"branch\": \"master\",\n \"name\": \"Production\",\n \"authentication_type\": \"password\",\n \"username\": \"admin\",\n \"is_empty\": false,\n \"created_at\": \"2022-03-17 14:01:56.23852+00\",\n \"pushed_at\": null,\n "
patch:
operationId: patch_api_build_projects_2
tags:
- Build
summary: PATCH /api/build/projects/2
x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/PatchApiBuildProjects2Response'
x-evidence:
kind: code-example
language: curl
snippet: "curl --user <username>:<password> -X PATCH https://hub.cfengine.com/api/build/projects/2 -H 'content-type: application/json' -d '\n {\n \"branch\": \"staging\",\n }'\n Successful response example: \n HTTP 200 OK\n{\n \"id\": \"4\"\n} \n Responses: \n HTTP response code \n Description \n 204 No content \n Project successfully updated \n 404 Not found \n Project not found \n 422 Unprocessable entity \n Validation error "
/api/build/projects/2/refresh:
post:
operationId: post_api_build_projects_2_refresh
tags:
- Build
summary: POST /api/build/projects/2/refresh
x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api
responses:
'201':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/PostApiBuildProjects2RefreshResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl --user <username>:<password> -X POST https://hub.cfengine.com/api/build/projects/2/refresh\n Successful response example: \n HTTP 200 OK\n{\n \"status\": \"ahead\",\n \"details\": [\n \"Refreshed repository for project 4 with 'git fetch'\"\n ]\n} \n Output: \n status \nProject’s status. Possible values:\n ok - project is up-to-date \n behind - there are changes in upstream which are not pulled \n ahead - there a"
/api/build/projects/5/modules:
get:
operationId: get_api_build_projects_5_modules
tags:
- Build
summary: GET /api/build/projects/5/modules
x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/GetApiBuildProjects5ModulesResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl --user <username>:<password> -X GET https://hub.cfengine.com/api/build/projects/5/modules\n Successful response example: \n HTTP 200 OK\n[\n {\n \"name\": \"masterfiles\",\n \"description\": \"Official CFEngine Masterfiles Policy Framework (MPF)\",\n \"tags\": [\n \"supported\",\n \"base\"\n ],\n \"repo\": \"https://github.com/cfengine/masterfiles\",\n \"by\": \"https://github.com/cfengine\",\n \"version\": \"3.18.1-1\",\n \"commi"
/api/build/projects/{projectid}:
post:
operationId: post_api_build_projects_projectid
tags:
- Build
summary: POST /api/build/projects/2
x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api
parameters:
- name: projectid
in: path
required: true
schema:
type: string
responses:
'201':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/PostApiBuildProjectsProjectidResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl --user <username>:<password> -X POST https://hub.cfengine.com/api/build/projects/2 -d '\n {\n \"action\": \"push\",\n }'\n Successful response example: \n HTTP 204 No content \n Responses: \n HTTP response code \n Description \n 204 No content \n Project successfully synced \n 404 Not found \n Project not found \n 500 Internal server error \n Internal server error \n Refresh project \n Fetch upstream reposito"
collapsed_from: 2 example path(s) differing only at projectId
/api/build/{buildid}:
get:
operationId: get_api_build_buildid
tags:
- Build
summary: GET /api/build/{buildid}
x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api
parameters:
- name: buildid
in: path
required: true
schema:
type: string
- name: searchQuery
in: query
required: false
schema:
type: string
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/GetApiBuildBuildidResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl --user <username>:<password> -X GET https://hub.cfengine.com/api/build/modules/?searchQuery=autorun\n Successful response example: \n HTTP 200 OK\n{\n \"data\": [\n {\n \"name\": \"autorun\",\n \"readme\": \"<h1 id=\\\"enable-autorun\\\">Enable autorun</h1>\\n<p>Simple module to enable autorun functionality, using def.json.</p>\\n\",\n \"description\": \"Enable autorun functionality\",\n \"version\": \"1.0.1\",\n \"author\": "
collapsed_from: 2 example path(s) differing only at buildId
post:
operationId: post_api_build_buildid
tags:
- Build
summary: POST /api/build/{buildid}
x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/build-api
parameters:
- name: buildid
in: path
required: true
schema:
type: string
responses:
'201':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/PostApiBuildBuildidResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl --user <username>:<password> -X POST https://hub.cfengine.com/api/build/modules\n Successful response example: \n 204 No content \n Responses: \n HTTP response code \n Description \n 204 No content \n Modules list successfully updated \n 500 Internal server error \n Internal server error \n Get CFEngine build module by name \n URI: https://hub.cfengine.com/api/build/modules/:name \n Method: GET \n Param"
collapsed_from: 2 example path(s) differing only at buildId
components:
schemas:
GetApiBuildProjects5ModulesResponse:
type: object
properties:
name:
type: string
description:
type: string
tags:
type: array
items:
type: string
repo:
type: string
by:
type: string
version:
type: string
commit:
type: string
added_by:
type: string
steps:
type: array
items:
type: string
subdirectory:
type: string
isExternal:
type: boolean
availableVersion:
type: string
GetApiBuildModulesAutorunResponse:
type: object
properties:
name:
type: string
readme:
type: string
description:
type: string
version:
type: string
author:
type: object
properties:
url:
type: string
name:
type: string
image:
type: string
updated:
type: string
format: date-time
downloads:
type: integer
repo:
type: string
documentation:
type:
- string
- 'null'
website:
type:
- string
- 'null'
subdirectory:
type: string
commit:
type: string
dependencies:
type: string
tags:
type: string
versions:
type: object
properties:
1.0.0:
type: object
properties:
date:
type: string
latest:
type: boolean
1.0.1:
type: object
properties:
date:
type: string
latest:
type: boolean
latest:
type: boolean
PostApiBuildBuildidResponse:
type: object
properties:
name:
type: string
readme:
type: string
description:
type: string
version:
type: string
author:
type: object
properties:
url:
type: string
name:
type: string
image:
type: string
updated:
type: string
format: date-time
downloads:
type: integer
repo:
type: string
documentation:
type:
- string
- 'null'
website:
type:
- string
- 'null'
subdirectory:
type: string
commit:
type: string
dependencies:
type: string
tags:
type: string
versions:
type: object
properties:
1.0.0:
type: object
properties:
date:
type: string
latest:
type: boolean
1.0.1:
type: object
properties:
date:
type: string
latest:
type: boolean
latest:
type: boolean
DeleteApiBuildProjects2Response:
type: object
properties:
status:
type: string
details:
type: array
items:
type: string
PostApiBuildProjects1ModulesAutorunResponse:
type: object
properties:
name:
type: string
readme:
type: string
description:
type: string
version:
type: string
author:
type: object
properties:
url:
type: string
name:
type: string
image:
type: string
updated:
type: string
format: date-time
downloads:
type: integer
repo:
type: string
documentation:
type:
- string
- 'null'
website:
type:
- string
- 'null'
subdirectory:
type: string
commit:
type: string
dependencies:
type: string
tags:
type: string
versions:
type: object
properties:
1.0.0:
type: object
properties:
date:
type: string
latest:
type: boolean
1.0.1:
type: object
properties:
date:
type: string
latest:
type: boolean
latest:
type: boolean
ts_vector:
type: string
GetApiBuildProjects1ModulesDeleteFilesInputResponse:
type: object
properties:
status:
type: string
input_spec:
type: array
items:
type: object
properties:
type:
type: string
label:
type: string
while:
type: string
bundle:
type: string
subtype:
type: array
items:
type: object
properties:
key:
type: string
type:
type: string
label:
type: string
question:
type: string
response:
type: array
items:
type: object
properties:
path:
type: string
why:
type: string
variable:
type: string
namespace:
type: string
PostApiBuildProjectsProjectidResponse:
type: object
properties:
status:
type: string
details:
type: array
items:
type: string
GetApiBuildBuildidResponse:
type: object
properties:
name:
type: string
readme:
type: string
description:
type: string
version:
type: string
author:
type: object
properties:
url:
type: string
name:
type: string
image:
type: string
updated:
type: string
format: date-time
downloads:
type: integer
repo:
type: string
documentation:
type:
- string
- 'null'
website:
type:
- string
- 'null'
subdirectory:
type: string
commit:
type: string
dependencies:
type: string
tags:
type: string
versions:
type: object
properties:
1.0.0:
type: object
properties:
date:
type: string
latest:
type: boolean
1.0.1:
type: object
properties:
date:
type: string
latest:
type: boolean
latest:
type: boolean
ts_vector:
type: string
PatchApiBuildProjects2Response:
type: object
properties:
id:
type: string
DeleteApiBuildProjects1ModulesAutorunResponse:
type: object
properties:
name:
type: string
readme:
type: string
description:
type: string
version:
type: string
author:
type: object
properties:
url:
type: string
name:
type: string
image:
type: string
updated:
type: string
format: date-time
downloads:
type: integer
repo:
type: string
documentation:
type:
- string
- 'null'
website:
type:
- string
- 'null'
subdirectory:
type: string
commit:
type: string
dependencies:
type: string
tags:
type: string
versions:
type: object
properties:
1.0.0:
type: object
properties:
date:
type: string
latest:
type: boolean
1.0.1:
type: object
properties:
date:
type: string
latest:
type: boolean
latest:
type: boolean
ts_vector:
type: string
PostApiBuildProjects2RefreshResponse:
type: object
properties:
status:
type: string
details:
type: array
items:
type: string
PatchApiBuildProjects1ModulesAutorunResponse:
type: object
properties:
name:
type: string
readme:
type: string
description:
type: string
version:
type: string
author:
type: object
properties:
url:
type: string
name:
type: string
image:
type: string
updated:
type: string
format: date-time
downloads:
type: integer
repo:
type: string
documentation:
type:
- string
- 'null'
website:
type:
- string
- 'null'
subdirectory:
type: string
commit:
type: string
dependencies:
type: string
tags:
type: string
versions:
type: object
properties:
1.0.0:
type: object
properties:
date:
type: string
latest:
type: boolean
1.0.1:
type: object
properties:
date:
type: string
latest:
type: boolean
latest:
type: boolean
ts_vector:
type: string
GetApiBuildProjects2Response:
type: object
properties:
id:
type: integer
repository_url:
type: string
branch:
type: string
name:
type: string
authentication_type:
type: string
username:
type: string
is_empty:
type: boolean
created_at:
type: string
format: date-time
pushed_at:
type:
- string
- 'null'
ssh_key_id:
type:
- string
- 'null'
password:
type: string
ssh_private_key:
type: string
PostApiBuildProjects1ModulesDeleteFilesInputResponse:
type: object
properties:
status:
type: string
GetApiBuildModulesAutorun100Response:
type: object
properties:
name:
type: string
readme:
type: string
description:
type: string
version:
type: string
author:
type: object
properties:
url:
type: string
name:
type: string
image:
type: string
updated:
type: string
format: date-time
downloads:
type: integer
repo:
type: string
documentation:
type:
- string
- 'null'
website:
type:
- string
- 'null'
subdirectory:
type: string
commit:
type: string
dependencies:
type: string
tags:
type: string
versions:
type: object
properties:
1.0.0:
type: object
properties:
date:
type: string
latest:
type: boolean
1.0.1:
type: object
properties:
date:
type: string
latest:
type: boolean
latest:
type: boolean
securitySchemes:
api_token:
type: apiKey
in: header
name: Authorization
x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/ldap-api/
Basic:
type: http
scheme: basic
x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/ldap-api/
Bearer:
type: http
scheme: bearer
x-source: https://docs.cfengine.com/docs/lts/api/enterprise-api-ref/ldap-api/