> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cura.inc/llms.txt
> Use this file to discover all available pages before exploring further.

# List open roles

> Open roles across the whole portfolio, each grouped with its company via `company_id`. For a single company's roles, use `GET /portfolio/:id/roles`.



## OpenAPI

````yaml /openapi.json get /roles
openapi: 3.1.0
info:
  title: Cura API
  version: 1.0.0
  description: >-
    Public, read-only access to a workspace's portfolio. Authenticate every
    request with your `cura_…` API key as a bearer token.
servers:
  - url: https://api.cura.inc
    description: Production
security:
  - ApiKey: []
paths:
  /roles:
    get:
      tags:
        - Roles
      summary: List open roles
      description: >-
        Open roles across the whole portfolio, each grouped with its company via
        `company_id`. For a single company's roles, use `GET
        /portfolio/:id/roles`.
      operationId: listRoles
      responses:
        '200':
          description: The portfolio's open roles.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Role'
                required:
                  - data
                additionalProperties: false
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Role:
      type: object
      properties:
        id:
          type: string
          description: The role's unique id.
        attributes:
          type: object
          properties:
            company_id:
              type: string
              description: Id of the portfolio company this role belongs to.
            name:
              type: string
              description: Job title of the open role.
            url:
              type: string
              description: Link to the role's job posting.
            description:
              anyOf:
                - type: string
                - type: 'null'
              description: Role description, if available.
            domain:
              type: string
              enum:
                - engineering
                - product
                - design
                - data
                - sales
                - marketing
                - customer-success
                - operations
                - finance
                - people
                - legal
                - other
              description: Functional domain classified from the title.
              example: engineering
            level:
              type: string
              enum:
                - executive
                - manager
                - ic
              description: Seniority level classified from the title.
              example: ic
            opened_at:
              anyOf:
                - type: string
                - type: 'null'
              description: >-
                When the role was first seen open (ISO 8601 timestamp), if
                known.
          required:
            - company_id
            - name
            - url
            - description
            - domain
            - level
            - opened_at
          additionalProperties: false
      required:
        - id
        - attributes
      additionalProperties: false
      description: An open role at a portfolio company.
    Error:
      type: object
      properties:
        error:
          type: string
          description: Human-readable error message.
      required:
        - error
      additionalProperties: false
      description: An error response.
  securitySchemes:
    ApiKey:
      type: http
      scheme: bearer
      description: >-
        Your workspace API key (`cura_…`), sent as `Authorization: Bearer
        <key>`.

````