Cloud Academy Reports API

The Reports API from Cloud Academy — 32 operation(s) for reports.

Operations 33

POST /v1/reports/certifications/ Triggers the generation of certification report, listing all uploaded member certifications including their level, achievement date and expiry date #
POST /v1/reports/content-access/ Triggers the generation of a content access report #
POST /v1/reports/content-inventory-export/ Triggers the generation of Content Inventory Report #
POST /v1/reports/content-progress/ Triggers the generation of Content Progress report [DEPRECATED] #
POST /v1/reports/content-skills-export/ Triggers the generation of content skills report; retrieves skills relating to a content [DEPRECATED] #
POST /v1/reports/course-uplift-export/ Triggers the generation of Course Uplift Report #
POST /v1/reports/cpe-score-export/ Triggers the generation of cpe score report #
GET /v1/reports/custom-reports/ Retrieves all available custom reports #
POST /v1/reports/custom-reports/ Triggers the generation of a custom report #
POST /v1/reports/exam-answers/ Triggers the generation of exam answers report #
POST /v1/reports/hourly-time-export/ Triggers the generation of Hourly Time report #
POST /v1/reports/inactive-members/ Triggers the generation of inactive members report #
GET /v1/reports/jobs/ Retrieves all the available report jobs belonging to the current user #
GET /v1/reports/jobs/{id}/ Retrieves detailed information about the given report job #
POST /v1/reports/learning-path-content/ Triggers the generation of a learning path content report [DEPRECATED] #
POST /v1/reports/lp-progress-export/ Triggers the generation of Learning Path Progress report [DEPRECATED] #
POST /v1/reports/members-export/ Triggers the generation of a members report #
POST /v1/reports/programs-content/ Triggers the generation of programs content report [DEPRECATED] #
POST /v1/reports/programs-progress/ Triggers the generation of programs progress report #
POST /v1/reports/smart-skills-scores-export/ Triggers the generation of Smart Skills Scores Report #
POST /v1/reports/team-memberships/ Triggers the generation of a team memberships report #
POST /v1/reports/training-plan-content/ Triggers the generation of a training plan content report [DEPRECATED] #
POST /v1/reports/training-plan-progress/ Triggers the generation of a training plan progress report #
POST /v1/reports/user-activity/ Triggers the generation of Member Activity report [DEPRECATED] #
POST /v1/reports/user-skills/ Triggers the generation of a user skills report #
POST /v2/reports/content-progress/ Triggers the generation of Content Progress report #
POST /v2/reports/content-skills-export/ Triggers the generation of content skills report; retrieves skills relating to a content #
POST /v2/reports/course-content/ Triggers the generation of a course content report [DEPRECATED] #
POST /v2/reports/course-progress-export/ Triggers the generation of Course Progress report #
POST /v2/reports/programs-content/ Triggers the generation of programs content report #
POST /v2/reports/training-plan-content/ Triggers the generation of a training plan content report #
POST /v2/reports/user-activity/ Triggers the generation of Member Activity report #
POST /v3/reports/course-content/ Triggers the generation of a course content report #

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-reports-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-reports-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: QA Learning Management System Reports 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: Reports
paths:
  /v1/reports/certifications/:
    parameters: []
    post:
      operationId: v1_reports_certifications_create
      summary: '

        Triggers the generation of certification report, listing all uploaded member certifications including their level, achievement date and expiry date

        '
      description: '

        ## Description

        This endpoint triggers the generation of certification report, returning information about the triggered report generation job.

        One request can be made every 10 minutes per user. If you call this endpoint more than this, you will get an HTTP 429 TOO_MANY_REQUESTS response, with a Retry-After header. This header will provide the remaining time to wait.

        Since all parameters are optional, the payload is not mandatory therefore you can send an empty request.

        '
      responses:
        '201':
          description: Jobs Properly Generated
          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: []
                        type: object
                        properties:
                          job_id:
                            title: job_id
                            type: string
                          report_type:
                            title: report_type
                            type: string
                          requested_by:
                            title: requested_by
                            type: integer
                          status:
                            title: status
                            type: string
                          submission_date:
                            title: submission_date
                            type: string
                            format: date-time
                      type:
                        title: type
                        type: string
                        example: certifications_report_request
        '503':
          description: Service unavailable.
          content:
            body:
              example:
                errors:
                - detail: The service is temporary unavailable. Please try again later.
                  source:
                    pointer: /data
                  status: '503'
        '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:
      - Reports
      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: []
                      type: object
                      properties: {}
                    type:
                      title: type
                      type: string
                      example: certifications_report_request
        required: true
  /v1/reports/content-access/:
    parameters: []
    post:
      operationId: v1_reports_content-access_create
      summary: Triggers the generation of a content access report
      description: '

        ## Description


        This endpoint triggers the generation of a content access report, returning information about the triggered report generation job.


        One request can be made every 10 minutes per user. If you call this endpoint more than this, you will get an HTTP 429 TOO_MANY_REQUESTS response, with a Retry-After header. This header will provide the remaining time to wait.


        Since all parameters are optional, the payload is not mandatory therefore you can send an empty request.

        '
      responses:
        '201':
          description: Jobs Properly Generated
          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: []
                        type: object
                        properties:
                          job_id:
                            title: job_id
                            type: string
                          report_type:
                            title: report_type
                            type: string
                          requested_by:
                            title: requested_by
                            type: integer
                          status:
                            title: status
                            type: string
                          submission_date:
                            title: submission_date
                            type: string
                            format: date-time
                      type:
                        title: type
                        type: string
                        example: content_access_report_request
        '503':
          description: Service unavailable.
          content:
            body:
              example:
                errors:
                - detail: The service is temporary unavailable. Please try again later.
                  source:
                    pointer: /data
                  status: '503'
        '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:
      - Reports
      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: []
                      type: object
                      properties: {}
                    type:
                      title: type
                      type: string
                      example: content_access_report_request
        required: true
  /v1/reports/content-inventory-export/:
    parameters: []
    post:
      operationId: v1_reports_content-inventory-export_create
      summary: Triggers the generation of Content Inventory Report
      description: '

        ## Description

        This endpoint triggers the generation of Content Inventory Report, returning information about the triggered report generation job.

        One request can be made every 10 minutes per user. If you call this endpoint more than this, you will get an HTTP 429 TOO_MANY_REQUESTS response, with a Retry-After header. This header will provide the remaining time to wait.

        Please take a look at the ''model'' description of the data to know which parameters are mandatory and which are not.

        '
      responses:
        '201':
          description: Jobs Properly Generated
          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: []
                        type: object
                        properties:
                          job_id:
                            title: job_id
                            type: string
                          report_type:
                            title: report_type
                            type: string
                          requested_by:
                            title: requested_by
                            type: integer
                          status:
                            title: status
                            type: string
                          submission_date:
                            title: submission_date
                            type: string
                            format: date-time
                      type:
                        title: type
                        type: string
                        example: content_inventory_report_request
        '403':
          description: Not permitted to view report details
          content:
            body:
              example:
                errors:
                - detail: You don't have the permissions to access this API.
                  source:
                    pointer: /data
                  status: '403'
        '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'
        '401':
          description: Executing the request without credentials.
          content:
            body:
              example:
                errors:
                - detail: Authentication credentials were not provided.
                  source:
                    pointer: /data
                  status: '401'
      tags:
      - Reports
      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: []
                      type: object
                      properties:
                        content_statuses:
                          title: content_statuses
                          description: '[Optional] Max Length 10'
                          type: array
                          items: string
                        content_types:
                          title: content_types
                          description: '[Optional] Max Length 10'
                          type: array
                          items: string
                        created_by_ids:
                          title: created_by_ids
                          description: '[Optional] Max Length 200'
                          type: array
                          items: string
                        creation_end_date:
                          title: creation_end_date
                          description: '[Optional]'
                          type: string
                          format: date-time
                        creation_start_date:
                          title: creation_start_date
                          description: '[Optional]'
                          type: string
                          format: date-time
                        is_public:
                          title: is_public
                          description: '[Optional]'
                          type: boolean
                        last_modified_by_ids:
                          title: last_modified_by_ids
                          description: '[Optional] Max Length 200'
                          type: array
                          items: string
                        last_modified_end_date:
                          title: last_modified_end_date
                          description: '[Optional]'
                          type: string
                          format: date-time
                        last_modified_start_date:
                          title: last_modified_start_date
                          description: '[Optional]'
                          type: string
                          format: date-time
                    type:
                      title: type
                      type: string
                      example: content_inventory_report_request
        required: true
  /v1/reports/content-progress/:
    parameters: []
    post:
      operationId: v1_reports_content-progress_create
      summary: Triggers the generation of Content Progress report [DEPRECATED]
      description: "\n## Description\nThis endpoint triggers the generation of Content Progress report, returning information about the triggered report generation job.\nOne request can be made every 10 minutes per user. If you call this endpoint more than this, you will get an HTTP 429 TOO_MANY_REQUESTS response, with a Retry-After header. This header will provide the remaining time to wait.\nSince all parameters are optional, the payload is not mandatory therefore you can send an empty request. \n\nThis report replaces the deprecated consumption-content report.\nThis API is deprecated: please use /v2/reports/content-progress/ instead.\n"
      responses:
        '201':
          description: Jobs Properly Generated
          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: []
                        type: object
                        properties:
                          job_id:
                            title: job_id
                            type: string
                          report_type:
                            title: report_type
                            type: string
                          requested_by:
                            title: requested_by
                            type: integer
                          status:
                            title: status
                            type: string
                          submission_date:
                            title: submission_date
                            type: string
                            format: date-time
                      type:
                        title: type
                        type: string
                        example: content_progress_report_request
        '503':
          description: Service unavailable.
          content:
            body:
              example:
                errors:
                - detail: The service is temporary unavailable. Please try again later.
                  source:
                    pointer: /data
                  status: '503'
        '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:
      - Reports
      deprecated: true
      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: []
                      type: object
                      properties:
                        team_ids:
                          title: team_ids
                          description: '[Optional] Max Length 200'
                          type: array
                          items: integer
                        user_ids:
                          title: user_ids
                          description: '[Optional] Max Length 200'
                          type: array
                          items: string
                    type:
                      title: type
                      type: string
                      example: content_progress_report_request
        required: true
  /v1/reports/content-skills-export/:
    parameters: []
    post:
      operationId: v1_reports_content-skills-export_create
      summary: Triggers the generation of content skills report; retrieves skills relating to a content [DEPRECATED]
      description: '

        ## Description


        This endpoint triggers the generation of content skills report, returning information about the triggered report generation job.


        One request can be made every 10 minutes per user. If you call this endpoint more than this, you will get an HTTP 429 TOO_MANY_REQUESTS response, with a Retry-After header. This header will provide the remaining time to wait.


        Since all parameters are optional, the payload is not mandatory therefore you can send an empty request.

        This API is deprecated: please use /v2/reports/content-skills-export/ instead.

        '
      responses:
        '201':
          description: Jobs Properly Generated
          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: []
                        type: object
                        properties:
                          job_id:
                            title: job_id
                            type: string
                          report_type:
                            title: report_type
                            type: string
                          requested_by:
                            title: requested_by
                            type: integer
                          status:
                            title: status
                            type: string
                          submission_date:
                            title: submission_date
                            type: string
                            format: date-time
                      type:
                        title: type
                        type: string
                        example: content_skills_report_request
        '503':
          description: Service unavailable.
          content:
            body:
              example:
                errors:
                - detail: The service is temporary unavailable. Please try again later.
                  source:
                    pointer: /data
                  status: '503'
        '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:
      - Reports
      deprecated: true
      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: []
                      type: object
                      properties: {}
                    type:
                      title: type
                      type: string
                      example: content_skills_report_request
        required: true
  /v1/reports/course-uplift-export/:
    parameters: []
    post:
      operationId: v1_reports_course-uplift-export_create
      summary: Triggers the generation of Course Uplift Report
      description: '

        ## Description

        This endpoint triggers the generation of Course Uplift Report, returning information about the triggered report generation job.

        One request can be made every 10 minutes per user. If you call this endpoint more than this, you will get an HTTP 429 TOO_MANY_REQUESTS response, with a Retry-After header. This header will provide the remaining time to wait.

        Please take a look at the ''model'' description of the data to know which parameters are mandatory and which are not.

        '
      responses:
        '201':
          description: Jobs Properly Generated
          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: []
                        type: object
                        properties:
                          job_id:
                            title: job_id
                            type: string
                          report_type:
                            title: report_type
                            type: string
                          requested_by:
                            title: requested_by
                            type: integer
                          status:
                            title: status
                            type: string
                          submission_date:
                            title: submission_date
                            type: string
                            format: date-time
                      type:
                        title: type
                        type: string
                        example: course_uplift_report_request
        '403':
          description: Not permitted to view report details
          content:
            body:
              example:
                errors:
                - detail: You don't have the permissions to access this API.
                  source:
                    pointer: /data
                  status: '403'
        '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'
        '401':
          description: Executing the request without credentials.
          content:
            body:
              example:
                errors:
                - detail: Authentication credentials were not provided.
                  source:
                    pointer: /data
                  status: '401'
      tags:
      - Reports
      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: []
                      type: object
                      properties:
                        end_date:
                          title: end_date
                          description: '[Optional]'
                          type: string
                          format: date-time
                        start_date:
                          title: start_date
                          description: '[Optional]'
                          type: string
                          format: date-time
                        team_ids:
                          title: team_ids
                          description: '[Optional] Max Length 200'
                          type: array
                          items: integer
                        user_ids:
                          title: user_ids
                          description: '[Optional] Max Length 200'
                          type: array
                          items: string
                    type:
                      title: type
                      type: string
                      example: course_uplift_report_request
        required: true
  /v1/reports/cpe-score-export/:
    parameters: []
    post:
      operationId: v1_reports_cpe-score-export_create
      summary: Triggers the generation of cpe score report
      description: '

        ## Description


        This endpoint triggers the generation of cpe score report, returning information about the triggered report generation job.


        One request can be made every 10 minutes per user. If you call this endpoint more than this, you will get an HTTP 429 TOO_MANY_REQUESTS response, with a Retry-After header. This header will provide the remaining time to wait.


        Since all parameters are optional, the payload is not mandatory therefore you can send an empty request.

        '
      responses:
        '201':
          description: Jobs Properly Generated
          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: []
                        type: object
                        properties: {}
                      type:
                        title: type
                        type: string
                        example: cpe_score_report_request
        '503':
          description: Service unavailable.
          content:
            body:
              example:
                errors:
                - detail: The service is temporary unavailable. Please try again later.
                  source:
                    pointer: /data
                  status: '503'
        '500':
          description: Internal server error.
          content:
            body:
              

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