---
title: "Create Objectives"
method: POST
path: "/v2/objectives"
tags: ["Objectives"]
---

# Create Objectives

`POST /v2/objectives`

This endpoint creates objectives for a PAL.

## Request body

- object
  - `data` object[], required — Array of objectives to create. Objectives provide goal-oriented instructions that help guide conversations toward specific achievements and desired outcomes.
    - `objective_name` string, required — A descriptive name for the objective. This must be a string value without spaces.
    - `objective_prompt` string, required — The detailed prompt that defines what the objective should accomplish.
    - `confirmation_mode` 'auto' | 'manual' — How the objective completion should be confirmed. If set to `manual`, the user will be prompted to confirm the objective completion. If set to `auto`, the LLM will determine whether the objective was completed or not.
    - `output_variables` string[] — Optional list of variables that should be extracted or collected during the objective.
    - `modality` 'verbal' | 'visual' — The communication modality for the objective. If set to `verbal`, the objective will be completed by the user's responses. If set to `visual`, the objective can only be completed by visual / perception cues observed by Raven.
    - `next_conditional_objectives` object — A mapping of objective names to conditions that must be satisfied for that objective to be activated once this objective is completed. Use this to write multiple conditional objectives.
    - `next_required_objective` string — The name of the next required objective that will be activated once the current objective is completed. Use this to write a single next required objective without conditions.
    - `callback_url` string — Optional URL that will receive notifications when the objective is completed.

## Response `200`

Objective created successfully

- object
  - `objectives_id` string — Unique identifier for the created objective
  - `objective_name` string — Name of the objective
  - `status` string — Current status of the objective
  - `created_at` string — ISO 8601 timestamp of when the objective was created

## Other responses

- `400` — Bad Request - Invalid input parameters
- `401` — UNAUTHORIZED

---

[API](https://skmtc.dev/tavus/apis/tavus-developer-api-collection.md) · [All operations](https://skmtc.dev/tavus/apis/tavus-developer-api-collection/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/tavus/tavus-developer-api-collection/revisions/c878e2f6508d/schema)
