Live

SnapSkill API Docs

Build apps and integrations on top of the SnapSkill platform. Access course data, user profiles, and more through our RESTful API.

Creator Pro plan required

API access is available on the Creator Pro plan. Generate your API keys from the Settings page in your dashboard.

Base URL: https://api.snapskill.app/api/v1

Authentication

Bearer token auth via API keys generated in your dashboard Settings page. Include the key in the Authorization header.

RESTful JSON API

Standard REST conventions with JSON responses. Pagination via limit/offset query parameters.

Rate Limiting

Default: 60 requests per minute per API key. Rate limit headers are included in every response.

Authentication

All API requests must include your API key in the Authorization header:

Authorization: Bearer sk_live_your_api_key_here

API keys can be created and managed from your dashboard settings. Each key is tied to your user account and plan.

Endpoints

GET
/api/v1/courses
GET
/api/v1/courses/:id
GET
/api/v1/user

Endpoint details

GET
/api/v1/courses

Returns a paginated list of published courses.

Query parameters

categoryFilter by course category (optional)
limitResults per page, 1-100 (default: 20)
offsetNumber of results to skip (default: 0)
GET
/api/v1/courses/:id

Returns a single course with its chapter structure (titles, order, content type). Chapter content is not included.

GET
/api/v1/user

Returns the authenticated user's profile, plan, AI usage for the current month, and enrollment count.

Quick start

example.js
// List published courses
const response = await fetch('https://api.snapskill.app/api/v1/courses?limit=10', {
  headers: {
    'Authorization': 'Bearer sk_live_your_api_key_here',
  },
});

const { data, pagination } = await response.json();
console.log(`Found ${pagination.total} courses`);

// Get a single course with chapter structure
const course = await fetch('https://api.snapskill.app/api/v1/courses/COURSE_ID', {
  headers: {
    'Authorization': 'Bearer sk_live_your_api_key_here',
  },
}).then(r => r.json());

console.log(course.data.title, course.data.chapters.length + ' chapters');

Example response

GET /api/v1/courses
{
  "data": [
    {
      "id": "abc-123",
      "title": "Introduction to Machine Learning",
      "description": "Learn ML fundamentals...",
      "category": "Technology",
      "price": 0,
      "is_free": true,
      "level": "beginner",
      "avg_rating": 4.8,
      "review_count": 42,
      "enrollment_count": 1250,
      "created_at": "2025-01-15T10:30:00Z",
      "creator": { "first_name": "Jane", "last_name": "Doe" }
    }
  ],
  "pagination": { "total": 156, "limit": 10, "offset": 0 }
}