Skip to content
REST API

Create a study set

POST
/sets

Creates a set with 1-2000 terms and returns it as GET /sets/{setId} would.

Required scopes: sets:create

Authorization

AuthorizationBearer <token>

In: header

Header Parameters

Idempotency-Key?string

A client-generated key (1 to 255 visible ASCII characters) that makes this POST safe to retry. A retry with the same key and body replays the original response; the same key with a different body returns 409 idempotency_conflict. Stored for 24 hours.

Match^[\x21-\x7E]{1,255}$
Length1 <= length <= 255

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/sets" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "terms": [      {        "term": "string",        "definition": "string"      }    ]  }'
{  "data": {    "id": "7e6d5c4b-3a2f-4e1d-8c0b-9a8f7e6d5c4b",    "name": "Spanish verbs",    "description": "Irregular preterite forms.",    "subjectId": "5f0c1d2e-3a4b-4c5d-8e6f-7a8b9c0d1e2f",    "termCount": 1,    "createdAt": "2026-01-15T09:30:00.000Z",    "lastUsed": "2026-02-01T12:00:00.000Z",    "updatedAt": "2026-02-01T12:00:00.000Z",    "terms": [      {        "id": "2a1b0c9d-8e7f-4a6b-9c5d-4e3f2a1b0c9d",        "term": "tener (yo)",        "definition": "tuve",        "hints": [          "irregular stem tuv-"        ]      }    ],    "termsTruncated": false  }}