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

# Quickstart

> Build your first LLM-powered endpoint in 5 minutes

This guide walks you through creating your first Endprompt endpoint—from signup to making your first API call.

## Prerequisites

* An Endprompt account ([sign up free](https://app.endprompt.ai/register))
* That's it!

## Step 1: Create an Endpoint

After logging in, you'll land on your dashboard. Let's create your first endpoint.

<Steps>
  <Step title="Navigate to Endpoints">
    Click **Endpoints** in the sidebar navigation.
  </Step>

  <Step title="Create New Endpoint">
    Click the **Create Endpoint** button in the top right.
  </Step>

  <Step title="Fill in the Details">
    Enter the following:

    * **Name**: `Text Summarizer`
    * **Path**: `/api/v1/summarize`
    * **Category**: `Content` (or create a new one)
    * **Description**: `Summarizes long text into concise bullet points`
  </Step>

  <Step title="Save">
    Click **Create** to save your endpoint.
  </Step>
</Steps>

You'll be taken to the endpoint detail page with multiple tabs.

## Step 2: Define Input Schema

Your endpoint needs to know what data to expect. Click the **Input Schema** tab.

<Steps>
  <Step title="Add a Text Field">
    Click **Add Field** and configure:

    * **Name**: `text`
    * **Type**: `String`
    * **Required**: Yes
    * **Description**: `The text to summarize`
  </Step>

  <Step title="Add a Length Field">
    Click **Add Field** again:

    * **Name**: `max_bullets`
    * **Type**: `Integer`
    * **Required**: No
    * **Default**: `5`
    * **Description**: `Maximum number of bullet points`
  </Step>

  <Step title="Save Schema">
    Click **Save** to store your input schema.
  </Step>
</Steps>

## Step 3: Create a Prompt

Now let's write the prompt that powers your endpoint. Click the **Prompts** tab.

<Steps>
  <Step title="Create New Prompt">
    Click **Create Prompt**.
  </Step>

  <Step title="Configure the Prompt">
    * **Name**: `Bullet Point Summarizer v1`
    * **Model**: Select `gpt-4o` (or your preferred model)
    * **Temperature**: `0.3` (lower = more consistent)
  </Step>

  <Step title="Write the Template">
    Enter this Liquid template:

    ```liquid theme={null}
    You are a professional content summarizer. Your task is to extract the key points from the provided text.

    ## Instructions
    - Read the text carefully
    - Identify the {{ inputs.max_bullets | default: 5 }} most important points
    - Write each point as a concise bullet
    - Use clear, simple language

    ## Text to Summarize
    {{ inputs.text }}

    ## Output Format
    Return a JSON object with a "bullets" array containing the summary points:
    {
      "bullets": ["point 1", "point 2", ...]
    }
    ```
  </Step>

  <Step title="Save the Prompt">
    Click **Save** to create your prompt.
  </Step>
</Steps>

## Step 4: Test Your Prompt

Before going live, let's make sure it works. You should still be on the Prompts tab.

<Steps>
  <Step title="Open Test Runner">
    Click the **Test** button next to your prompt.
  </Step>

  <Step title="Enter Test Data">
    In the auto-generated form, enter:

    * **text**: `Endprompt is a platform for building LLM-powered APIs. It provides versioning, schema validation, and observability. Teams use it to ship faster and iterate safely. The platform supports multiple LLM providers including OpenAI and Anthropic.`
    * **max\_bullets**: `3`
  </Step>

  <Step title="Run Test">
    Click **Run Test** and watch the response appear.
  </Step>
</Steps>

You should see a JSON response with your bullet points!

## Step 5: Go Live

Your prompt is working. Let's make it the default for your endpoint.

<Steps>
  <Step title="Promote to Live">
    In the prompt list, click the **⋯** menu and select **Promote to Live**.
  </Step>

  <Step title="Set as Default">
    Click **Set as Default** to make this the endpoint's default prompt.
  </Step>
</Steps>

## Step 6: Get Your API Key

You need an API key to call your endpoint.

<Steps>
  <Step title="Navigate to API Keys">
    Click **API Keys** in the sidebar.
  </Step>

  <Step title="Create API Key">
    Click **Create API Key**, give it a name like `Development`, and click **Create**.
  </Step>

  <Step title="Copy the Key">
    Copy the displayed key immediately—you won't see it again!
  </Step>
</Steps>

<Warning>
  Store your API key securely. Never commit it to version control or expose it in client-side code.
</Warning>

## Step 7: Call Your API

Now for the exciting part—calling your endpoint!

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://yourcompany.api.endprompt.ai/api/v1/summarize \
    -H "Content-Type: application/json" \
    -H "x-api-key: your-api-key-here" \
    -d '{
      "text": "Your long text to summarize goes here...",
      "max_bullets": 3
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://yourcompany.api.endprompt.ai/api/v1/summarize', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'x-api-key': 'your-api-key-here'
    },
    body: JSON.stringify({
      text: 'Your long text to summarize goes here...',
      max_bullets: 3
    })
  });

  const data = await response.json();
  console.log(data.bullets);
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      'https://yourcompany.api.endprompt.ai/api/v1/summarize',
      headers={
          'Content-Type': 'application/json',
          'x-api-key': 'your-api-key-here'
      },
      json={
          'text': 'Your long text to summarize goes here...',
          'max_bullets': 3
      }
  )

  data = response.json()
  print(data['bullets'])
  ```
</CodeGroup>

<Note>
  Replace `yourcompany` with your actual tenant subdomain, which you can find in your dashboard.
</Note>

## What's Next?

Congratulations! You've built your first LLM-powered API. Here's where to go next:

<CardGroup cols={2}>
  <Card title="Learn Liquid Templating" icon="code" href="/prompts/liquid-templating">
    Master the template syntax for dynamic prompts
  </Card>

  <Card title="Define Output Schemas" icon="brackets-curly" href="/endpoints/output-schema">
    Ensure your API returns consistent JSON structures
  </Card>

  <Card title="Prompt Versioning" icon="code-branch" href="/prompts/versions">
    Learn to version, test, and rollback prompts safely
  </Card>

  <Card title="View Execution Logs" icon="list" href="/guides/logs-and-monitoring">
    Monitor requests, debug issues, and track costs
  </Card>
</CardGroup>
