---
title: "Quickstart"
description: "Configure a server-side BlendX discovery client and make your first catalog request."
source: "https://docs.blend-ed.com/blendx-discovery/quickstart/"
---

# Quickstart

## 1. Collect your Blend-ed connection details
You need:

- The LMS base URL, such as `https://learn.example.com` .
- The `CLIENT_API_SECRET` supplied for server-to-server storefront calls.

Store the credential in your deployment’s secret manager. In the examples, `$BLENDX_CLIENT_API_SECRET` represents that protected value.

## 2. List courses
```
curl "https://<LMS_HOST>/blendxapi/discovery/courses/?fields=light&limit=8&page=1" \  -H "clientapisecret: $BLENDX_CLIENT_API_SECRET"
```
The response contains a page of published courses:

```
{  "courses": [    {      "id": "267ce96d-1454-4292-aa42-1a0487c7eaaa",      "openedx_course_id": "course-v1:Acme+SAF101+2026_T1",      "display_name": "Safety fundamentals",      "price": 0,      "currency": "usd",      "course_mode": "honor",      "is_published": true    }  ],  "total_count": 1,  "has_more": false,  "limit": 8,  "page": 1,  "offset": 0}
```
## 3. Keep both course identifiers
The APIs use 2 identifiers for different jobs:

| Field | Example | Used by |
| --- | --- | --- |
| `id` | `267ce96d-...` | Checkout and external enrollment. This is the BlendX/Hasura UUID. |
| `openedx_course_id` | `course-v1:Acme+SAF101+2026_T1` | Course detail, outline, effort, and enrollment-status routes. |

Do not substitute one for the other.

## 4. Load the course page
URL-encode the Open edX course key when constructing a URL in application code:

```
curl "https://<LMS_HOST>/blendxapi/discovery/course/course-v1%3AAcme%2BSAF101%2B2026_T1/?fields=summary" \  -H "clientapisecret: $BLENDX_CLIENT_API_SECRET"
```
`fields=summary` omits the expensive course structure. Load the dedicated outline route only when the page needs it.

## 5. Continue to checkout
Use the returned course UUID, selected mode, and owning organisation UUID in a [guest or authenticated checkout request](/blendx-discovery/checkout/). If a separate commerce platform already charged the customer, use the [external enrollment API](/blendx-discovery/enrollment/) instead.

> **Tip**
> Use `fields=light` for card grids and `fields=summary` for a fast detail-page shell. Fetch full content only where it will be rendered.
