Skip to main content

Hosted course URLs

Every course and every version has a url on the institute’s hosted catalogue site, where enrolment, cart and checkout happen:
  • course_base_url is in GET /site (see Course page address).
  • The route is the course id, or the custom address the institute gave the course page.
  • The query selects the version (enrollInviteId, packageSessionId, level). Link to url exactly as returned; do not build it yourself or drop the query, or the visitor may land on a different version.
When the institute has no course page address, url is null. Hide the link rather than guess one.

seo

GET /courses/{id} returns ready-made page metadata:
  • description is plain text, at most 160 characters.
  • canonical_url is the hosted page without its query. It is the right canonical only when you do not host your own course page. With ?language=hi, every seo field describes the Hindi edition.

structured_data

A schema.org Course object. Put it in a JSON-LD script tag as is:
  • offers is present only when the price is shown. availability maps available → InStock, coming_soon / not_started → PreOrder, closed → Discontinued.
  • image, url and inLanguage are left out when unknown.
  • provider.sameAs is the institute’s website from its Vacademy profile, else the hosted site’s home page.
The replace keeps a </script> inside any text field from ending the tag.

Two setups

GET /sitemap

Every published course, in catalogue order, at its canonical address (the same as the course’s seo.canonical_url, without the version query). Courses without a page address are left out. lastmod is when the course’s newest version was created, not when it was last edited.