> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trycurious.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# The model

> The nouns behind the four endpoints, one line each with a link to its page: element, declaration, arm, user, decision, reward, constraint, event.

Curious has a small vocabulary, and the API uses it exactly. Each noun below has its own page; this one is the map.

| Noun | One line | Page |
| - | - | - |
| **Element** | One piece of content you want optimized, named by you. The unit of optimization. | [Elements](https://docs.trycurious.ai/concepts/elements.md) |
| **Declaration** | Everything a secret-key call says about how an element should be optimized. The first one creates an **experiment**; a later one that changes a declaration-class field starts a new experiment. | [Declarations](https://docs.trycurious.ai/concepts/declarations.md) |
| **Arm** | Content Curious can serve for an element. The **control** is yours; **variants** are generated, or seeded by you. | [Declarations](https://docs.trycurious.ai/concepts/declarations.md#the-control-and-the-arms) |
| **User** | Whoever a decision is made for, identified by your `user_id`, with `identifiers`, `attributes` and per-decision `context`. | [Users, identifiers and attributes](https://docs.trycurious.ai/concepts/users.md) |
| **Decision** | One `decide` call for one user and one element: which arm was served, when, under what context. What rewards attribute to. | [Assignment and stickiness](https://docs.trycurious.ai/concepts/assignment.md) |
| **Reward** | An event that defines success, with a window and a weight. The composite of the rewards is what Curious optimizes. | [Rewards](https://docs.trycurious.ai/concepts/rewards.md) |
| **Constraint** | A guardrail: an event rate a variant may not breach and stay live. | [Constraints](https://docs.trycurious.ai/concepts/constraints.md) |
| **Event** | What a user did, in the past tense, with a value, properties and a timestamp. | [Events and attribution](https://docs.trycurious.ai/concepts/events.md) |
| **Variables and parameters** | Placeholders in content: variables are filled from the user, parameters are facts you fix. | [Variables and parameters](https://docs.trycurious.ai/concepts/variables.md) |
| **Format and requirements** | The structural contract content must satisfy, and the phrase rules every arm must follow. | [Format and requirements](https://docs.trycurious.ai/concepts/format.md) |
| **Approval** | Whether generated variants serve at once or wait for a person. | [Approval](https://docs.trycurious.ai/concepts/approval.md) |
| **Lifecycle** | What `experiment_status` means and how arms and experiments end. | [The experiment lifecycle](https://docs.trycurious.ai/concepts/lifecycle.md) |

## How they fit together

You declare an **element** with a **control** and **rewards**. Curious creates an **experiment**, generates **variants**, and serves one **arm** per **decision** for each **user** you ask about. You report **events**; each attributes to the decision that preceded it within the reward's window. Variants that lose, prove equivalent, or breach a **constraint** are concluded; the rest keep serving while Curious generates new challengers. Change what the variants were generated against (the control, the rewards, the format, the requirements, the parameters, the holdout share) and a new experiment starts; change anything else and the running one adjusts in place.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.