Skip to content
Stepwik

Courses

Create course

Creates a private draft course. Attach labs by slug. Publishing stays in Studio.

POST/v1/eapi/coursesTry it

Authorizations

stepwik-api-keystringheaderrequired

API key secret. Requires scope `courses:write`. Create keys in Studio → Developer → API Keys.

Burst limit: 30 / 15 min per key · Scope: courses:write

Body

bodyobjectbodyrequired

JSON with title, description, level, tags, and optional labs (slug + order).

Request

curl -X POST "https://api.stepwik.com/v1/eapi/courses" \
  -H "stepwik-api-key: stepwik_<id>_<secret>" \
  -H "Content-Type: application/json" \
  -d '{"title":"Stepwik Docs: Getting Started","level":"Beginner","labs":[{"slug":"getting-started-with-stepwik","order":1}]}'

Response

201 · application/json

slugstring

Created course slug

draft_urlstring

Studio URL to open the draft

201

{
  "slug": "stepwik-docs-getting-started-abc123",
  "draft_url": "https://studio.stepwik.com/..."
}