Cloud Academy Organizations API

The Organizations API from Cloud Academy — 5 operation(s) for organizations.

Operations 10

DELETE /v1/organizations/accounts/members/ Remove members from the company #
GET /v1/organizations/accounts/teams/ List all teams #
POST /v1/organizations/accounts/teams/ Create a new team #
GET /v1/organizations/accounts/teams/{id}/ Get details of a team #
PATCH /v1/organizations/accounts/teams/{id}/ Update a team #
DELETE /v1/organizations/accounts/teams/{id}/ Delete a team #
GET /v1/organizations/accounts/teams/{id}/members/ List members of a team #
POST /v1/organizations/accounts/teams/{id}/members/ Add members to a team #
DELETE /v1/organizations/accounts/teams/{id}/members/ Remove members from a team #
GET /v1/organizations/accounts/teams/{id}/subteams/ List all subteams of a team #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cloud-academy-organizations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cloud-academy-organizations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: QA Learning Management System Organizations API
  description: "\n## Keys for QA API\n\nQA uses API keys to authenticate calls to its API.\n\nThe Authentication used is OAuth2 with client credential flow; Note that the SSL channel securely encrypts your keys pair.\n\n## How to find or generate Your API Key\n\nFor integrating with the QA API, you need to generate an API key pairs. Enterprise members with Admin permissions can generate and view their own API keys on the settings area of their Company Account [here](https://platform.qa.com/organizations/settings/api/).\n\nNote that each admin comes with his distinct API keys pair.\n\n## Revoking and Regenerating an API keys pair\n\nAt any time, an admin can generate new API keys pairs; by going through this step, the previous keys pair is revoked.\n\n## How to authenticate API calls using the keys pair\n\nIn order to authenticate API calls each request needs to provide a valid access token. \n\nTo generate a token, a dedicated endpoint exists:\n\n__https://platform.qa.com/oauth2/token/__\n\nThe token generation endpoint accepts a POST call and works using Basic Authentication where the user and the password to be provided are the API keys:\n\nusername is the CLIENT_ID\npassword is the CLIENT_SECRET\n\nIn addition to requiring the CLIENT_ID and CLIENT_SECRET for the authorization header, the API also requires the content-type to be set to 'application/x-www-form-urlencoded' and the body must contain 'grant_type=client_credentials'.\n\nThis is an example of the token generation in cURL:\n\n```bash\ncurl 'https://platform.qa.com/oauth2/token/' \n  -H 'accept: application/json'\n  -H 'authorization: Basic [YOUR_CLIENT_ID:YOUR_CLIENT_SECRET]'\n  -H 'content-type: application/x-www-form-urlencoded'\n  --data-raw 'grant_type=client_credentials'\n```\n\nThe token has a limited duration of 10 hours, so it could be cached to be reused and renewed when it expires, but it is also perfectly fine to generate a new one before each API call.\n\n## Get Help\nIn case of issues, more info can be found in the following [article](https://support.cloudacademy.com/hc/en-us/articles/360040446031-Cloud-Academy-API)\n"
  version: v1
