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

# Get a learning path

> The path and its steps, each a course summary. A step whose course is not published to the catalogue is still listed (from the path's own data: no subtitle, instructors or `created_at`).

Scope: `catalog:read`. Cacheable for 60 s.



## OpenAPI

````yaml /api-reference/openapi.json get /learning-paths/{code}
openapi: 3.1.0
info:
  title: Vacademy Catalogue API
  version: 1.0.0
  description: >-
    Read an institute's published courses, streams and learning paths for its
    own website, and send enquiries into its CRM.
servers:
  - url: https://api.vacademy.ai/catalog/v1
security:
  - ApiKey: []
  - Bearer: []
tags:
  - name: Site
  - name: Courses
  - name: Streams
  - name: Learning paths
  - name: Enquiries
paths:
  /learning-paths/{code}:
    get:
      tags:
        - Learning paths
      summary: Get a learning path
      description: >-
        The path and its steps, each a course summary. A step whose course is
        not published to the catalogue is still listed (from the path's own
        data: no subtitle, instructors or `created_at`).


        Scope: `catalog:read`. Cacheable for 60 s.
      operationId: getLearningPath
      parameters:
        - name: code
          in: path
          required: true
          schema:
            type: string
          example: forbvy
      responses:
        '200':
          description: The learning path.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
            Cache-Control:
              $ref: '#/components/headers/CacheControl'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LearningPath'
              example:
                code: forbvy
                name: A woman's life stages
                description_html: >-
                  Care for your body and your child through each stage:
                  menstruation, pregnancy and early motherhood.
                steps:
                  - position: 1
                    course:
                      id: 8610911c-382c-41a9-9e33-2e4e0882282f
                      title: Rajaswala Paricharya
                      subtitle: null
                      image_url: >-
                        https://cdn.example.com/e25d1a13-00a1-4fe1-8b22-ca29b9b4de1b.png
                      url: >-
                        https://learning.brahmvarchas.org/store/8610911c-382c-41a9-9e33-2e4e0882282f?enrollInviteId=b6d3bd0d-db65-43fe-9cdb-07e67e8aed01&packageSessionId=18bba28f-5b33-4acc-927d-f1b28d9722d5&level=default
                      formats:
                        - key: elearning
                          label: Interactive, self-paced E-learning
                        - key: live
                          label: Live sessions
                      stream:
                        slug: swasthya
                        label: Health | Ayurveda
                      category:
                        slug: rajaswala
                        label: Rajaswala Paricharya
                      languages: []
                      tags:
                        - >-
                          time-tested menstrual practices for long-term health &
                          harmony!
                        - ayurveda
                        - iks
                        - vediceducation
                        - menstruation
                        - learnwithbrahmvarchas
                        - english
                        - swasthya
                        - rajaswala
                        - format-elearning
                        - format-live
                        - for-womens-health
                      level: null
                      availability: available
                      price_visible: true
                      price:
                        amount: 1001
                        compare_at_amount: null
                        currency: INR
                        is_free: false
                        varies: false
                      instructors: []
                      rating: null
                      created_at: null
                      variants:
                        - package_session_id: 18bba28f-5b33-4acc-927d-f1b28d9722d5
                          enroll_invite_id: b6d3bd0d-db65-43fe-9cdb-07e67e8aed01
                          level: null
                          language:
                            code: en
                            label: English
                          url: >-
                            https://learning.brahmvarchas.org/store/8610911c-382c-41a9-9e33-2e4e0882282f?enrollInviteId=b6d3bd0d-db65-43fe-9cdb-07e67e8aed01&packageSessionId=18bba28f-5b33-4acc-927d-f1b28d9722d5&level=default
                          availability: available
                          price:
                            amount: 1001
                            compare_at_amount: null
                            currency: INR
                            is_free: false
                  - position: 2
                    course:
                      id: f7c3b58e-b3bc-4d04-b897-e250ecf60b3a
                      title: Vedic Garbha Vigyan (Encyclopedia)
                      subtitle: null
                      image_url: >-
                        https://cdn.example.com/8bf9a559-de1c-44d0-b89c-c8f3d7fe0fc2.png
                      url: >-
                        https://learning.brahmvarchas.org/store/f7c3b58e-b3bc-4d04-b897-e250ecf60b3a?enrollInviteId=0381174f-f48f-4dc1-94b9-a4f146ab8797&packageSessionId=2db531bc-c100-410f-9447-e444db03fe0c&level=default
                      formats:
                        - key: ebook
                          label: E-books
                      stream:
                        slug: swasthya
                        label: Health | Ayurveda
                      category:
                        slug: garbha-vigyan
                        label: Garbha Vigyan
                      languages: []
                      tags:
                        - english
                        - swasthya
                        - garbha-vigyan
                        - format-ebook
                        - for-parents
                        - for-womens-health
                      level: null
                      availability: available
                      price_visible: true
                      price:
                        amount: 251
                        compare_at_amount: null
                        currency: INR
                        is_free: false
                        varies: false
                      instructors: []
                      rating: null
                      created_at: null
                      variants:
                        - package_session_id: 2db531bc-c100-410f-9447-e444db03fe0c
                          enroll_invite_id: 0381174f-f48f-4dc1-94b9-a4f146ab8797
                          level: null
                          language:
                            code: en
                            label: English
                          url: >-
                            https://learning.brahmvarchas.org/store/f7c3b58e-b3bc-4d04-b897-e250ecf60b3a?enrollInviteId=0381174f-f48f-4dc1-94b9-a4f146ab8797&packageSessionId=2db531bc-c100-410f-9447-e444db03fe0c&level=default
                          availability: available
                          price:
                            amount: 251
                            compare_at_amount: null
                            currency: INR
                            is_free: false
                  - position: 3
                    course:
                      id: 7c12a9ec-22c3-4c55-ada1-2a93e107816f
                      title: Vedic Parenting - eBook
                      subtitle: The forgotten mystery of the real meaning of parents!
                      image_url: >-
                        https://cdn.example.com/32aa2224-c7b1-46cf-b7ae-ebf1a37c5e34.png
                      url: >-
                        https://learning.brahmvarchas.org/store/7c12a9ec-22c3-4c55-ada1-2a93e107816f?enrollInviteId=5a975e3c-429f-4bfe-9143-43ffcf807748&packageSessionId=92e89046-5865-4cf7-bea6-ac1e8b7bd328&level=default
                      formats:
                        - key: ebook
                          label: E-books
                      stream:
                        slug: dharma
                        label: Virtue | Civilisation
                      category:
                        slug: vedic-parenting
                        label: Holistic Parenting
                      languages:
                        - code: en
                          label: English
                        - code: hi
                          label: Hindi
                      tags:
                        - english
                        - dharma
                        - vedic-parenting
                        - format-ebook
                        - for-parents
                        - hindi
                      level: null
                      availability: available
                      price_visible: true
                      price:
                        amount: 251
                        compare_at_amount: null
                        currency: INR
                        is_free: false
                        varies: false
                      instructors:
                        - name: Abhishek
                          image_url: null
                      rating: null
                      created_at: '2026-09-22T09:05:02.499Z'
                      variants:
                        - package_session_id: 92e89046-5865-4cf7-bea6-ac1e8b7bd328
                          enroll_invite_id: 5a975e3c-429f-4bfe-9143-43ffcf807748
                          level: null
                          language:
                            code: en
                            label: English
                          url: >-
                            https://learning.brahmvarchas.org/store/7c12a9ec-22c3-4c55-ada1-2a93e107816f?enrollInviteId=5a975e3c-429f-4bfe-9143-43ffcf807748&packageSessionId=92e89046-5865-4cf7-bea6-ac1e8b7bd328&level=default
                          availability: available
                          price:
                            amount: 251
                            compare_at_amount: null
                            currency: INR
                            is_free: false
                        - package_session_id: 5c4fcbf5-851c-455c-90b4-f74217ded156
                          enroll_invite_id: f2496594-7a63-47eb-8b22-a0af43e75fb6
                          level: null
                          language:
                            code: hi
                            label: Hindi
                          url: >-
                            https://learning.brahmvarchas.org/store/c150dfcf-96e0-4712-b709-b0528e1f4a09?enrollInviteId=f2496594-7a63-47eb-8b22-a0af43e75fb6&packageSessionId=5c4fcbf5-851c-455c-90b4-f74217ded156&level=default
                          availability: available
                          price:
                            amount: 251
                            compare_at_amount: null
                            currency: INR
                            is_free: false
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
        '503':
          $ref: '#/components/responses/AuthUnavailable'
components:
  headers:
    RequestId:
      schema:
        type: string
      description: Unique id of this request. Quote it to support.
    CacheControl:
      schema:
        type: string
      description: '`public, max-age=60` on reads; `no-store` on errors and `POST /leads`.'
    RetryAfter:
      schema:
        type: integer
      description: Seconds to wait before retrying.
  schemas:
    LearningPath:
      type: object
      properties:
        code:
          type: string
        name:
          type: string
        description_html:
          type:
            - string
            - 'null'
          description: Sanitised HTML.
        steps:
          type: array
          items:
            $ref: '#/components/schemas/LearningPathStep'
      required:
        - code
        - name
        - description_html
        - steps
    LearningPathStep:
      type: object
      properties:
        position:
          type: integer
          description: 1-based.
        course:
          $ref: '#/components/schemas/CourseSummary'
      required:
        - position
        - course
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              example: not_found
              enum:
                - missing_api_key
                - invalid_api_key
                - product_not_enabled
                - insufficient_scope
                - origin_not_allowed
                - rate_limited
                - not_found
                - method_not_allowed
                - invalid_request
                - auth_unavailable
                - internal_error
              description: >-
                Stable machine-readable code. Branch on this, never on
                `message`.
            message:
              type: string
              description: A sentence for logs. Wording may change.
            request_id:
              type: string
              description: Also in the `X-Request-Id` header. Quote it to support.
            details:
              type: object
              additionalProperties: true
              description: >-
                Present only when there is more to say: `param`
                (invalid_request), `required_scope` (insufficient_scope),
                `origin` (origin_not_allowed), `limit_per_minute`
                (rate_limited).
          required:
            - code
            - message
            - request_id
      required:
        - error
    CourseSummary:
      type: object
      properties:
        id:
          type: string
          description: >-
            The course id. Stable across language versions. Use it in `GET
            /courses/{id}`.
        title:
          type: string
          description: Title of the version shown (see `language`).
        subtitle:
          type:
            - string
            - 'null'
          description: 'Plain text, at most 300 characters: the card text.'
        image_url:
          type:
            - string
            - 'null'
          description: Card image (absolute URL).
        url:
          type:
            - string
            - 'null'
          description: >-
            The course's page on the hosted catalogue site, where enrolment,
            cart and checkout happen. Includes the version's query string. Null
            when the course page address is not configured.
        formats:
          type: array
          items:
            $ref: '#/components/schemas/Format'
        stream:
          oneOf:
            - $ref: '#/components/schemas/Place'
            - type: 'null'
        category:
          oneOf:
            - $ref: '#/components/schemas/Place'
            - type: 'null'
        languages:
          type: array
          items:
            $ref: '#/components/schemas/Language'
          description: >-
            Languages the course is available in. Empty when the site has course
            languages off.
        tags:
          type: array
          items:
            type: string
          description: Course tags as authored (original case).
        level:
          type:
            - string
            - 'null'
          description: Level of the version shown; null for a course without named levels.
        availability:
          type: string
          enum:
            - available
            - coming_soon
            - not_started
            - closed
          description: >-
            `available`: can be bought or enrolled now. `coming_soon`:
            announced, not on sale. `not_started`: enrolment opens later.
            `closed`: enrolment ended or inactive.
        price_visible:
          type: boolean
          description: >-
            False when the institute hides prices and this course is paid. Show
            "see price" and link to `url`.
        price:
          oneOf:
            - $ref: '#/components/schemas/Price'
            - type: 'null'
          description: >-
            Null when the course is not on sale now (see `availability`) or its
            price is hidden.
        instructors:
          type: array
          items:
            $ref: '#/components/schemas/Instructor'
        rating:
          type:
            - number
            - 'null'
          description: Average rating, or null when there is none.
        created_at:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            ISO-8601 UTC. The newest version's creation time; `sort=newest` uses
            it.
        variants:
          type: array
          items:
            $ref: '#/components/schemas/Variant'
          description: Every version, in catalogue order.
      required:
        - id
        - title
        - subtitle
        - image_url
        - url
        - formats
        - stream
        - category
        - languages
        - tags
        - level
        - availability
        - price_visible
        - price
        - instructors
        - rating
        - created_at
        - variants
    Format:
      type: object
      properties:
        key:
          type: string
          description: >-
            Lower-case format key, e.g. `ebook`. Use it in `GET
            /courses?format=`.
        label:
          type: string
          description: Display name, e.g. `E-books`.
      required:
        - key
        - label
    Place:
      type: object
      properties:
        slug:
          type: string
          description: Use it in `GET /courses?stream=` / `?category=`.
        label:
          type: string
          description: >-
            The name the hosted catalogue shows on course cards (the site's
            label mode: title or subtitle).
      required:
        - slug
        - label
      description: A stream or category a course belongs to.
    Language:
      type: object
      properties:
        code:
          type: string
          description: Lower-case language code from the site's settings, e.g. `en`, `hi`.
        label:
          type: string
          description: Display name, e.g. `Hindi`.
      required:
        - code
        - label
    Price:
      type: object
      properties:
        amount:
          type: number
          description: Price in major units (rupees for INR), e.g. `251.0`. `0` when free.
        compare_at_amount:
          type:
            - number
            - 'null'
          description: The higher list price to show struck through, or null.
        currency:
          type:
            - string
            - 'null'
          description: ISO 4217 code, e.g. `INR`.
        is_free:
          type: boolean
        varies:
          type: boolean
          description: >-
            True when the versions on sale now have different prices (show
            "from"; read `variants[].price`).
      required:
        - amount
        - compare_at_amount
        - currency
        - is_free
        - varies
      description: Price of the version the course is shown as.
    Instructor:
      type: object
      properties:
        name:
          type: string
        image_url:
          type:
            - string
            - 'null'
      required:
        - name
        - image_url
    Variant:
      type: object
      properties:
        package_session_id:
          type: string
          description: Id of this version (one level / batch of the course).
        enroll_invite_id:
          type:
            - string
            - 'null'
          description: Enrolment invite the hosted page uses for this version.
        level:
          type:
            - string
            - 'null'
          description: Level name, or null for a course without named levels.
        language:
          oneOf:
            - $ref: '#/components/schemas/Language'
            - type: 'null'
          description: This version's language, or null (languages off, or none detected).
        url:
          type:
            - string
            - 'null'
          description: >-
            This version's page on the hosted catalogue site. Null when the
            course page address is not configured.
        availability:
          type: string
          enum:
            - available
            - coming_soon
            - not_started
            - closed
          description: >-
            `available`: can be bought or enrolled now. `coming_soon`:
            announced, not on sale. `not_started`: enrolment opens later.
            `closed`: enrolment ended or inactive.
        price:
          oneOf:
            - $ref: '#/components/schemas/VariantPrice'
            - type: 'null'
          description: Null unless the version is free, or priced and prices are shown.
      required:
        - package_session_id
        - enroll_invite_id
        - level
        - language
        - url
        - availability
        - price
      description: 'One version of a course: a level, batch or language edition.'
    VariantPrice:
      type: object
      properties:
        amount:
          type: number
          description: Price in major units (rupees for INR), e.g. `251.0`. `0` when free.
        compare_at_amount:
          type:
            - number
            - 'null'
          description: The higher list price to show struck through, or null.
        currency:
          type:
            - string
            - 'null'
          description: ISO 4217 code, e.g. `INR`.
        is_free:
          type: boolean
      required:
        - amount
        - compare_at_amount
        - currency
        - is_free
      description: Price of one version.
  responses:
    Unauthorized:
      description: No key, or the key is not valid.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            missing_api_key:
              value:
                error:
                  code: missing_api_key
                  message: >-
                    Send your publishable key in the X-API-Key header (or
                    Authorization: Bearer).
                  request_id: req_3f2a9c1d7e5b4a608f1e2d3c4b5a6978
            invalid_api_key:
              value:
                error:
                  code: invalid_api_key
                  message: This API key is invalid, revoked or expired.
                  request_id: req_3f2a9c1d7e5b4a608f1e2d3c4b5a6978
    Forbidden:
      description: >-
        The key may not make this request, or the browser origin is not one of
        the institute's verified websites.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            origin_not_allowed:
              value:
                error:
                  code: origin_not_allowed
                  message: >-
                    Add and verify preview-abc.vercel.app in Settings →
                    Integrations → Catalogue API & websites to call this API
                    from it.
                  request_id: req_3f2a9c1d7e5b4a608f1e2d3c4b5a6978
                  details:
                    origin: preview-abc.vercel.app
            insufficient_scope:
              value:
                error:
                  code: insufficient_scope
                  message: This API key does not have the leads:write scope.
                  request_id: req_3f2a9c1d7e5b4a608f1e2d3c4b5a6978
                  details:
                    required_scope: leads:write
            product_not_enabled:
              value:
                error:
                  code: product_not_enabled
                  message: This API key is not a Catalogue API key.
                  request_id: req_3f2a9c1d7e5b4a608f1e2d3c4b5a6978
    NotFound:
      description: No such course or learning path for this institute.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            not_found:
              value:
                error:
                  code: not_found
                  message: Course not found.
                  request_id: req_3f2a9c1d7e5b4a608f1e2d3c4b5a6978
    RateLimited:
      description: Too many requests for this key (or, on `POST /leads`, this visitor).
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
        Retry-After:
          $ref: '#/components/headers/RetryAfter'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            rate_limited:
              value:
                error:
                  code: rate_limited
                  message: Too many requests for this API key (limit 1200 per minute).
                  request_id: req_3f2a9c1d7e5b4a608f1e2d3c4b5a6978
                  details:
                    limit_per_minute: 1200
    AuthUnavailable:
      description: >-
        Keys could not be checked for a moment. Retry after `Retry-After`
        seconds.
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
        Retry-After:
          $ref: '#/components/headers/RetryAfter'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            auth_unavailable:
              value:
                error:
                  code: auth_unavailable
                  message: Could not verify the API key right now. Retry shortly.
                  request_id: req_3f2a9c1d7e5b4a608f1e2d3c4b5a6978
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: X-API-Key
      description: Your publishable Catalogue API key (`vak_pub_…`).
    Bearer:
      type: http
      scheme: bearer
      description: 'The same key as `Authorization: Bearer vak_pub_…`.'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.