Goethena Training Campaigns API

Training campaign information and operations.

Business capability
Learning & Development Management BC-300.40

Operations 2

GET /v1/training-campaigns Get training campaigns #
GET /v1/training-campaigns/{id} Get a training campaign by id #

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/goethena-training-campaigns-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

goethena-training-campaigns-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.3.0
  title: Ethena Training Campaigns API
  termsOfService: https://app.goethena.com/legal-and-privacy
  contact:
    name: Contact support
    email: support@goethena.com
  x-logo:
    url: ./ethena-logo.png
    altText: Ethena logo
  description: The Ethena API allows you to view and manage learners and training information.
servers:
- url: https://api.goethena.com
tags:
- name: Training Campaigns
  description: Training campaign information and operations.
paths:
  /v1/training-campaigns:
    get:
      tags:
      - Training Campaigns
      summary: Get training campaigns
      description: 'Get many training campaigns.


        The query parameter filters are applied as `AND` conditions across different filters.

        If multiple filters are used, the response will include only the training campaigns that satisfy all the filters.


        Within a single filter, multiple values are applied as `OR` conditions.'
      operationId: getTrainingCampaigns
      parameters:
      - name: id
        in: query
        description: Use this parameter to filter training campaigns by id.
        schema:
          type: array
          maxItems: 25
          items:
            description: The unique identifier of a training campaign.
            type: string
            pattern: ^[a-zA-Z0-9]+$
            example: tc456xyz78
        example:
        - tc123abc4
        - tc123abc5
      - name: status
        in: query
        description: Filter training campaigns by status. When omitted, training campaigns of all statuses will be included in the response.
        schema:
          type: array
          maxItems: 25
          items:
            description: The status of the training campaign. `ACTIVE` campaigns may be scheduling training now and/or in the future. `ARCHIVED` campaigns have been deactivated and will no longer schedule new training.
            type: string
            enum:
            - ACTIVE
            - ARCHIVED
            example: ACTIVE
        example:
        - ACTIVE
      - name: limit
        in: query
        description: Use this parameter to limit the number of entities returned.
        schema:
          type: integer
          minimum: 1
          default: 25
          maximum: 100
      - example: tc123abc25
        name: cursor
        in: query
        description: "Use this parameter to paginate through entities. The cursor is the `id` of the last entity you want to start from.\n\nTo get the first page, omit this parameter. \n\nTo get the next page, use the `id` of the last entity from the previous response. Continue paginating while `hasMore` is `true` in the response.\n\nExample workflow:\n1. GET /v1/{endpoint} → returns data + hasMore: true, last entity id: \"xyz789end\"\n2. GET /v1/{endpoint}?cursor=xyz789end → returns next page"
        schema:
          type: string
      security:
      - basic_auth: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                allOf:
                - type: object
                  properties:
                    limit:
                      type: integer
                    hasMore:
                      type: boolean
                    data:
                      type: array
                - type: object
                  properties:
                    data:
                      type: array
                      items:
                        type: object
                        required:
                        - id
                        - courseName
                        - campaignName
                        - status
                        - initialTrainingAt
                        properties:
                          id:
                            allOf:
                            - description: The unique identifier of a training campaign.
                              type: string
                              pattern: ^[a-zA-Z0-9]+$
                              example: tc456xyz78
                          courseName:
                            allOf:
                            - description: The name of the course.
                              type: string
                              minLength: 2
                              maxLength: 255
                              example: Cybersecurity Awareness
                          campaignName:
                            allOf:
                            - description: The name of the training campaign.
                              type: string
                              minLength: 2
                              maxLength: 255
                              example: Security Training 2025
                          status:
                            allOf:
                            - description: The status of the training campaign. `ACTIVE` campaigns may be scheduling training now and/or in the future. `ARCHIVED` campaigns have been deactivated and will no longer schedule new training.
                              type: string
                              enum:
                              - ACTIVE
                              - ARCHIVED
                              example: ACTIVE
                          initialTrainingAt:
                            allOf:
                            - description: The date and time when the training campaign is scheduled to start.
                              type: string
                              format: date-time
                              example: '2025-02-15T00:00:00Z'
                          nextTrainingAt:
                            allOf:
                            - description: The date and time when the next training session is scheduled to start.
                              type: string
                              format: date-time
                              example: '2026-02-15T00:00:00Z'
                          deadlineInDays:
                            allOf:
                            - description: The number of days before the deadline of the training campaign.  The deadline can be calculated as `initialTrainingAt`, plus the number of days specified in this field.  If the deadline in days is null, then the training campaign does not have a deadline.
                              type: integer
                              minimum: 0
                              example: 60
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                minProperties: 1
                description: JSON description of the issues based on the The Problem Details JSON Object [[RFC7807](https://tools.ietf.org/html/rfc7807)].
                required:
                - title
                properties:
                  title:
                    description: A short, human-readable summary of the problem type.
                    type: string
                  detail:
                    description: A human-readable explanation specific to this occurrence of the problem.
                    type: string
                  invalid-params:
                    description: An array of objects, each representing a parameter that was invalid.
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          description: The name of the invalid parameter.
                        reason:
                          type: string
                          description: The reason why the parameter is invalid.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                minProperties: 1
                description: JSON description of the issues based on the The Problem Details JSON Object [[RFC7807](https://tools.ietf.org/html/rfc7807)].
                required:
                - title
                properties:
                  title:
                    description: A short, human-readable summary of the problem type.
                    type: string
                  detail:
                    description: A human-readable explanation specific to this occurrence of the problem.
                    type: string
                  invalid-params:
                    description: An array of objects, each representing a parameter that was invalid.
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          description: The name of the invalid parameter.
                        reason:
                          type: string
                          description: The reason why the parameter is invalid.
  /v1/training-campaigns/{id}:
    get:
      tags:
      - Training Campaigns
      summary: Get a training campaign by id
      description: Get a training campaign.
      operationId: getTrainingCampaignById
      parameters:
      - name: id
        in: path
        required: true
        schema:
          description: The unique identifier of a training campaign.
          type: string
          pattern: ^[a-zA-Z0-9]+$
          example: tc456xyz78
      security:
      - basic_auth: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                allOf:
                - type: object
                  required:
                  - id
                  - courseName
                  - campaignName
                  - status
                  - initialTrainingAt
                  properties:
                    id:
                      allOf:
                      - description: The unique identifier of a training campaign.
                        type: string
                        pattern: ^[a-zA-Z0-9]+$
                        example: tc456xyz78
                    courseName:
                      allOf:
                      - description: The name of the course.
                        type: string
                        minLength: 2
                        maxLength: 255
                        example: Cybersecurity Awareness
                    campaignName:
                      allOf:
                      - description: The name of the training campaign.
                        type: string
                        minLength: 2
                        maxLength: 255
                        example: Security Training 2025
                    status:
                      allOf:
                      - description: The status of the training campaign. `ACTIVE` campaigns may be scheduling training now and/or in the future. `ARCHIVED` campaigns have been deactivated and will no longer schedule new training.
                        type: string
                        enum:
                        - ACTIVE
                        - ARCHIVED
                        example: ACTIVE
                    initialTrainingAt:
                      allOf:
                      - description: The date and time when the training campaign is scheduled to start.
                        type: string
                        format: date-time
                        example: '2025-02-15T00:00:00Z'
                    nextTrainingAt:
                      allOf:
                      - description: The date and time when the next training session is scheduled to start.
                        type: string
                        format: date-time
                        example: '2026-02-15T00:00:00Z'
                    deadlineInDays:
                      allOf:
                      - description: The number of days before the deadline of the training campaign.  The deadline can be calculated as `initialTrainingAt`, plus the number of days specified in this field.  If the deadline in days is null, then the training campaign does not have a deadline.
                        type: integer
                        minimum: 0
                        example: 60
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                minProperties: 1
                description: JSON description of the issues based on the The Problem Details JSON Object [[RFC7807](https://tools.ietf.org/html/rfc7807)].
                required:
                - title
                properties:
                  title:
                    description: A short, human-readable summary of the problem type.
                    type: string
                  detail:
                    description: A human-readable explanation specific to this occurrence of the problem.
                    type: string
                  invalid-params:
                    description: An array of objects, each representing a parameter that was invalid.
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          description: The name of the invalid parameter.
                        reason:
                          type: string
                          description: The reason why the parameter is invalid.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                minProperties: 1
                description: JSON description of the issues based on the The Problem Details JSON Object [[RFC7807](https://tools.ietf.org/html/rfc7807)].
                required:
                - title
                properties:
                  title:
                    description: A short, human-readable summary of the problem type.
                    type: string
                  detail:
                    description: A human-readable explanation specific to this occurrence of the problem.
                    type: string
                  invalid-params:
                    description: An array of objects, each representing a parameter that was invalid.
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          description: The name of the invalid parameter.
                        reason:
                          type: string
                          description: The reason why the parameter is invalid.
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                minProperties: 1
                description: JSON description of the issues based on the The Problem Details JSON Object [[RFC7807](https://tools.ietf.org/html/rfc7807)].
                required:
                - title
                properties:
                  title:
                    description: A short, human-readable summary of the problem type.
                    type: string
                  detail:
                    description: A human-readable explanation specific to this occurrence of the problem.
                    type: string
                  invalid-params:
                    description: An array of objects, each representing a parameter that was invalid.
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          description: The name of the invalid parameter.
                        reason:
                          type: string
                          description: The reason why the parameter is invalid.
components:
  securitySchemes:
    basic_auth:
      description: Send requests with the Authorization header that contains the word `Basic` followed by a space and a base64-encoded string of the username and api key, `username:apiKey`.
      type: http
      scheme: basic
x-tagGroups:
- name: General
  tags:
  - Learners
  - Training Campaigns
  - Learner Training Campaigns
  - Learner Training Modules
  - Webhooks