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

# Prompt quick start

> Create a prompt, test it in the editor, create a prompt deployment, and run it through the public API

By the end of this guide, you'll have a prompt running in the dashboard and a public cURL snippet you can use to invoke it from your app.

## Prerequisites

* A Fetch Hive workspace
* A workspace API key if you want to run the public cURL example - see [API Keys](../workspace/api-keys)

## Step 1: Create a prompt

Open **Prompts** in the sidebar, then click **Add Prompt**.

Enter a **Name**. If your workspace uses categories, you can also choose a **Category**. Click **Save** to open the editor.

## Step 2: Add your first message

In the editor, find the **Prompt** section and click **Add Message**.

For a minimal prompt, add one short instruction. For example:

```text theme={null}
You are a helpful assistant. Summarize the user's text in one sentence.
```

If you want the prompt to accept dynamic input, include a variable such as `{{text}}`. When your prompt contains variables, you can click **Variables** to open the **Input Values** sheet and provide test values before you run it.

### Using the dashboard copilot to draft a prompt

Instead of writing messages by hand, you can ask the dashboard copilot to draft a prompt for you (for example, "create a prompt that summarizes support tickets"). The copilot writes three messages instead of one:

1. A `system` message describing the assistant's objective, how it should handle edge cases, and how it stays on task.
2. A `user` message with **Instructions**, **Steps**, **Output Format**, **Examples**, and **Notes** sections written in Markdown.
3. When the prompt takes dynamic input, a final `user` message containing only the variable placeholders (for example `COMPANY_NAME:` followed by `{{company_name}}`), so the rest of the prompt never changes between runs.

Keeping the variables in their own trailing message lets Fetch Hive reuse the unchanged part of the prompt across calls, which reduces the input Fetch Hive needs to reprocess for the parts of the model that support prompt caching. You can edit any of these messages afterward like any other prompt message.

## Step 3: Test the prompt in the editor

Click **Run**.

The response appears in the **Model Response** area on the right side of the editor. Use this step to confirm that your prompt behaves the way you expect before you create a prompt deployment.

This in-editor run is for dashboard testing. It is not the same as the public API invoke flow.

## Step 4: Save a named version

Click **Save Version** in the editor header.

Enter a short description of what changed, then save the version. This gives you a named checkpoint you can refer back to later.

## Step 5: Create a deployment

Click **Deploy**, then choose **Create a Deployment**.

Enter a **Deployment key** and save it. This creates the live prompt deployment you can invoke outside the dashboard.

Use **Deploy** and **deployment** language here. In Fetch Hive, this is the step that makes your prompt available as a prompt deployment through the public API.

## Step 6: Copy the public invoke snippet

Open **More** in the sidebar, then click **Get Code**.

Select your **Deployment** and **Variant**. The dialog shows a cURL snippet for `POST /v1/prompt/invoke`.

The dialog provides a cURL snippet here. The **Python** and **TypeScript** tabs are still marked **Coming Soon**.

```bash theme={null}
curl 'https://api.fetchhive.com/v1/prompt/invoke' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  --data-raw '{
    "deployment": "YOUR_DEPLOYMENT_NAME",
    "variant": "YOUR_VARIANT_NAME",
    "inputs": {
      "text": "Fetch Hive helps teams ship AI products faster."
    },
    "streaming": true
  }' \
  --compressed
```

Replace `YOUR_API_KEY`, `YOUR_DEPLOYMENT_NAME`, `YOUR_VARIANT_NAME`, and the `inputs` object with your real values.

## Next steps

* [Prompts](../prompts/overview)
* [Publishing and Versioning](../prompts/publishing-and-versioning)
* [Run with API](../prompts/run-with-api)
