Create/list/get + lifecycleReference

Project-based learning with draft creation, intake questions, and generation

Projects API

The Projects API is a staged resource family. You create a project draft first, optionally gather intake questions, then generate the full project artifact and fetch it later by its encrypted public id.

Manage keys
Route-accurate reference

Core routes

3 + 2 helpers

Create, list, get, plus questions and generate.

Best fit

Hands-on learning

Use projects when your product teaches through building and doing, not only reading or quizzing.

Lifecycle style

Staged

Draft -> intake questions -> full generation.

Why projects are staged

Projects are more sensitive to learner context than the other resource families, so the API supports a staged lifecycle. Draft creation establishes the resource boundary, intake questions collect higher-value steering data, and the generate route turns that into a full project artifact.

That staged model also keeps the public contract composable: simple callers can stop at draft creation, while richer products can layer on the questions and generate phases.

Routes

What this page actually points to

5 entries
POSTLive

/api/v1/projects/create

Create a project draft from a learner topic and steering inputs.

Auth

API key via Authorization: Bearer or x-api-key

Maps to

/api/sandbox/projects/create

Notes

The public route returns the draft project id. Supporting `questions` and `generate` routes continue the project lifecycle.

Request fields

promptstringRequired

Primary user request, learning goal, or topic for generation.

contextobject[]Optional

Optional typed context objects. Supported types today are `text`, `doc`, `pdf`, `quickhit`, `roadmap`, `quiz`, `exam`, `project`, and `vidbyte_project`.

project_goalstringOptional

High-level outcome the learner should ship or achieve.

why_this_mattersstringOptional

Motivation, business reason, or learning importance steering.

current_levelstringOptional

Current learner level or baseline capability summary.

depth_preferencestringOptional

Desired depth or scope preference.

guidance_levelstringOptional

Preferred amount of guidance or scaffolding.

Response shape

Public responses use the shared envelope: `success`, `id`, `message`, `data`, `token_stats`, `pricing`, and `error`.

The `id` field is always a public/encrypted identifier boundary, never a raw MongoDB `_id`.

Project create returns the draft project resource boundary. Use that public id for later questions/generate/get calls.

GETLive

/api/v1/projects/list

List projects owned by the authenticated API principal.

Auth

API key via Authorization: Bearer or x-api-key

Maps to

/api/sandbox/projects/list

Notes

Returns draft and generated project resources with public IDs only.

Response shape

Public responses use the shared envelope: `success`, `id`, `message`, `data`, `token_stats`, `pricing`, and `error`.

The `id` field is always a public/encrypted identifier boundary, never a raw MongoDB `_id`.

GETLive

/api/v1/projects/get/{encrypted_id}

Fetch one project by encrypted public id.

Auth

API key via Authorization: Bearer or x-api-key

Maps to

/api/sandbox/projects/get/{encrypted_id}

Notes

This is the stable retrieval route once the project lifecycle is underway.

Request fields

encrypted_idstringRequired

Encrypted public identifier returned by a create or list route.

Response shape

Public responses use the shared envelope: `success`, `id`, `message`, `data`, `token_stats`, `pricing`, and `error`.

The `id` field is always a public/encrypted identifier boundary, never a raw MongoDB `_id`.

POSTLive

/api/v1/projects/questions

Generate intake questions for a draft project before full project generation.

Auth

API key via Authorization: Bearer or x-api-key

Maps to

/api/sandbox/generate_questions

Notes

Treat this as the steering phase between project draft creation and full project generation.

Request fields

promptstringRequired

Primary user request, learning goal, or topic for generation.

project_idstringRequired

Encrypted public id returned by project create.

Response shape

Public responses use the shared envelope: `success`, `id`, `message`, `data`, `token_stats`, `pricing`, and `error`.

The `id` field is always a public/encrypted identifier boundary, never a raw MongoDB `_id`.

The response returns generated intake questions and a questions-context block tied to the draft project.

POSTLive

/api/v1/projects/generate

Generate the full project output for an existing draft project.

Auth

API key via Authorization: Bearer or x-api-key

Maps to

/api/sandbox/generate_project

Notes

Use this after project create and, optionally, after the intake questions phase.

Request fields

promptstringRequired

Primary user request, learning goal, or topic for generation.

project_idstringRequired

Encrypted public id returned by project create.

answersstring[]Optional

Optional answers to the generated intake questions.

Response shape

Public responses use the shared envelope: `success`, `id`, `message`, `data`, `token_stats`, `pricing`, and `error`.

The `id` field is always a public/encrypted identifier boundary, never a raw MongoDB `_id`.

The generated project response reuses the standard public resource envelope and project object.

Request details

Project steering controls

These optional fields help shape the kind of project the learner should receive.

project_goalstringOptional

High-level outcome the learner should produce.

why_this_mattersstringOptional

Why the project matters or what it should optimize for.

current_levelstringOptional

Current learner level or confidence summary.

depth_preferencestringOptional

Desired scope, ambition, or rigor.

guidance_levelstringOptional

How much scaffolding the learner wants.

Related pages