Humanitec public API

The public API from Humanitec — 141 operation(s) for public.

Operations 213

GET /orgs/{orgId}/apps List all Applications in an Organization. #
POST /orgs/{orgId}/apps Add a new Application to an Organization #
GET /orgs/{orgId}/apps/{appId} Get an existing Application #
PATCH /orgs/{orgId}/apps/{appId} Update metadata of an existing Application #
DELETE /orgs/{orgId}/apps/{appId} Delete an Application #
GET /orgs/{orgId}/apps/{appId}/envs List all Environments. #
POST /orgs/{orgId}/apps/{appId}/envs Add a new Environment to an Application. #
GET /orgs/{orgId}/apps/{appId}/envs/{envId} Get a specific Environment. #
PATCH /orgs/{orgId}/apps/{appId}/envs/{envId} Update a specific Environment. #
DELETE /orgs/{orgId}/apps/{appId}/envs/{envId} Delete a specific Environment. #
GET /orgs/{orgId}/apps/{appId}/envs/{envId}/deploys List Deployments in an Environment. #
POST /orgs/{orgId}/apps/{appId}/envs/{envId}/deploys Start a new Deployment. #
GET /orgs/{orgId}/apps/{appId}/envs/{envId}/deploys/{deployId} Get a specific Deployment. #
GET /orgs/{orgId}/apps/{appId}/envs/{envId}/deploys/{deployId}/errors List errors that occurred in a Deployment. #
PUT /orgs/{orgId}/apps/{appId}/envs/{envId}/from_deploy_id Rebase to a different Deployment. #
GET /orgs/{orgId}/env-types List all Environment Types #
POST /orgs/{orgId}/env-types Add a new Environment Type #
GET /orgs/{orgId}/env-types/{envTypeId} Get an Environment Type #
DELETE /orgs/{orgId}/env-types/{envTypeId} Deletes an Environment Type #
PATCH /orgs/{orgId}/env-types/{envTypeId} Updates Environment Type #
GET /orgs/{orgId}/artefact-versions List all Artefacts Versions in the org. #
POST /orgs/{orgId}/artefact-versions Register a new Artefact Version with your organization. #
GET /orgs/{orgId}/artefact-versions/{artefactVersionId} Get an Artefacts Versions. #
GET /orgs/{orgId}/artefact-versions/{artefactVersionId}/workload-spec Get the spec of this Workload Artefact Version #
GET /orgs/{orgId}/artefact-versions/{artefactVersionId}/workload-deployment-set Get the Humanitec module definition of this Workload Artefact Version as a deployment set #
GET /orgs/{orgId}/artefacts List all Artefacts. #
DELETE /orgs/{orgId}/artefacts/{artefactId} Delete Artefact and all related Artefact Versions #
GET /orgs/{orgId}/artefacts/{artefactId}/versions List all Artefact Versions of an Artefact. #
PATCH /orgs/{orgId}/artefacts/{artefactId}/versions/{versionId} Update Version of an Artefact. #
GET /orgs/{orgId}/images List all Container Images #
GET /orgs/{orgId}/images/{imageId} Get a specific Image Object #
GET /orgs/{orgId}/images/{imageId}/builds Lists all the Builds of an Image #
POST /orgs/{orgId}/images/{imageId}/builds Add a new Image Build #
POST /orgs/{orgId}/artefact-versions/convert-score Convert a Score specification, optional overrides, and extensions into the contents for a deployment set. #
GET /orgs/{orgId}/audit-logs List audit log entries by Organization #
GET /orgs/{orgId}/apps/{appId}/envs/{envId}/rules List all Automation Rules in an Environment. #
POST /orgs/{orgId}/apps/{appId}/envs/{envId}/rules Create a new Automation Rule for an Environment. #
GET /orgs/{orgId}/apps/{appId}/envs/{envId}/rules/{ruleId} Get a specific Automation Rule for an Environment. #
PUT /orgs/{orgId}/apps/{appId}/envs/{envId}/rules/{ruleId} Update an existing Automation Rule for an Environment. #
DELETE /orgs/{orgId}/apps/{appId}/envs/{envId}/rules/{ruleId} Delete Automation Rule from an Environment. #
GET /orgs/{orgId}/apps/{appId}/deltas List Deltas in an Application #
POST /orgs/{orgId}/apps/{appId}/deltas Create a new Delta #
GET /orgs/{orgId}/apps/{appId}/deltas/{deltaId} Fetch an existing Delta #
PATCH /orgs/{orgId}/apps/{appId}/deltas/{deltaId} Update an existing Delta #
PUT /orgs/{orgId}/apps/{appId}/deltas/{deltaId} Update an existing Delta #
PUT /orgs/{orgId}/apps/{appId}/deltas/{deltaId}/metadata/archived Mark a Delta as "archived" #
PUT /orgs/{orgId}/apps/{appId}/deltas/{deltaId}/metadata/env_id Change the Environment of a Delta #
PUT /orgs/{orgId}/apps/{appId}/deltas/{deltaId}/metadata/name Change the name of a Delta #
GET /orgs/{orgId}/apps/{appId}/sets Get all Deployment Sets #
GET /orgs/{orgId}/apps/{appId}/sets/{setId} Get a Deployment Set #
POST /orgs/{orgId}/apps/{appId}/sets/{setId} Apply a Deployment Delta to a Deployment Set #
GET /orgs/{orgId}/apps/{appId}/sets/{setId}/resources Get Resource Inputs for the given Deployment Set #
GET /orgs/{orgId}/apps/{appId}/sets/{setId}/diff/{sourceSetId} Get the difference between 2 Deployment Sets #
DELETE /orgs/{orgId}/apps/{appId}/jobs Deletes all Jobs for the Application
GET /orgs/{orgId}/apps/{appId}/webhooks List Webhooks
POST /orgs/{orgId}/apps/{appId}/webhooks Create a new Webhook
GET /orgs/{orgId}/apps/{appId}/webhooks/{jobId} Get a Webhook
DELETE /orgs/{orgId}/apps/{appId}/webhooks/{jobId} Delete a Webhook
PATCH /orgs/{orgId}/apps/{appId}/webhooks/{jobId} Update a Webhook
GET /orgs/{orgId}/events List Events
POST /orgs/{orgId}/keys Associate a new RSA public key to an organization. #
GET /orgs/{orgId}/keys List all public keys associated to an organization. #
DELETE /orgs/{orgId}/keys/{keyId} Delete a public key associated to an organization. #
GET /orgs/{orgId}/keys/{keyId} Retrieve a single public key associated to an organization. #
GET /orgs/{orgId}/humanitec-keys List all the public keys Humanitec shares with an organization. #
GET /orgs/{orgId}/apps/{appId}/envs/{envId}/logs Get container log entries for the environment
GET /orgs List active organizations the user has access to. #
GET /orgs/{orgId} Get the specified Organization. #
GET /orgs/{orgId}/pipelines List all Pipelines within an Organization. This can be filtered by Application. #
GET /orgs/{orgId}/apps/{appId}/pipelines List Pipelines within an Application. #
POST /orgs/{orgId}/apps/{appId}/pipelines Create a Pipeline within an Application. #
GET /orgs/{orgId}/apps/{appId}/pipelines/{pipelineId} Get a Pipeline within an Application. #
PATCH /orgs/{orgId}/apps/{appId}/pipelines/{pipelineId} update a Pipeline within an Application. #
DELETE /orgs/{orgId}/apps/{appId}/pipelines/{pipelineId} Delete a pipeline within an application. #
GET /orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/versions List all versions of the pipeline #
GET /orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/schema Get a pipeline schema. #
GET /orgs/{orgId}/apps/{appId}/pipeline-criteria List the trigger matching criteria defined for Pipelines in this Application. #
POST /orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/criteria Create a new trigger matching criteria for this Pipeline. #
GET /orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/criteria/{criteriaId} Get the Pipeline Criteria with the given id. #
DELETE /orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/criteria/{criteriaId} Delete the Pipeline Criteria with the given id. #
GET /orgs/{orgId}/pipeline-schemas/latest Gets the latest pipeline schema #
GET /orgs/{orgId}/pipeline-runs List all pipeline runs within the Org ordered newest to oldest. This can be filtered by app, pipeline, and status. #
POST /orgs/{orgId}/apps/{appId}/pipeline-runs Create a Pipeline Run in the appropriate Pipeline based on the trigger and inputs. #
GET /orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/runs List runs within a pipeline ordered newest to oldest. #
POST /orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/runs Create a run within a pipeline. #
GET /orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/runs/{runId} Get a run within an pipeline. #
DELETE /orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/runs/{runId} Deleting a completed Run within a Pipeline. #
POST /orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/runs/{runId}/cancel Cancel a Run within an Pipeline. #
POST /orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/runs/{runId}/restart Restart a Run within an Pipeline by cloning it with the same trigger and inputs. #
GET /orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/runs/{runId}/jobs List the details of the jobs within a pipeline run. #
GET /orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/runs/{runId}/jobs/{jobId} List the details of a Job including Step information #
GET /orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/runs/{runId}/jobs/{jobId}/steps/{stepIndex}/logs Get a page of log output for a given step within a job. #
GET /orgs/{orgId}/apps/{appId}/approvals List of the approval requests #
GET /orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/runs/{runId}/jobs/{jobId}/approvals/{approvalId} Get an approval request #
POST /orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/runs/{runId}/jobs/{jobId}/approvals/{approvalId}/approve Approve the approval request #
POST /orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/runs/{runId}/jobs/{jobId}/approvals/{approvalId}/deny Deny the approval request #
GET /orgs/{orgId}/apps/{appId}/pipelines/{pipelineId}/batches/{batchType} Read the current state of a trigger batch #
GET /orgs/{orgId}/registries Lists available registries for the organization.
POST /orgs/{orgId}/registries Creates a new registry record.
GET /orgs/{orgId}/registries/{regId} Loads a registry record details.
DELETE /orgs/{orgId}/registries/{regId} Deletes an existing registry record and all associated credentials and secrets.
PATCH /orgs/{orgId}/registries/{regId} Updates (patches) an existing registry record.
GET /orgs/{orgId}/registries/{regId}/creds Returns current account credentials or secret details for the registry.
GET /orgs/{orgId}/apps/{appId}/envs/{envId}/resources List Active Resources provisioned in an environment. #
POST /orgs/{orgId}/apps/{appId}/envs/{envId}/resources/graph Lists the resource objects that hold the information needed to provision the resources specified in the request and the resources they depend on. #
POST /orgs/{orgId}/apps/{appId}/envs/{envId}/resources/graphs Create a Dependency Graph which is composed by the resource objects that hold the information needed to provision the resources specified in the request and the resources they depe #
GET /orgs/{orgId}/apps/{appId}/envs/{envId}/resources/graphs/{graphId} Retrieve a Dependency Graph by its ID. #
DELETE /orgs/{orgId}/apps/{appId}/envs/{envId}/resources/{type}/{resId} Delete Active Resource. #
POST /orgs/{orgId}/apps/{appId}/envs/{envId}/resources/{type}/{resId}/actions/pin Pin Active Resource to a target Resource Definition Version. #
GET /orgs/{orgId}/resources/account-types List Resource Account Types available to the organization. #
GET /orgs/{orgId}/resources/accounts List Resource Accounts in the organization. #
POST /orgs/{orgId}/resources/accounts Create a new Resource Account in the organization. #
GET /orgs/{orgId}/resources/accounts/{accId} Get a Resource Account. #
DELETE /orgs/{orgId}/resources/accounts/{accId} Delete an unused Resource Account. #
PATCH /orgs/{orgId}/resources/accounts/{accId} Update a Resource Account. #
POST /orgs/{orgId}/resources/accounts/{accId}/actions/check Check the credentials of an existing Resource Account #
GET /orgs/{orgId}/resources/defs List Resource Definitions. #
POST /orgs/{orgId}/resources/defs Create a new Resource Definition. #
GET /orgs/{orgId}/resources/defs/{defId} Get a Resource Definition. #
PUT /orgs/{orgId}/resources/defs/{defId} Update a Resource Definition. #
DELETE /orgs/{orgId}/resources/defs/{defId} Delete a Resource Definition. #
PATCH /orgs/{orgId}/resources/defs/{defId} Update a Resource Definition. #
GET /orgs/{orgId}/resources/defs/{defId}/versions Get Versions of a Resource Definition. #
GET /orgs/{orgId}/resources/defs/{defId}/versions/{defVersionId} Get a Resource Definition Version. #
POST /orgs/{orgId}/resources/defs/{defId}/versions/{defVersionId}/actions/archive Mark/unmark the Resource Definition Version as archived. #
POST /orgs/{orgId}/resources/defs/{defId}/versions/{defVersionId}/actions/promote Promote the Resource Definition Version as active. #
PUT /orgs/{orgId}/resources/defs/{defId}/criteria Update all Matching Criteria of a Resource Definition. #
POST /orgs/{orgId}/resources/defs/{defId}/criteria Add a new Matching Criteria to a Resource Definition. #
DELETE /orgs/{orgId}/resources/defs/{defId}/criteria/{criteriaId} Delete a Matching Criteria from a Resource Definition. #
GET /orgs/{orgId}/resources/defs/{defId}/resources List Active Resources provisioned via a specific Resource Definition. #
GET /orgs/{orgId}/resources/drivers List Resource Drivers. #
POST /orgs/{orgId}/resources/drivers Register a new Resource Driver. #
GET /orgs/{orgId}/resources/drivers/{driverId} Get a Resource Driver. #
PUT /orgs/{orgId}/resources/drivers/{driverId} Update a Resource Driver. #
DELETE /orgs/{orgId}/resources/drivers/{driverId} Delete a Resources Driver. #
GET /orgs/{orgId}/resources/types List Resource Types. #
POST /orgs/{orgId}/resources/types Creates a new Resources Type. #
DELETE /orgs/{orgId}/resources/types/{typeId} Delete a Resource Type. #
PATCH /orgs/{orgId}/resources/types/{typeId} Update a Resource Type. #
PUT /orgs/{orgId}/resources/types/{typeId} Update a Resource Type. #
GET /orgs/{orgId}/resources/classes List resource classes. #
POST /orgs/{orgId}/resources/types/{typeId}/classes Creates a new resources class. #
GET /orgs/{orgId}/resources/types/{typeId}/classes/{classId} Get resource class by ID. #
PATCH /orgs/{orgId}/resources/types/{typeId}/classes/{classId} Update a resource class description. #
DELETE /orgs/{orgId}/resources/types/{typeId}/classes/{classId} Delete a resource class. #
GET /orgs/{orgId}/apps/{appId}/envs/{envId}/runtime Get Runtime information about the environment. #
PUT /orgs/{orgId}/apps/{appId}/envs/{envId}/runtime/paused Pause / Resume an environment. #
PATCH /orgs/{orgId}/apps/{appId}/envs/{envId}/runtime/replicas Set number of replicas for an environment's modules. #
GET /orgs/{orgId}/apps/{appId}/runtime Get Runtime information about specific multiple environments. #
POST /orgs/{orgId}/runtime/actions/check-connectivity Provision and check the cluster connectivity in an environment #
GET /orgs/{orgId}/secretstores Get list of Secret Stores for the given organization.
POST /orgs/{orgId}/secretstores Create a Secret Store for the given organization.
GET /orgs/{orgId}/secretstores/{storeId} Get the Secret Store.
DELETE /orgs/{orgId}/secretstores/{storeId} Delete the Secret Store.
PATCH /orgs/{orgId}/secretstores/{storeId} Update the Secret Store.
GET /current-user Gets the extended profile of the current user #
PATCH /current-user Updates the extended profile of the current user. #
POST /orgs/{orgId}/groups Create a group in an organization #
GET /orgs/{orgId}/groups/{groupId}/users List users in a group. #
GET /orgs/{orgId}/apps/{appId}/users List Users or Groups with roles in an App #
POST /orgs/{orgId}/apps/{appId}/users Adds a User or a Group to an Application with a Role #
GET /orgs/{orgId}/apps/{appId}/users/{userId} Get the role of a User or a Group on an Application #
DELETE /orgs/{orgId}/apps/{appId}/users/{userId} Remove the role of a User or a Group on an Application #
PATCH /orgs/{orgId}/apps/{appId}/users/{userId} Update the role of a User or a Group on an Application #
GET /orgs/{orgId}/env-types/{envType}/users List Users and Groups with roles in an Environment Type #
POST /orgs/{orgId}/env-types/{envType}/users Adds a User or a Group to an Environment Type with a Role #
GET /orgs/{orgId}/env-types/{envType}/users/{userId} Get the role of a User or a Group on an Environment Type #
DELETE /orgs/{orgId}/env-types/{envType}/users/{userId} Remove the role of a User or a Group on an Environment Type #
PATCH /orgs/{orgId}/env-types/{envType}/users/{userId} Update the role of a User or a Group on an Environment Type #
GET /orgs/{orgId}/invitations List the invites issued for the organization. #
POST /orgs/{orgId}/invitations Invites a user to an Organization with a specified role. #
GET /orgs/{orgId}/users List Users and Groups with roles in an Organization #
POST /orgs/{orgId}/users Creates a new service user. #
GET /orgs/{orgId}/users/{userId} Get the role of a User or a Group on an Organization #
DELETE /orgs/{orgId}/users/{userId} Remove the role of a User or a Group on an Organization #
PATCH /orgs/{orgId}/users/{userId} Update the role of a User or a Group on an Organization #
GET /orgs/{orgId}/users/{userId}/groups Get the groups in an organization a user belongs to. #
GET /users/{userId}/tokens Lists tokens associated with a user #
POST /users/{userId}/tokens Creates a new static token for a user. #
GET /users/{userId}/tokens/{tokenId} Gets a specific token associated with a user #
DELETE /users/{userId}/tokens/{tokenId} Deletes a specific token associated with a user #
GET /orgs/{orgId}/apps/{appId}/envs/{envId}/value-set-versions List Value Set Versions in an Environment of an App
GET /orgs/{orgId}/apps/{appId}/envs/{envId}/value-set-versions/{valueSetVersionId} Get a single Value Set Version in an Environment of an App. The zero version id (00000000-0000-0000-0000-000000000000) will return the latest Value Set Version.
POST /orgs/{orgId}/apps/{appId}/envs/{envId}/value-set-versions/{valueSetVersionId}/purge/{key} Purge the value of a specific Shared Value from the App Environment Version history.
POST /orgs/{orgId}/apps/{appId}/envs/{envId}/value-set-versions/{valueSetVersionId}/restore Restore a Value Set Version in an Environment of an App
POST /orgs/{orgId}/apps/{appId}/envs/{envId}/value-set-versions/{valueSetVersionId}/restore/{key} Restore a specific key from the Value Set Version in an Environment of an App
GET /orgs/{orgId}/apps/{appId}/envs/{envId}/values List Shared Values in an Environment
POST /orgs/{orgId}/apps/{appId}/envs/{envId}/values Create a Shared Value for an Environment
DELETE /orgs/{orgId}/apps/{appId}/envs/{envId}/values Delete all Shared Value for an Environment
PUT /orgs/{orgId}/apps/{appId}/envs/{envId}/values/{key} Update Shared Value for an Environment
DELETE /orgs/{orgId}/apps/{appId}/envs/{envId}/values/{key} Delete Shared Value for an Environment
PATCH /orgs/{orgId}/apps/{appId}/envs/{envId}/values/{key} Update Shared Value for an Environment
GET /orgs/{orgId}/apps/{appId}/value-set-versions List Value Set Versions in the App
GET /orgs/{orgId}/apps/{appId}/value-set-versions/{valueSetVersionId} Get a single Value Set Version from the App
POST /orgs/{orgId}/apps/{appId}/value-set-versions/{valueSetVersionId}/purge/{key} Purge the value of a specific Shared Value from the App Version history.
POST /orgs/{orgId}/apps/{appId}/value-set-versions/{valueSetVersionId}/restore Restore a Value Set Version in an App
POST /orgs/{orgId}/apps/{appId}/value-set-versions/{valueSetVersionId}/restore/{key} Restore a specific key from the Value Set Version in an App
GET /orgs/{orgId}/apps/{appId}/values List Shared Values in an Application
POST /orgs/{orgId}/apps/{appId}/values Create a Shared Value for an Application
DELETE /orgs/{orgId}/apps/{appId}/values Delete all Shared Value for an App
PUT /orgs/{orgId}/apps/{appId}/values/{key} Update Shared Value for an Application
DELETE /orgs/{orgId}/apps/{appId}/values/{key} Delete Shared Value for an Application
PATCH /orgs/{orgId}/apps/{appId}/values/{key} Update Shared Value for an Application
GET /orgs/{orgId}/workload-profile-features List workload profile features available to the organization. #
GET /orgs/{orgId}/workload-profiles List workload profiles available to the organization. #
POST /orgs/{orgId}/workload-profiles Create new Workload Profile #
GET /orgs/{orgId}/workload-profiles/{profileQid} Get a Workload Profile #
PUT /orgs/{orgId}/workload-profiles/{profileQid} Update a Workload Profile #
DELETE /orgs/{orgId}/workload-profiles/{profileQid} Delete a Workload Profile #
GET /orgs/{orgId}/workload-profiles/{profileQid}/versions List versions of the given workload profile. #
GET /orgs/{orgId}/workload-profiles/{profileQid}/versions/latest Latest version of the given workload profile with optional constraint. #
POST /orgs/{orgId}/workload-profile-chart-versions Add new Workload Profile Chart Version #
GET /orgs/{orgId}/workload-profile-chart-versions Workload Profile Chart Versions for the given organization. #

