Codesignal Organization API

The Organization API from Codesignal — 5 operation(s) for organization.

OpenAPI Specification

codesignal-organization-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Codesignal Learn Public Organization API
  version: v1.0.0
  description: Public API for Codesignal Learn
security:
- oauth2:
  - openid
tags:
- name: Organization
paths:
  /api/v1/organizations/members:
    get:
      summary: Get organization members
      description: Returns paginated members for your organization
      tags:
      - Organization
      security:
      - oauth2: []
      parameters:
      - schema:
          type: integer
          minimum: 0
          exclusiveMinimum: true
          default: 1
        required: false
        name: page
        in: query
      - schema:
          type: integer
          minimum: 0
          exclusiveMinimum: true
          maximum: 100
          default: 20
        required: false
        name: per_page
        in: query
      - schema:
          type: string
          enum:
          - email
          default: email
        required: false
        name: sort_by
        in: query
      - schema:
          type: string
          enum:
          - asc
          - desc
          default: asc
        required: false
        name: sort_order
        in: query
      - schema:
          type: string
        required: false
        name: search
        in: query
      - schema:
          type: string
        required: false
        name: role
        in: query
      responses:
        '200':
          description: Paginated organization members.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        codesignalId:
                          type: string
                          nullable: true
                        email:
                          type: string
                        name:
                          type: string
                        role:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                          required:
                          - id
                          - name
                        lastActivity:
                          type: string
                          nullable: true
                        teams:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                            required:
                            - id
                            - name
                      required:
                      - id
                      - codesignalId
                      - email
                      - name
                      - role
                      - lastActivity
                      - teams
                  pagination:
                    type: object
                    properties:
                      page:
                        type: number
                      per_page:
                        type: number
                      total:
                        type: number
                      errors:
                        type: number
                    required:
                    - page
                    - per_page
                    - total
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        status:
                          type: number
                        message:
                          type: string
                        data:
                          type: object
                          additionalProperties:
                            nullable: true
                      required:
                      - status
                      - message
                required:
                - data
                - pagination
        '400':
          $ref: '#/components/schemas/BadRequest'
        '401':
          $ref: '#/components/schemas/Unauthorized'
  /api/v1/organizations/members/{memberId}:
    get:
      summary: Get member by ID
      description: Returns details for a specific organization member.
      tags:
      - Organization
      security:
      - oauth2: []
      parameters:
      - schema:
          type: string
        required: true
        name: memberId
        in: path
      responses:
        '200':
          description: Member details.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  codesignalId:
                    type: string
                    nullable: true
                  email:
                    type: string
                  name:
                    type: string
                  role:
                    type: object
                    properties:
                      id:
                        type: string
                      name:
                        type: string
                    required:
                    - id
                    - name
                  lastActivity:
                    type: string
                    nullable: true
                  teams:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                      required:
                      - id
                      - name
                required:
                - id
                - codesignalId
                - email
                - name
                - role
                - lastActivity
                - teams
        '400':
          $ref: '#/components/schemas/BadRequest'
        '401':
          $ref: '#/components/schemas/Unauthorized'
  /api/v1/organizations/members/skill-sets:
    get:
      summary: Get skill sets for organization members
      description: Returns paginated skill sets for specified organization members.
      tags:
      - Organization
      security:
      - oauth2: []
      parameters:
      - schema:
          type: integer
          minimum: 0
          exclusiveMinimum: true
          default: 1
        required: false
        name: page
        in: query
      - schema:
          type: integer
          minimum: 0
          exclusiveMinimum: true
          maximum: 100
          default: 20
        required: false
        name: per_page
        in: query
      - schema:
          anyOf:
          - type: string
          - type: array
            items:
              type: string
          default: []
        required: false
        name: member_id
        in: query
      responses:
        '200':
          description: Paginated skill sets for organization members.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        skillSets:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                              name:
                                type: string
                              level:
                                type: string
                                nullable: true
                                enum:
                                - developing
                                - intermediate
                                - advanced
                                - expert
                              type:
                                type: string
                                enum:
                                - hard
                                - soft
                              imageUrl:
                                type: string
                                nullable: true
                            required:
                            - id
                            - name
                            - level
                            - type
                            - imageUrl
                      required:
                      - id
                      - skillSets
                  pagination:
                    type: object
                    properties:
                      page:
                        type: number
                      per_page:
                        type: number
                      total:
                        type: number
                      errors:
                        type: number
                    required:
                    - page
                    - per_page
                    - total
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        status:
                          type: number
                        message:
                          type: string
                        data:
                          type: object
                          additionalProperties:
                            nullable: true
                      required:
                      - status
                      - message
                required:
                - data
                - pagination
        '400':
          $ref: '#/components/schemas/BadRequest'
        '401':
          $ref: '#/components/schemas/Unauthorized'
  /api/v1/organizations/members/progress:
    get:
      summary: Get progress for organization members
      description: Returns paginated progress for specified organization members
      tags:
      - Organization
      security:
      - oauth2: []
      parameters:
      - schema:
          type: integer
          minimum: 0
          exclusiveMinimum: true
          default: 1
        required: false
        name: page
        in: query
      - schema:
          type: integer
          minimum: 0
          exclusiveMinimum: true
          maximum: 100
          default: 20
        required: false
        name: per_page
        in: query
      - schema:
          type: string
          enum:
          - email
          default: email
        required: false
        name: sort_by
        in: query
      - schema:
          type: string
          enum:
          - asc
          - desc
          default: asc
        required: false
        name: sort_order
        in: query
      - schema:
          anyOf:
          - type: string
          - type: array
            items:
              type: string
        required: false
        name: id
        in: query
      responses:
        '200':
          description: Paginated progress for organization members.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        email:
                          type: string
                        paths:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: number
                              title:
                                type: string
                              completionRatio:
                                type: number
                              completed:
                                type: boolean
                              completedAt:
                                type: string
                                nullable: true
                              certificateUrl:
                                type: string
                                nullable: true
                              job:
                                type: object
                                properties:
                                  id:
                                    type: string
                                  name:
                                    type: string
                                required:
                                - id
                                - name
                              courses:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    id:
                                      type: number
                                    title:
                                      type: string
                                    completionRatio:
                                      type: number
                                    completed:
                                      type: boolean
                                    completedAt:
                                      type: string
                                      nullable: true
                                    certificateUrl:
                                      type: string
                                      nullable: true
                                  required:
                                  - id
                                  - title
                                  - completionRatio
                                  - completed
                                  - completedAt
                                  - certificateUrl
                            required:
                            - id
                            - title
                            - completionRatio
                            - completed
                            - completedAt
                            - certificateUrl
                            - job
                            - courses
                      required:
                      - id
                      - email
                      - paths
                  pagination:
                    type: object
                    properties:
                      page:
                        type: number
                      per_page:
                        type: number
                      total:
                        type: number
                      errors:
                        type: number
                    required:
                    - page
                    - per_page
                    - total
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        status:
                          type: number
                        message:
                          type: string
                        data:
                          type: object
                          additionalProperties:
                            nullable: true
                      required:
                      - status
                      - message
                required:
                - data
                - pagination
        '400':
          $ref: '#/components/schemas/BadRequest'
        '401':
          $ref: '#/components/schemas/Unauthorized'
  /api/v1/organizations/members/{memberId}/progress:
    get:
      summary: Get progress for member by ID
      description: Returns progress for a specific organization member.
      tags:
      - Organization
      security:
      - oauth2: []
      parameters:
      - schema:
          type: string
        required: true
        name: memberId
        in: path
      responses:
        '200':
          description: Member progress.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  email:
                    type: string
                  paths:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: number
                        title:
                          type: string
                        completionRatio:
                          type: number
                        completed:
                          type: boolean
                        completedAt:
                          type: string
                          nullable: true
                        certificateUrl:
                          type: string
                          nullable: true
                        job:
                          type: object
                          properties:
                            id:
                              type: string
                            name:
                              type: string
                          required:
                          - id
                          - name
                        courses:
                          type: array
                          items:
                            type: object
                            properties:
                              id:
                                type: number
                              title:
                                type: string
                              completionRatio:
                                type: number
                              completed:
                                type: boolean
                              completedAt:
                                type: string
                                nullable: true
                              certificateUrl:
                                type: string
                                nullable: true
                            required:
                            - id
                            - title
                            - completionRatio
                            - completed
                            - completedAt
                            - certificateUrl
                      required:
                      - id
                      - title
                      - completionRatio
                      - completed
                      - completedAt
                      - certificateUrl
                      - job
                      - courses
                required:
                - id
                - email
                - paths
        '400':
          $ref: '#/components/schemas/BadRequest'
        '401':
          $ref: '#/components/schemas/Unauthorized'
components:
  schemas:
    Unauthorized:
      description: Unauthorized
    BadRequest:
      description: Bad request
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://codesignal.com/learn/api/v1/oauth/token
          scopes:
            openid: basic scope