servers:
- url: https://platform.qa.com/restapi
security:
- oauth2: []
tags:
- name: Organizations
paths:
  /v1/organizations/accounts/members/:
    parameters: []
    delete:
      operationId: v1_organizations_accounts_members
      summary: Remove members from the company
      description: '

        ## Description


        This endpoint removes members from a company in a single operation.

        Given a list of emails, it removes all members from the company.


        In case of errors, like wrong email or already deleted members, the request is discarded and no member is deleted.

        We suggest to use maximum 25 users per request.

        '
      responses:
        '400':
          description: Bad request, incorrect email address or the user does not belong to this company.
          content:
            body:
              example:
                errors:
                - detail: 'invalid-member-deletion: user@email.com'
                  source:
                    pointer: /data
                  status: '400'
        '401':
          description: Executing the request without credentials.
          content:
            body:
              example:
                errors:
                - detail: Authentication credentials were not provided.
                  source:
                    pointer: /data
                  status: '401'
        '500':
          description: Internal server error.
          content:
            body:
              example:
                errors:
                - detail: Internal server error.
                  source:
                    pointer: /data
                  status: '500'
        '503':
          description: Service unavailable.
          content:
            body:
              example:
                errors:
                - detail: The service is temporary unavailable. Please try again later.
                  source:
                    pointer: /data
                  status: '503'
        '409':
          description: Missing JSON-API type attribute.
          content:
            body:
              example:
                errors:
                - detail: The resource object's type (None) is not the type that constitute the collection represented by the endpoint (bulk_member_remove).
                  source:
                    pointer: /data
                  status: '409'
        '204':
          description: Members have been removed from the company.
      tags:
      - Organizations
      requestBody:
        content:
          application/vnd.api+json:
            schema:
              title: body
              required:
              - data
              type: object
              properties:
                data:
                  title: data
                  required:
                  - attributes
                  - type
                  type: object
                  properties:
                    attributes:
                      title: attributes
                      required:
                      - email_list
                      type: object
                      properties:
                        email_list:
                          title: email_list
                          type: array
                          items:
                            type: string
                            format: email
                    type:
                      title: type
                      type: string
                      example: bulk_member_remove
        required: true
  /v1/organizations/accounts/teams/:
    parameters: []
    get:
      operationId: v1_organizations_accounts_teams_list
      summary: List all teams
      description: '

        ## Description


        This endpoint returns a list that contains all teams of the company.



        ## Sorting

        It''s possible to sort on the following fields:


        * name


        By default results are ordered in ascending order, for descending descending put a ''-'' before the field.

        '
      parameters:
      - name: sort
        in: query
        description: Which field to use when ordering the results.
        required: false
        schema:
          type: string
      - name: page[number]
        in: query
        description: A page number within the paginated result set.
        required: false
        schema:
          type: integer
      - name: page[size]
        in: query
        description: Number of results to return per page.
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: ''
          content:
            application/vnd.api+json:
              schema:
                title: body
                required:
                - data
                type: object
                properties:
                  data:
                    title: data
                    type: array
                    items:
                      required:
                      - attributes
                      - type
                      - id
                      type: object
                      properties:
                        attributes:
                          title: attributes
                          required: []
                          type: object
                          properties:
                            creation_date:
                              title: creation_date
                              type: string
                              format: date-time
                            description:
                              title: description
                              type: string
                            name:
                              title: name
                              type: string
                        id:
                          title: id
                          type: string
                        links:
                          title: links
                          type: object
                          properties:
                            self:
                              title: schema
                              type: string
                              format: uri
                        type:
                          title: type
                          type: string
                          example: team
                  links:
                    title: links
                    type: object
                    properties:
                      first:
                        title: first
                        type: string
                        format: uri
                      last:
                        title: last
                        type: string
                        format: uri
                      next:
                        title: next
                        type: string
                        format: uri
                      prev:
                        title: prev
                        type: string
                        format: uri
                  meta:
                    title: meta
                    type: object
                    properties:
                      pagination:
                        title: pagination
                        type: object
                        properties:
                          count:
                            title: count
                            type: integer
                            format: int32
                          page:
                            title: page
                            type: integer
                            format: int32
                          pages:
                            title: pages
                            type: integer
                            format: int32
        '401':
          description: Executing the request without credentials.
          content:
            body:
              example:
                errors:
                - detail: Authentication credentials were not provided.
                  source:
                    pointer: /data
                  status: '401'
        '500':
          description: Internal server error.
          content:
            body:
              example:
                errors:
                - detail: Internal server error.
                  source:
                    pointer: /data
                  status: '500'
        '503':
          description: Service unavailable.
          content:
            body:
              example:
                errors:
                - detail: The service is temporary unavailable. Please try again later.
                  source:
                    pointer: /data
                  status: '503'
      tags:
      - Organizations
    post:
      operationId: v1_organizations_accounts_teams_create
      summary: Create a new team
      description: '

        ## Description


        This endpoint creates a new team inside the company.

        '
      responses:
        '400':
          description: Bad request, invalid or missing data
          content:
            body:
              example:
                errors:
                - detail: '{error-message}'
                  source:
                    pointer: /data
                  status: '400'
                - detail: '{error-message}'
                  source:
                    pointer: /data/attributes/name
                  status: '400'
        '401':
          description: Executing the request without credentials.
          content:
            body:
              example:
                errors:
                - detail: Authentication credentials were not provided.
                  source:
                    pointer: /data
                  status: '401'
        '500':
          description: Internal server error.
          content:
            body:
              example:
                errors:
                - detail: Internal server error.
                  source:
                    pointer: /data
                  status: '500'
        '409':
          description: Missing JSON-API type attribute.
          content:
            body:
              example:
                errors:
                - detail: The resource object's type (None) is not the type that constitute the collection represented by the endpoint (team).
                  source:
                    pointer: /data
                  status: '409'
        '201':
          description: Team created
          content:
            application/vnd.api+json:
              schema:
                title: body
                required:
                - data
                type: object
                properties:
                  data:
                    title: data
                    required:
                    - attributes
                    - type
                    - id
                    type: object
                    properties:
                      attributes:
                        title: attributes
                        required: []
                        type: object
                        properties:
                          creation_date:
                            title: creation_date
                            type: string
                            format: date-time
                          description:
                            title: description
                            type: string
                          name:
                            title: name
                            type: string
                      id:
                        title: id
                        type: string
                      links:
                        title: links
                        type: object
                        properties:
                          self:
                            title: schema
                            type: string
                            format: uri
                      type:
                        title: type
                        type: string
                        example: team
        '503':
          description: Service unavailable.
          content:
            body:
              example:
                errors:
                - detail: The service is temporary unavailable. Please try again later.
                  source:
                    pointer: /data
                  status: '503'
      tags:
      - Organizations
      requestBody:
        content:
          application/vnd.api+json:
            schema:
              title: body
              required:
              - data
              type: object
              properties:
                data:
                  title: data
                  required:
                  - attributes
                  - type
                  type: object
                  properties:
                    attributes:
                      title: attributes
                      required:
                      - name
                      type: object
                      properties:
                        description:
                          title: description
                          type: string
                        name:
                          title: name
                          type: string
                    links:
                      title: links
                      type: object
                      properties:
                        self:
                          title: schema
                          type: string
                          format: uri
                    type:
                      title: type
                      type: string
                      example: team
        required: true
  /v1/organizations/accounts/teams/{id}/:
    parameters:
    - name: id
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: v1_organizations_accounts_teams_read
      summary: Get details of a team
      description: '

        ## Description


        This endpoint returns the detail of a specific team.

        '
      responses:
        '200':
          description: ''
          content:
            application/vnd.api+json:
              schema:
                title: body
                required:
                - data
                type: object
                properties:
                  data:
                    title: data
                    required:
                    - attributes
                    - type
                    - id
                    type: object
                    properties:
                      attributes:
                        title: attributes
                        required: []
                        type: object
                        properties:
                          creation_date:
                            title: creation_date
                            type: string
                            format: date-time
                          description:
                            title: description
                            type: string
                          name:
                            title: name
                            type: string
                      id:
                        title: id
                        type: string
                      links:
                        title: links
                        type: object
                        properties:
                          self:
                            title: schema
                            type: string
                            format: uri
                      type:
                        title: type
                        type: string
                        example: team
        '401':
          description: Executing the request without credentials.
          content:
            body:
              example:
                errors:
                - detail: Authentication credentials were not provided.
                  source:
                    pointer: /data
                  status: '401'
        '404':
          description: Team not found
          content:
            body:
              example:
                errors:
                - detail: Not found.
                  source:
                    pointer: /data
                  status: '404'
        '500':
          description: Internal server error.
          content:
            body:
              example:
                errors:
                - detail: Internal server error.
                  source:
                    pointer: /data
                  status: '500'
        '503':
          description: Service unavailable.
          content:
            body:
              example:
                errors:
                - detail: The service is temporary unavailable. Please try again later.
                  source:
                    pointer: /data
                  status: '503'
      tags:
      - Organizations
    patch:
      operationId: v1_organizations_accounts_teams_partial_update
      summary: Update a team
      description: '

        ## Description


        This endpoint updates the detail of a specific team.

        '
      responses:
        '400':
          description: Bad request, invalid or missing data
          content:
            body:
              example:
                errors:
                - detail: '{error-message}'
                  source:
                    pointer: /data
                  status: '400'
                - detail: '{error-message}'
                  source:
                    pointer: /data/attributes/name
                  status: '400'
        '401':
          description: Executing the request without credentials.
          content:
            body:
              example:
                errors:
                - detail: Authentication credentials were not provided.
                  source:
                    pointer: /data
                  status: '401'
        '404':
          description: Team not found
          content:
            body:
              example:
                errors:
                - detail: 'Invalid team_id id: {id} - '
                  source:
                    pointer: /data
                  status: '404'
        '503':
          description: Service unavailable.
          content:
            body:
              example:
                errors:
                - detail: The service is temporary unavailable. Please try again later.
                  source:
                    pointer: /data
                  status: '503'
        '200':
          description: ''
          content:
            application/vnd.api+json:
              schema:
                title: body
                required:
                - data
                type: object
                properties:
                  data:
                    title: data
                    required:
                    - attributes
                    - type
                    - id
                    type: object
                    properties:
                      attributes:
                        title: attributes
                        required: []
                        type: object
                        properties:
                          creation_date:
                            title: creation_date
                            type: string
                            format: date-time
                          description:
                            title: description
                            type: string
                          name:
                            title: name
                            type: string
                      id:
                        title: id
                        type: string
                      links:
                        title: links
                        type: object
                        properties:
                          self:
                            title: schema
                            type: string
                            format: uri
                      type:
                        title: type
                        type: string
                        example: team
        '409':
          description: Missing JSON-API type attribute.
          content:
            body:
              example:
                errors:
                - detail: The resource object's type (None) is not the type that constitute the collection represented by the endpoint (team).
                  source:
                    pointer: /data
                  status: '409'
        '500':
          description: Internal server error.
          content:
            body:
              example:
                errors:
                - detail: Internal server error.
                  source:
                    pointer: /data
                  status: '500'
      tags:
      - Organizations
      requestBody:
        content:
          application/vnd.api+json:
            schema:
              title: body
              required:
              - data
              type: object
              properties:
                data:
                  title: data
                  required:
                  - attributes
                  - type
                  - id
                  type: object
                  properties:
                    attributes:
                      title: attributes
                      required:
                      - name
                      - description
                      type: object
                      properties:
                        description:
                          title: description
                          type: string
                        name:
                          title: name
                          type: string
                    id:
                      title: id
                      type: string
                    type:
                      title: type
                      type: string
                      example: team
        required: true
    delete:
      operationId: v1_organizations_accounts_teams_delete
      summary: Delete a team
      description: '

        ## Description


        This endpoint deletes a specific team from the company.

        '
      responses:
        '204':
          description: Team has been removed from the company.
        '503':
          description: Service unavailable.
          content:
            body:
              example:
                errors:
                - detail: The service is temporary unavailable. Please try again later.
                  source:
                    pointer: /data
                  status: '503'
        '404':
          description: Team not found
          content:
            body:
              example:
                errors:
                - detail: 'Invalid team_id id: {id} - '
                  source:
                    pointer: /data
                  status: '404'
        '500':
          description: Internal server error.
          content:
            body:
              example:
                errors:
                - detail: Internal server error.
                  source:
                    pointer: /data
                  status: '500'
        '401':
          description: Executing the request without credentials.
          content:
            body:
              example:
                errors:
                - detail: Authentication credentials were not provided.
                  source:
                    pointer: /data
                  status: '401'
      tags:
      - Organizations
  /v1/organizations/accounts/teams/{id}/members/:
    parameters:
    - name: id
      in: path
      required: true
      schema:
        type: string
    get:
      operationId: v1_organizations_accounts_teams_members_read
      summary: List members of a team
      description: '

        ## Description


        This endpoint returns the list of members of the specified team.


        ## Sorting

        It''s possible to sort on the following fields:


        * role

        * first_name

        * last_name

        * email


        By default results are ordered in ascending order, for descending descending put a ''-'' before the field.

        '
      parameters:
      - name: sort
        in: query
        description: Which field to use when ordering the results.
        required: false
        schema:
          type: string
      - name: page[number]
        in: query
        description: A page number within the paginated result set.
        required: false
        schema:
          type: integer
      - name: page[size]
        in: query
        description: Number of results to return per page.
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: ''
          content:
            application/vnd.api+json:
              schema:
                title: body
                required:
                - data
                type: object
                properties:
                  data:
                    title: data
                    type: array
                    items:
                      required:
                      - attributes
                      - type
                      - id
                      type: object
                      properties:
                        attributes:
                          title: attributes
                          required: []
                          type: object
                          properties:
                            email:
                              title: email
                              type: string
                              format: email
                            first_name:
                              title: first_name
                              type: string
                            job_role:
                              title: job_role
                              type: string
                            last_name:
                              title: last_name
                              type: string
                            role:
                              title: role
                              type: string
                            user_id:
                              title: user_id
                              type: string
                        id:
                          title: id
                          type: string
                        type:
                          title: type
                          type: string
                          example: team_membership
                  links:
                    title: links
                    type: object
                    properties:
                      first:
                        title: first
                        type: string
                        format: uri
                      last:
                        title: last
                        type: string
                        format: uri
                      next:
                        title: next
                        type: string
                        format: uri
                      prev:
                        title: prev
                        type: string
                        format: uri
                  meta:
                    title: meta
                    type: object
                    properties:
                      pagination:
                        title: pagination
                        type: object
                        properties:
                          count:
                            title: count
                            type: integer
                            format: int32
                          page:
                            title: page
                            type: integer
                            format: int32
                          pages:
                            title: pages
                            type: integer
                            format: int32
        '401':
          description: Executing the request without credentials.
          content:
            body:
              example:
                errors:
                - detail: Authentication credentials were not provided.
                  source:
                    pointer: /data
                  status: '401'
        '404':
          description: Team not found
          content:
            body:
              example:
                errors:
                - detail: 'Invalid team_id id: {id} - '
                  source:
                    pointer: /data
                  status: '404'
        '500':
          description: Internal server error.
          content:
            body:
              example:
                errors:
                - detail: Internal server error.
                  source:
                    pointer: /data
                  status: '500'
        '503':
          description: Service unavailable.
          content:
            body:
              example:
                errors:
                - detail: The service is temporary unavailable. Please try again later.
                  source:
                    pointer: /data
                  status: '503'
      tags:
      - Organizations
    post:
      operationId: v1_organizations_accounts_teams_members_create
      summary: Add members to a team
      description: '

        ## Description


        This endpoint adds member to a specific team of the company

        Given a list of basic member information (emails, first name and last name), for each entity:


        * it adds the members to the team if he/she is already a member the company.

        * it creates a new member and add he/she to the team if there isn''t already a member with the same email in the company.


        All user created will have ''Member'' as role.


        In case of errors, like wrong email or missing data, all request is discarded and no member is created.


        This endpoint accepts only one request per minute. See the responses for more information.

        '
      responses:
        '500':
          description: Internal server error.
          content:
            body:
              example:
                errors:
                - detail: Internal server error.
                  source:
                    pointer: /data
                  status: '500'
        '201':
          description: Members created
          content:
            appli

# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cloud-academy/refs/heads/main/openapi/cloud-academy-organizations-api-openapi.yml