---
title: "Create Quest Entry"
method: POST
path: "/v1/quests"
tags: ["quests"]
---

# Create Quest Entry

`POST /v1/quests`

## Request

- Base URL: `https://api.myarchivist.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.myarchivist.ai/v1/quests`
- Auth: HTTP bearer

## Headers

- `x-api-key` string, nullable

## Request body

- QuestCreate
  - `campaign_id` string, required
  - `quest_name` string, required
  - `quest_giver` string, nullable
  - `quest_category` 'main' | 'side' | 'faction' | 'personal' | 'n/a'
  - `status` 'planned' | 'in-progress' | 'blocked' | 'failed' | 'done' | 'n/a'
  - `success_definition` string, nullable
  - `failure_conditions` string, nullable
  - `next_action` string, nullable
  - `resolution` string, nullable
  - `objectives` QuestObjectiveInput[]
    - `text` string, required
    - `status` 'pending' | 'in-progress' | 'completed' | 'failed' | 'blocked'
  - `progress_log` string[]
  - `related_characters` string[]
  - `related_factions` string[]
  - `related_locations` string[]
  - `related_items` string[]
  - `related_entity_refs` QuestRelatedEntityRefInput[]
    - `entity_type` 'character' | 'faction' | 'location' | 'item', required
    - `entity_id` string, nullable
    - `entity_name_snapshot` string, nullable
    - `label` string, nullable

## Response `201`

Successful Response

- QuestRead
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, nullable
  - `id` string, required
  - `campaign_id` string, required
  - `order_index` integer, required
  - `quest_name` string, required
  - `quest_giver` string, nullable
  - `quest_giver_id` string, nullable
  - `quest_category` 'main' | 'side' | 'faction' | 'personal' | 'n/a', required
  - `status` 'planned' | 'in-progress' | 'blocked' | 'failed' | 'done' | 'n/a', required
  - `success_definition` string, nullable
  - `failure_conditions` string, nullable
  - `next_action` string, nullable
  - `resolution` string, nullable
  - `objectives` QuestObjectiveRead[]
    - `id` string, required
    - `text` string, required
    - `status` 'pending' | 'in-progress' | 'completed' | 'failed' | 'blocked'
    - `order` integer, required
  - `objective_count` integer
  - `completed_objective_count` integer
  - `progress_entry_count` integer
  - `progress_log` string[]
  - `progress_log_entries` QuestProgressEntryRead[]
    - `id` string, required
    - `text` string, required
    - `order` integer, required
    - `session_id` string, nullable
    - `session_number` integer, nullable
    - `session_title` string, nullable
    - `session_date` string, date-time, nullable
  - `related_characters` string[]
  - `related_factions` string[]
  - `related_locations` string[]
  - `related_items` string[]
  - `related_entity_refs` QuestRelatedEntityRefRead[]
    - `id` string, required
    - `entity_type` 'character' | 'faction' | 'location' | 'item', required
    - `entity_id` string, nullable
    - `entity_name_snapshot` string, nullable
    - `label` string, nullable
    - `order` integer, required
  - `first_session` QuestSessionRef
    - `id` string, required
    - `number` integer, nullable
    - `title` string, nullable
    - `session_date` string, date-time, nullable
  - `last_session` QuestSessionRef
    - `id` string, required
    - `number` integer, nullable
    - `title` string, nullable
    - `session_date` string, date-time, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/myarchivist/apis/archivist-public-api.md) · [All operations](https://skmtc.dev/myarchivist/apis/archivist-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/myarchivist/apis/archivist-public-api/revisions/3ea6ca7efc56?raw)
