Render Workspaces API

The `Workspaces` endpoints supply more information about the workspaces that your API key has access to. This category was previously called `Owners`, as reflected by endpoint paths.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

render-workspaces-api-openapi.yml Raw ↑
openapi: 3.0.2
info:
  title: Render Public Audit Logs Workspaces 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: Workspaces
  description: The `Workspaces` endpoints supply more information about the workspaces that your API key has access to. This category was previously called `Owners`, as reflected by endpoint paths.
paths:
  /owners/{ownerId}/members/{userId}:
    parameters:
    - $ref: '#/components/parameters/ownerIdPathParam'
    - $ref: '#/components/parameters/userIdPathParam'
    patch:
      summary: Update workspace member role
      description: 'Update the role of an existing workspace member.

        '
      operationId: update-workspace-member
      tags:
      - Workspaces
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - role
              properties:
                role:
                  $ref: '#/components/schemas/teamMemberRole'
            example:
              role: ADMIN
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/teamMember'
              example:
                userId: usr-0r1b2c3d4e5f6g7h8i9
                name: Jane Doe
                email: jane.doe@example.com
                status: active
                role: ADMIN
                mfaEnabled: true
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '409':
          $ref: '#/components/responses/409Conflict'
        '429':
          $ref: '#/components/responses/429RateLimit'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    delete:
      summary: Remove workspace member
      description: 'Remove a user from the specified workspace.

        '
      operationId: remove-workspace-member
      tags:
      - Workspaces
      responses:
        '204':
          description: No Content
        '400':
          $ref: '#/components/responses/400BadRequest'
        '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'
  /owners:
    get:
      summary: List workspaces
      description: 'List the workspaces that your API key has access to, optionally filtered by name or owner email address.

        '
      operationId: list-owners
      tags:
      - Workspaces
      parameters:
      - name: name
        description: Only return workspaces with one of the provided names. Only exact matches are returned.
        in: query
        schema:
          type: array
          items:
            type: string
      - name: email
        description: Only return workspaces owned by one of the provided email addresses.
        in: query
        schema:
          type: array
          items:
            type: string
      - $ref: '#/components/parameters/cursorParam'
      - $ref: '#/components/parameters/limitParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ownerWithCursor'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '406':
          $ref: '#/components/responses/406NotAcceptable'
        '429':
          $ref: '#/components/responses/429RateLimit'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /owners/{ownerId}:
    parameters:
    - name: ownerId
      in: path
      required: true
      description: The ID of the user or team
      schema:
        type: string
    get:
      summary: Retrieve workspace
      description: 'Retrieve the workspace with the provided ID.


        Workspace IDs start with `tea-`. If you provide a user ID (starts with `own-`), this endpoint returns the user''s default workspace.

        '
      operationId: retrieve-owner
      tags:
      - Workspaces
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/owner'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
        '406':
          $ref: '#/components/responses/406NotAcceptable'
        '410':
          $ref: '#/components/responses/410Gone'
        '429':
          $ref: '#/components/responses/429RateLimit'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /owners/{ownerId}/members:
    parameters:
    - name: ownerId
      in: path
      required: true
      description: The ID of the team
      schema:
        type: string
    get:
      summary: List workspace members
      description: 'Retrieves the list of users belonging to the workspace with the provided ID.

        '
      operationId: retrieve-owner-members
      tags:
      - Workspaces
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/teamMembers'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '404':
          $ref: '#/components/responses/404NotFound'
        '406':
          $ref: '#/components/responses/406NotAcceptable'
        '410':
          $ref: '#/components/responses/410Gone'
        '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'
    409Conflict:
      description: The current state of the resource conflicts with this request.
      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'
    406NotAcceptable:
      description: Unable to generate preferred media types as specified by Accept request header.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    400BadRequest:
      description: The request could not be understood by the server.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    401Unauthorized:
      description: Authorization information is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    410Gone:
      description: The requested resource is no longer available.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
  schemas:
    teamMemberRole:
      type: string
      description: The member's workspace role. Values are always returned in uppercase.
      enum:
      - ADMIN
      - DEVELOPER
      - WORKSPACE_CONTRIBUTOR
      - WORKSPACE_BILLING
      - WORKSPACE_VIEWER
      example: DEVELOPER
    owner:
      type: object
      required:
      - id
      - name
      - email
      - type
      properties:
        id:
          type: string
        name:
          type: string
        email:
          type: string
        ipAllowList:
          type: array
          items:
            $ref: '#/components/schemas/cidrBlockAndDescription'
        twoFactorAuthEnabled:
          type: boolean
          description: Whether two-factor authentication is enabled for the owner. Only present if `type` is `user`.
        type:
          type: string
          enum:
          - user
          - team
    ownerWithCursor:
      type: object
      properties:
        owner:
          $ref: '#/components/schemas/owner'
        cursor:
          $ref: '#/components/schemas/cursor'
    cursor:
      type: string
    teamMembers:
      type: array
      items:
        $ref: '#/components/schemas/teamMember'
    cidrBlockAndDescription:
      type: object
      required:
      - cidrBlock
      - description
      properties:
        cidrBlock:
          type: string
        description:
          description: User-provided description of the CIDR block
          type: string
    teamMember:
      type: object
      required:
      - userId
      - name
      - email
      - status
      - role
      - mfaEnabled
      properties:
        userId:
          type: string
        name:
          type: string
        email:
          type: string
        status:
          type: string
          enum:
          - active
          - inactive
        role:
          $ref: '#/components/schemas/teamMemberRole'
        mfaEnabled:
          type: boolean
    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
    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
    userIdPathParam:
      name: userId
      in: path
      required: true
      description: The ID of the user (Render object ID with a `usr-` prefix).
      schema:
        type: string
        pattern: ^usr-[0-9a-v]{20}$
        example: usr-5k6m7n8p9q0r1s2t3u4v
    ownerIdPathParam:
      name: ownerId
      in: path
      description: The ID of the workspace to return resources for
      schema:
        type: string
      required: true
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
x-readme:
  metrics-enabled: false