Encore Cloud Platform API

Encore Cloud is the optional hosted platform that takes an Encore application from `git push encore` to a running production deployment in the customer's own AWS or GCP account. The platform handles infrastructure provisioning (managed Postgres, SQS/SNS or Pub/Sub, S3/GCS buckets, IAM, secrets), CI/CD, preview environments per pull request, distributed tracing ingest, metrics, logs, and the developer dashboard at app.encore.cloud.

OpenAPI Specification

encore-platform-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Encore Cloud Platform API
  version: '2026-05'
  description: |
    Conceptual OpenAPI representing the Encore Cloud control surface — applications,
    environments, deployments, infrastructure resources, secrets, and trace queries —
    as observed through the `encore` CLI and the dashboard at app.encore.cloud. Encore
    does not publish a customer-facing REST schema, so this profile captures the
    documented platform shape rather than a hosted endpoint list.
  contact:
    name: Encore
    url: https://encore.cloud
servers:
- url: https://api.encore.cloud/v1
  description: Encore Cloud control plane (illustrative)
paths:
  /apps:
    get:
      operationId: listApps
      summary: List Encore Applications
      description: List Encore applications the caller has access to.
      responses:
        '200':
          description: List of Encore applications.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/App'
  /apps/{app_id}/environments:
    parameters:
    - name: app_id
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: listEnvironments
      summary: List Environments
      description: List environments (development, preview, staging, production) for an Encore application.
      responses:
        '200':
          description: List of environments.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Environment'
  /apps/{app_id}/environments/{env}/deployments:
    parameters:
    - name: app_id
      in: path
      required: true
      schema:
        type: string
    - name: env
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: listDeployments
      summary: List Deployments
      description: List deployments for an environment.
      responses:
        '200':
          description: Deployment history.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Deployment'
    post:
      operationId: createDeployment
      summary: Trigger Deployment
      description: Trigger a new deployment of a commit to the named environment (equivalent to `git push encore`).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - commit
              properties:
                commit:
                  type: string
                  description: Git commit SHA to deploy.
      responses:
        '202':
          description: Deployment accepted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Deployment'
  /apps/{app_id}/secrets:
    parameters:
    - name: app_id
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: listSecrets
      summary: List Secrets
      description: List secret names declared by the application (values are never returned).
      responses:
        '200':
          description: Secret metadata.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SecretMeta'
    put:
      operationId: setSecret
      summary: Set Secret Value
      description: Set or update a secret value for an environment.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - name
              - env
              - value
              properties:
                name:
                  type: string
                env:
                  type: string
                value:
                  type: string
      responses:
        '204':
          description: Secret stored.
  /apps/{app_id}/traces:
    parameters:
    - name: app_id
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: queryTraces
      summary: Query Distributed Traces
      description: Query distributed traces captured by Encore Cloud.
      parameters:
      - name: env
        in: query
        schema:
          type: string
      - name: limit
        in: query
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: Trace list.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Trace'
components:
  schemas:
    App:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        framework:
          type: string
          enum: [encore.ts, encore.go]
        repository:
          type: string
    Environment:
      type: object
      properties:
        name:
          type: string
        type:
          type: string
          enum: [development, preview, staging, production]
        cloud:
          type: string
          enum: [encore, aws, gcp, self-hosted]
        region:
          type: string
    Deployment:
      type: object
      properties:
        id:
          type: string
        commit:
          type: string
        status:
          type: string
          enum: [queued, building, deploying, succeeded, failed]
        created_at:
          type: string
          format: date-time
    SecretMeta:
      type: object
      properties:
        name:
          type: string
        environments:
          type: array
          items:
            type: string
    Trace:
      type: object
      properties:
        trace_id:
          type: string
        root_span:
          type: string
        endpoint:
          type: string
        status:
          type: string
        duration_ms:
          type: number
        started_at:
          type: string
          format: date-time