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

# Quickstart

> Make your first request to the SoluDesks APIs.

This guide shows the minimum path from API key to a working SoluDesks API request. The examples use LearnHub because it is the first documented API family.

## 1. Prepare Your API Key

SoluDesks API requests use an API key in the `Authorization` header.

```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```

For LearnHub endpoints, tenant keys require LearnHub to be enabled for the tenant and must have the permissions needed for each endpoint. Service-provider keys use the same header but operate on the service-provider content scope.

## 2. Make A Request

```bash theme={null}
curl "https://staging.api.soludesks.com/v1/external/learnhub/courses" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
```

Successful responses use a consistent envelope:

```json theme={null}
{
  "status": 200,
  "success": true,
  "code": "OK",
  "message": "Courses fetched successfully.",
  "data": {
    "paginator": {
      "count": 1,
      "page": 1,
      "page_size": 20,
      "total_pages": 1,
      "next": null,
      "next_page_number": null,
      "previous": null,
      "previous_page_number": null
    },
    "results": []
  },
  "errors": []
}
```

## 3. Create Safely

Create requests require `Idempotency-Key`. Reuse the same key only when retrying the exact same create request.

```bash theme={null}
curl "https://staging.api.soludesks.com/v1/external/learnhub/categories" \
  -X POST \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Idempotency-Key: 8f92cc68-b7db-4c3a-8f5b-4f68131a55b0" \
  -H "Content-Type: application/json" \
  -d '{"name":"Customer Success"}'
```

## 4. Build Content In Order

The usual content flow is:

<Steps>
  <Step title="Create categories">
    Use categories to organize courses and improve filtering.
  </Step>

  <Step title="Create a course">
    Create the course shell with title, description, level, and category links.
  </Step>

  <Step title="Create sections">
    Add ordered sections to structure the course.
  </Step>

  <Step title="Create lessons">
    Add text, video, image, document, or quiz lessons under each section.
  </Step>

  <Step title="Attach uploads">
    Use upload sessions for media and document assets before referencing upload IDs in content payloads.
  </Step>
</Steps>