Work with this as data

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/humanitec-public-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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 Specification

humanitec-public-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Humanitec Public API
  version: 0.28.24
  description: '# Introduction

    The *Humanitec API* allows you to automate and integrate Humanitec into your developer and operational workflows.

    The API is a REST based API. It is based around a set of concepts:


    * Core

    * External Resources

    * Sets and Deltas


    ## Authentication


    Almost all requests made to the Humanitec API require Authentication. See our [Developer Docs on API Authentication](https://developer.humanitec.com/platform-orchestrator/reference/api-references/#authentication) for instructions.


    ## Content Types

    The Humanitec API, unless explicitly specified, only accepts content types of `application/json` and will always return valid `application/json` or an empty response.


    ## Response Codes

    ### Success

    Any response code in the `2xx` range should be regarded as success.


    | **Code** | **Meaning**                         |

    |----------|-------------------------------------|

    | `200`    | Success                             |

    | `201`    | Success, a new resource was created |

    | `204`    | Success, but no content in response |


    _Note: We plan to simplify the interface by replacing 201 with 200 status codes._


    ### Failure

    Any response code in the `4xx` range should be regarded as an error that can be rectified by the client. `5xx` error codes indicate errors that cannot be corrected by the client.


    | **Code** | **Meaning**                                                                                                           |

    |----------|-----------------------------------------------------------------------------------------------------------------------|

    | `400`    | General error. (Body will contain details)                                                                            |

    | `401`    | Attempt to access protected resource without `Authorization` Header.                                                  |

    | `403`    | The `Bearer` or `JWT` does not grant access to the requested resource.                                                |

    | `404`    | Resource not found.                                                                                                   |

    | `405`    | Method not allowed                                                                                                    |

    | `409`    | Conflict. Usually indicated a resource with that ID already exists.                                                   |

    | `422`    | Unprocessable Entity. The body was not valid JSON, was empty or contained an object different from what was expected. |

    | `429`    | Too many requests - request rate limit has been reached.                                                              |

    | `500`    | Internal Error. If it occurs repeatedly, contact support.                                                             |

    '
  contact:
    name: Humanitec Support
    email: support@humanitec.com
  x-logo:
    url: humanitec-logo.png
    altText: Humanitec logo
servers:
- url: https://api.humanitec.io/
tags:
- name: public
paths:
  /orgs/{orgId}/apps:
    get:
      tags:
      - public
      summary: List all Applications in an Organization.
      operationId: listApplications
      description: Listing or lists of all Applications that exist within a specific Organization.
      parameters:
      - name: orgId
        in: path
        description: 'The Organization ID.


          '
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Possibly empty list of Applications.
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/ApplicationResponse'
                type: array
              example:
              - created_at: '2020-06-15T09:32:03Z'
                created_by: a-user@example.com
                envs:
                  id: development
                  name: Development
                  type: development
                id: my-app
                name: My Awesome App
    post:
      tags:
      - public
      summary: Add a new Application to an Organization
      operationId: createApplication
      description: Creates a new Application, then adds it to the specified Organization.
      parameters:
      - name: orgId
        in: path
        description: 'The Organization ID.


          '
        required: true
        schema:
          type: string
      requestBody:
        description: 'The request ID, Human-friendly name and environment of the Application.


          '
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationCreationRequest'
      responses:
        '201':
          description: 'The Application requested.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationResponse'
              example:
                created_at: '2020-06-15T09:32:03Z'
                created_by: a-user@example.com
                envs:
                  id: development
                  name: Development
                  type: development
                id: my-app
                name: My Awesome App
        '400':
          description: 'The request body was unparseable.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
        '401':
          description: 'The Authorization header was not present or invalid.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
        '409':
          description: 'The supplied `id` clashes with an existing Application.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
  /orgs/{orgId}/apps/{appId}:
    get:
      tags:
      - public
      summary: Get an existing Application
      operationId: getApplication
      description: Gets a specific Application in the specified Organization by ID.
      parameters:
      - name: orgId
        in: path
        description: 'The Organization ID.


          '
        required: true
        schema:
          type: string
      - name: appId
        in: path
        description: 'The Application ID.


          '
        required: true
        schema:
          type: string
      responses:
        '200':
          description: 'The Application requested.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationResponse'
              example:
                created_at: '2020-06-15T09:32:03Z'
                created_by: a-user@example.com
                envs:
                  id: development
                  name: Development
                  type: development
                id: my-app
                name: My Awesome App
        '404':
          description: 'No Application with ID `appId` in Organization.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
    patch:
      tags:
      - public
      summary: Update metadata of an existing Application
      operationId: patchApplication
      description: Update metadata of an existing Application in the specified Organization.
      parameters:
      - $ref: '#/components/parameters/orgIdPathParam'
      - $ref: '#/components/parameters/appIdPathParam'
      requestBody:
        description: The Application patch request. Only the field `name` can be updated.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationPatchPayload'
      responses:
        '200':
          description: Application updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationResponse'
              example:
                created_at: '2020-06-15T09:32:03Z'
                created_by: a-user@example.com
                envs:
                  id: development
                  name: Development
                  type: development
                id: my-app
                name: My Awesome App
        '404':
          description: No Application with ID `appId` in Organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
    delete:
      tags:
      - public
      summary: Delete an Application
      operationId: deleteApplication
      description: 'Deleting an Application will also delete everything associated with it. This includes Environments, Deployment history on those Environments, and any shared values and secrets associated.


        _Deletions are currently irreversible._'
      parameters:
      - name: orgId
        in: path
        description: 'The Organization ID.


          '
        required: true
        schema:
          type: string
      - name: appId
        in: path
        description: 'The Application ID.


          '
        required: true
        schema:
          type: string
      responses:
        '204':
          description: 'Application Successfully deleted.


            '
        '202':
          description: 'Application deletion is in progress.


            '
        '401':
          description: 'The Authorization header was not present or invalid.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
        '404':
          description: 'No Application with `id` in Organization.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
  /orgs/{orgId}/apps/{appId}/envs:
    get:
      tags:
      - public
      summary: List all Environments.
      operationId: listEnvironments
      description: Lists all of the Environments in the Application.
      parameters:
      - name: orgId
        in: path
        description: 'The Organization ID.


          '
        required: true
        schema:
          type: string
      - name: appId
        in: path
        description: 'The Application ID.


          '
        required: true
        schema:
          type: string
      responses:
        '200':
          description: 'A list of Environments associated with an Application.


            '
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/EnvironmentResponse'
                type: array
              example:
              - {}
    post:
      tags:
      - public
      summary: Add a new Environment to an Application.
      operationId: createEnvironment
      description: 'Creates a new Environment of the specified Type and associates it with the Application specified by `appId`.


        The Environment is also initialized to the **current or past state of Deployment in another Environment**. This ensures that every Environment is derived from a previously known state. This means it is not possible to create a new Environment for an Application until at least one Deployment has occurred. (The Deployment does not have to be successful.)


        The Type of the Environment must be already defined in the Organization.'
      parameters:
      - name: orgId
        in: path
        description: 'The Organization ID.


          '
        required: true
        schema:
          type: string
      - name: appId
        in: path
        description: 'The Application ID.


          '
        required: true
        schema:
          type: string
      requestBody:
        description: 'The ID, Name, Type, and Deployment the Environment will be derived from.


          '
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnvironmentDefinitionRequest'
            example:
              from_deploy_id: e80db1a327208c1a
              id: awesome-feature
              name: Awesome Feature Dev
              namespace: awesome-namespace
              type: development
      responses:
        '201':
          description: 'The new Environment.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvironmentResponse'
              example: {}
        '400':
          description: 'The supplied `id` is an invalid ID or a required field is missing.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
        '404':
          description: 'No Application with `id` in Organization.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
        '409':
          description: 'The supplied `id` clashes with an existing Environment.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
  /orgs/{orgId}/apps/{appId}/envs/{envId}:
    get:
      tags:
      - public
      summary: Get a specific Environment.
      operationId: getEnvironment
      description: Gets a specific Environment in an Application.
      parameters:
      - name: orgId
        in: path
        description: 'The Organization ID.


          '
        required: true
        schema:
          type: string
      - name: appId
        in: path
        description: 'The Application ID.


          '
        required: true
        schema:
          type: string
      - name: envId
        in: path
        description: 'The Environment ID.


          '
        required: true
        schema:
          type: string
      responses:
        '200':
          description: 'The Environment requested.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvironmentResponse'
              example: {}
        '404':
          description: 'No Environment with `id` in Application.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
    patch:
      tags:
      - public
      summary: Update a specific Environment.
      operationId: updateEnvironment
      description: Update a specific Environment in an Application.
      parameters:
      - name: orgId
        in: path
        description: 'The Organization ID.


          '
        required: true
        schema:
          type: string
      - name: appId
        in: path
        description: 'The Application ID.


          '
        required: true
        schema:
          type: string
      - name: envId
        in: path
        description: 'The Environment ID.


          '
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnvironmentBaseUpdateRequest'
      responses:
        '200':
          description: 'The updated Environment.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvironmentResponse'
              example: {}
        '404':
          description: 'No Environment with `id` in Application.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
    delete:
      tags:
      - public
      summary: Delete a specific Environment.
      operationId: deleteEnvironment
      description: 'Deletes a specific Environment in an Application.


        Deleting an Environment will also delete the Deployment history of the Environment.


        _Deletions are currently irreversible._'
      parameters:
      - name: orgId
        in: path
        description: 'The Organization ID.


          '
        required: true
        schema:
          type: string
      - name: appId
        in: path
        description: 'The Application ID.


          '
        required: true
        schema:
          type: string
      - name: envId
        in: path
        description: 'The Environment ID.


          '
        required: true
        schema:
          type: string
      responses:
        '204':
          description: 'Environment successfully deleted.


            '
        '202':
          description: 'Environment deletion is in progress.


            '
        '400':
          description: 'Attempt to delete the last Environment in an Application.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
        '404':
          description: 'No Environment with `envId` in Application.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
  /orgs/{orgId}/apps/{appId}/envs/{envId}/deploys:
    get:
      tags:
      - public
      summary: List Deployments in an Environment.
      description: List all of the Deployments that have been carried out in the current Environment. Deployments are returned with the newest first.
      operationId: listDeployments
      parameters:
      - name: orgId
        in: path
        description: 'The Organization ID.


          '
        required: true
        schema:
          type: string
      - name: appId
        in: path
        description: 'The Application ID.


          '
        required: true
        schema:
          type: string
      - name: envId
        in: path
        description: 'The Environment ID.


          '
        required: true
        schema:
          type: string
      - name: pipelineRunId
        in: query
        description: 'An optional filter by the Pipeline and Pipeline Run ID separated by a comma.

          '
        example: default,01234567-89ab-cdef-0123-456789abcdef
        schema:
          type: string
      responses:
        '200':
          description: 'A possibly empty list of Deployments.


            '
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/DeploymentResponse'
                type: array
              example:
              - {}
        '404':
          description: 'No Environment with `id` in Application.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
    post:
      tags:
      - public
      summary: Start a new Deployment.
      operationId: createDeployment
      description: 'At Humanitec, Deployments are defined as changes to the state of the Environment. The state can be changed by defining a set of desired changes to the current state via a Deployment Delta or by resetting the current state after a previous Deployment. (See Environment Rebase.) Both types of changes can be combined into a single Deployment during which the Delta is applied to the Rebased state.


        When specifying a Delta, a Delta ID must be used. That Delta must have been committed to the Delta store prior to the Deployment.


        A Set ID can also be defined in the deployment to force the state of the environment to a particular state. This will be ignored if the Delta is specified.


        **NOTE:**


        Directly setting a `set_id` in a deployment is not recommended as it will not record history of where the set came from. If the intention is to replicate an existing environment, use the environment rebasing approach described above.'
      parameters:
      - name: orgId
        in: path
        description: 'The Organization ID.


          '
        required: true
        schema:
          type: string
      - name: appId
        in: path
        description: 'The Application ID.


          '
        required: true
        schema:
          type: string
      - name: envId
        in: path
        description: 'The Environment ID.


          '
        required: true
        schema:
          type: string
      requestBody:
        description: 'The Delta describing the change to the Environment and a comment.


          '
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeploymentRequest'
            example:
              comment: Updated version of module-one to v0.3.1
              delta_id: df1ad41807b0390a9b0eaf8688e1f5baece9d764
      responses:
        '201':
          description: 'A description of the Deployment.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeploymentResponse'
        '400':
          description: 'Error because the Delta is non-existent or incompatible with the state of the Environment.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
        '404':
          description: 'No Environment with `id` in Application.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
        '409':
          description: 'There is already an active deployment in the Environment.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
  /orgs/{orgId}/apps/{appId}/envs/{envId}/deploys/{deployId}:
    get:
      tags:
      - public
      summary: Get a specific Deployment.
      description: Gets a specific Deployment in an Application and an Environment.
      operationId: getDeployment
      parameters:
      - name: orgId
        in: path
        description: 'The Organization ID.


          '
        required: true
        schema:
          type: string
      - name: appId
        in: path
        description: 'The Application ID.


          '
        required: true
        schema:
          type: string
      - name: envId
        in: path
        description: 'The Environment ID.


          '
        required: true
        schema:
          type: string
      - name: deployId
        in: path
        description: 'The Deployment ID.


          '
        required: true
        schema:
          type: string
      responses:
        '200':
          description: 'The Deployment requested.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeploymentResponse'
              example: {}
        '404':
          description: 'No Deployment with `deployId` in Application and Environment.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
  /orgs/{orgId}/apps/{appId}/envs/{envId}/deploys/{deployId}/errors:
    get:
      tags:
      - public
      summary: List errors that occurred in a Deployment.
      operationId: listDeploymentErrors
      parameters:
      - name: orgId
        in: path
        description: 'The Organization ID.


          '
        required: true
        schema:
          type: string
      - name: appId
        in: path
        description: 'The Application ID.


          '
        required: true
        schema:
          type: string
      - name: envId
        in: path
        description: 'The Environment ID.


          '
        required: true
        schema:
          type: string
      - name: deployId
        in: path
        description: 'The Deployment ID.


          '
        required: true
        schema:
          type: string
      responses:
        '200':
          description: 'A List of deployment errors, could be empty.


            '
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/DeploymentErrorResponse'
                type: array
              example:
              - code: CLD-001
                message: Incorrect credentials
                object_id: my-service
                scope: workload
  /orgs/{orgId}/apps/{appId}/envs/{envId}/from_deploy_id:
    put:
      tags:
      - public
      summary: Rebase to a different Deployment.
      operationId: rebaseEnvironment
      description: 'Rebasing an Environment means that the next Deployment to the Environment will be based on the Deployment specified in the rebase rather than the last one in the Environment. The Deployment to rebase to can either be current or a previous Deployment. The Deployment can be from any Environment of the same Application.


        _Running code will only be affected on the next Deployment to the Environment._


        Common use cases for rebasing an Environment:


        * _Rollback_: Rebasing to a previous Deployment in the current Environment and then Deploying without additional changes will execute a rollback to the previous Deployment state.


        * _Clone_: Rebasing to the current Deployment in a different Environment and then deploying without additional changes will clone all of the configuration of the other Environment into the current one. (NOTE: External Resources will not be cloned in the process - the current External Resources of the Environment will remain unchanged and will be used by the deployed Application in the Environment.'
      parameters:
      - name: orgId
        in: path
        description: 'The Organization ID.


          '
        required: true
        schema:
          type: string
      - name: appId
        in: path
        description: 'The Application ID.


          '
        required: true
        schema:
          type: string
      - name: envId
        in: path
        description: 'The Environment ID.


          '
        required: true
        schema:
          type: string
      requestBody:
        description: 'The Deployment ID to rebase to.


          '
        required: true
        content:
          application/json:
            schema:
              type: string
      responses:
        '204':
          description: 'Rebase successful.


            '
        '400':
          description: 'No Deployment with ID found in Application.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
        '404':
          description: 'No Environment with ID found in Application and Organization.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
  /orgs/{orgId}/env-types:
    get:
      tags:
      - public
      summary: List all Environment Types
      operationId: listEnvironmentTypes
      description: Lists all Environment Types in an Organization.
      parameters:
      - name: orgId
        in: path
        description: 'The Organization ID.


          '
        required: true
        schema:
          type: string
      responses:
        '200':
          description: 'A list of Environment Types.


            '
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/EnvironmentTypeResponse'
                type: array
    post:
      tags:
      - public
      summary: Add a new Environment Type
      operationId: createEnvironmentType
      description: Adds a new Environment Type to an Organization.
      parameters:
      - name: orgId
        in: path
        description: 'The Organization ID.


          '
        required: true
        schema:
          type: string
      requestBody:
        description: 'New Environment Type.


          '
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnvironmentTypeRequest'
      responses:
        '201':
          description: 'The Environment Type requested.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvironmentTypeResponse'
        '400':
          description: 'The supplied `id` is not a valid ID or a required field is missing.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
        '401':
          description: 'The Authorization header was not present or invalid.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
        '409':
          description: 'The supplied `id` clashes with an existing Environment Type.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
  /orgs/{orgId}/env-types/{envTypeId}:
    get:
      tags:
      - public
      summary: Get an Environment Type
      operationId: getEnvironmentType
      description: Gets a specific Environment Type within an Organization.
      parameters:
      - name: orgId
        in: path
        description: 'The Organization ID.


          '
        required: true
        schema:
          type: string
      - name: envTypeId
        in: path
        description: 'ID of the Environment Type.


          '
        required: true
        schema:
          type: string
      responses:
        '200':
          description: 'The Environment Type requested.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvironmentTypeResponse'
        '404':
          description: 'No Environment Type with `id` in Organization.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
    delete:
      tags:
      - public
      summary: Deletes an Environment Type
      operationId: deleteEnvironmentType
      description: Deletes a specific Environment Type from an Organization. If there are Environments with this Type in the Organization, the operation will fail.
      parameters:
      - name: orgId
        in: path
        description: 'The Organization ID.


          '
        required: true
        schema:
          type: string
      - name: envTypeId
        in: path
        description: 'ID of the Environment Type.


          '
        required: true
        schema:
          type: string
      responses:
        '204':
          description: 'The Environment Type requested.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvironmentTypeResponse'
        '401':
          description: 'The Authorization header was not present or invalid.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
        '404':
          description: 'No Environment Type with ID `envTypeId` in Organization.


            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HumanitecErrorResponse'
        '409':
          description: 'There are 1 or more Environments with this Type.


            To delete an Environment Type, there can be no Environments with that type in the Organization.'
          content:
            application/json:
              schema:
                items:
                  additionalProperties:
                    type: str

# --- truncated at 32 KB (488 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/humanitec/refs/heads/main/openapi/humanitec-public-api-openapi.yml