Render Workflows (Beta) API

Create and manage [Render Workflows](https://render.com/docs/workflows) services. Workflows are in public beta.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

render-workflows-beta-api-openapi.yml Raw ↑
openapi: 3.0.2
info:
  title: Render Public Audit Logs Workflows (Beta) API
  description: Manage everything about your Render services
  version: 1.0.0
  contact:
    name: Render API
    url: https://community.render.com
    email: support@render.com
servers:
- url: https://api.render.com/v1
security:
- BearerAuth: []
tags:
- name: Workflows (Beta)
  description: 'Create and manage [Render Workflows](https://render.com/docs/workflows) services. Workflows are in public beta.

    '
paths:
  /workflows:
    get:
      summary: List workflows
      description: List workflows that match the provided filters. If no filters are provided, all workflows accessible by the authenticated user are returned.
      tags:
      - Workflows (Beta)
      operationId: listWorkflows
      parameters:
      - $ref: '#/components/parameters/nameParam'
      - $ref: '#/components/parameters/ownerIdParam'
      - $ref: '#/components/parameters/workflowIdParam'
      - $ref: '#/components/parameters/environmentIdParam'
      - $ref: '#/components/parameters/cursorParam'
      - $ref: '#/components/parameters/limitParam'
      responses:
        '200':
          description: List of workflows
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/workflowWithCursor'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '429':
          $ref: '#/components/responses/429RateLimit'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    post:
      summary: Create a workflow
      description: Create a new workflow service with the specified configuration.
      tags:
      - Workflows (Beta)
      operationId: createWorkflow
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - name
              - ownerId
              - region
              - runCommand
              - buildConfig
              properties:
                name:
                  type: string
                ownerId:
                  type: string
                buildConfig:
                  $ref: '#/components/schemas/workflowWithCursor/properties/workflow/properties/buildConfig'
                runCommand:
                  type: string
                  description: The command to run the workflow
                region:
                  $ref: '#/components/schemas/workflowWithCursor/properties/workflow/properties/region'
                autoDeployTrigger:
                  $ref: '#/components/schemas/workflowWithCursor/properties/workflow/properties/autoDeployTrigger'
      responses:
        '201':
          description: Workflow created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/workflowWithCursor/properties/workflow'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '429':
          $ref: '#/components/responses/429RateLimit'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /workflows/{workflowId}:
    parameters:
    - name: workflowId
      in: path
      description: The ID of the workflow
      schema:
        type: string
      required: true
    get:
      tags:
      - Workflows (Beta)
      summary: Retrieve workflow
      description: Retrieve the workflow service with the provided ID.
      operationId: getWorkflow
      responses:
        '200':
          description: Workflow details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/workflowWithCursor/properties/workflow'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '429':
          $ref: '#/components/responses/429RateLimit'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    patch:
      summary: Update workflow
      description: Update the workflow service with the provided ID.
      tags:
      - Workflows (Beta)
      operationId: updateWorkflow
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                buildConfig:
                  $ref: '#/components/schemas/workflowWithCursor/properties/workflow/properties/buildConfig'
                runCommand:
                  type: string
                  description: The command to run the workflow
                autoDeployTrigger:
                  $ref: '#/components/schemas/workflowWithCursor/properties/workflow/properties/autoDeployTrigger'
      responses:
        '200':
          description: Workflow updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/workflowWithCursor/properties/workflow'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '429':
          $ref: '#/components/responses/429RateLimit'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    delete:
      summary: Delete workflow
      description: Delete the workflow service with the provided ID.
      tags:
      - Workflows (Beta)
      operationId: deleteWorkflow
      responses:
        '204':
          description: Workflow deleted
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '429':
          $ref: '#/components/responses/429RateLimit'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /workflowversions:
    get:
      summary: List workflow versions
      description: List known versions of the workflow service with the provided ID.
      tags:
      - Workflows (Beta)
      operationId: listWorkflowVersions
      parameters:
      - $ref: '#/components/parameters/ownerIdParam'
      - $ref: '#/components/parameters/workflowIdParam'
      - $ref: '#/components/parameters/workflowVersionIdParam'
      - $ref: '#/components/parameters/cursorParam'
      - $ref: '#/components/parameters/limitParam'
      responses:
        '200':
          description: List of workflow versions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/workflowVersionWithCursor'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '429':
          $ref: '#/components/responses/429RateLimit'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    post:
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - workflowId
              properties:
                workflowId:
                  type: string
                commit:
                  type: string
      summary: Deploy a workflow version
      description: Creates and deploys a new version of a workflow.
      tags:
      - Workflows (Beta)
      operationId: createWorkflowVersion
      responses:
        '202':
          description: Workflow version created
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '429':
          $ref: '#/components/responses/429RateLimit'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /workflowversions/{workflowVersionId}:
    parameters:
    - name: workflowVersionId
      in: path
      description: The ID of the workflow version
      schema:
        type: string
      required: true
    get:
      summary: Retrieve workflow version
      description: Retrieve the specific workflow service version with the provided ID.
      tags:
      - Workflows (Beta)
      operationId: getWorkflowVersion
      responses:
        '200':
          description: Workflow version details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/workflowVersionWithCursor/properties/workflowVersion'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '429':
          $ref: '#/components/responses/429RateLimit'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
components:
  responses:
    429RateLimit:
      description: Rate limit has been surpassed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    503ServiceUnavailable:
      description: Server currently unavailable.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    403Forbidden:
      description: You do not have permissions for the requested resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    500InternalServerError:
      description: An unexpected server error has occurred.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    404NotFound:
      description: Unable to find the requested resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    401Unauthorized:
      description: Authorization information is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
  schemas:
    workflowWithCursor:
      type: object
      required:
      - workflow
      - cursor
      properties:
        workflow:
          type: object
          required:
          - id
          - name
          - createdAt
          - updatedAt
          - ownerId
          - region
          - runCommand
          - buildConfig
          properties:
            id:
              type: string
            name:
              type: string
            ownerId:
              type: string
            createdAt:
              type: string
              format: date-time
            updatedAt:
              type: string
              format: date-time
            buildConfig:
              type: object
              required:
              - buildCommand
              - repo
              - runtime
              properties:
                branch:
                  type: string
                  description: The branch to use for the build, if applicable.
                buildCommand:
                  type: string
                  description: The command to run to build the workflow.
                repo:
                  type: string
                  description: The repository URL to use for the build.
                rootDir:
                  type: string
                  description: The root directory of the repository to use for the build, if applicable.
                runtime:
                  type: string
                  enum:
                  - elixir
                  - go
                  - node
                  - python
                  - ruby
                  description: The runtime environment for the workflow (e.g., node, python, etc.).
            runCommand:
              type: string
              description: Command to run the workflow.
            region:
              type: string
              enum:
              - frankfurt
              - oregon
              - ohio
              - singapore
              - virginia
              default: oregon
              description: Defaults to "oregon"
            environmentId:
              type: string
            slug:
              type: string
            autoDeployTrigger:
              type: string
              enum:
              - commit
              - 'off'
              - checksPass
              default: commit
              description: Controls autodeploy behavior. "commit" deploys when a commit is pushed to the branch. "checksPass" waits for CI checks to pass before deploying. "off" disables autodeploy.
        cursor:
          $ref: '#/components/schemas/cursor'
    cursor:
      type: string
    workflowVersionWithCursor:
      type: object
      required:
      - workflowVersion
      - cursor
      properties:
        workflowVersion:
          type: object
          required:
          - id
          - workflowId
          - name
          - image
          - createdAt
          - updatedAt
          - status
          properties:
            id:
              type: string
            workflowId:
              type: string
            name:
              type: string
            createdAt:
              type: string
              format: date-time
            status:
              type: string
              enum:
              - created
              - building
              - registering
              - build_failed
              - registration_failed
              - ready
        cursor:
          $ref: '#/components/schemas/cursor'
    error:
      type: object
      properties:
        id:
          type: string
        message:
          type: string
  parameters:
    cursorParam:
      name: cursor
      in: query
      required: false
      description: The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination).
      schema:
        type: string
    workflowVersionIdParam:
      name: workflowVersionId
      in: query
      description: The IDs of the workflow versions to return resources for
      schema:
        type: array
        items:
          type: string
      style: form
      explode: false
      required: false
    environmentIdParam:
      name: environmentId
      in: query
      schema:
        type: array
        items:
          type: string
      style: form
      explode: false
      required: false
      description: Filter for resources that belong to an environment
    ownerIdParam:
      name: ownerId
      in: query
      description: The ID of the workspaces to return resources for
      schema:
        type: array
        items:
          type: string
      style: form
      explode: false
      required: false
    limitParam:
      name: limit
      in: query
      required: false
      description: The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination).
      schema:
        type: integer
        default: 20
        minimum: 1
        maximum: 100
        description: Defaults to 20
    nameParam:
      name: name
      in: query
      schema:
        type: array
        items:
          type: string
      style: form
      explode: false
      required: false
      description: Filter by name
    workflowIdParam:
      name: workflowID
      in: query
      description: The IDs of the workflows to return resources for
      schema:
        type: array
        items:
          type: string
      style: form
      explode: false
      required: false
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
x-readme:
  metrics-enabled: false