Quick Start

Follow this checklist to create your first API Bot and verify it's working.

Prerequisites

  • A Poe account
  • Your Poe API key from poe.com/api/keys
  • A Chat Completions API compatible endpoint serving your model
  • An API key for authenticating requests to your endpoint

Step 1: Verify API Access

Confirm your Poe API key works by listing your existing bots:

curl -X GET "https://api.poe.com/bots" \
  -H "Authorization: Bearer $POE_API_KEY"

You should receive a 200 response with a bots array (which may be empty if you haven't created any bots yet):

{
  "bots": []
}

If you get a 401 or 404 response, double-check your API key or confirm that your account has been enabled for API Bots access.

Step 2: Create Your Bot

Create a bot by calling POST /bots with your endpoint details:

curl -X POST "https://api.poe.com/bots" \
  -H "Authorization: Bearer $POE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "handle": "MyFirstApiBot",
    "description": "My first bot created via the Bots REST API",
    "api_bot_settings": {
      "model_name": "my-model",
      "base_url": "https://api.example.com/v1",
      "api_key": "'"$MY_API_KEY"'",
      "input_modalities": ["text"],
      "output_modalities": ["text"],
      "pricing": {
        "prompt": "0.000001",
        "completion": "0.000004"
      }
    }
  }'

A successful creation returns status 201:

{
  "create_bot_status": "success"
}

Step 3: Verify Your Bot Was Created

Fetch your bot's details to confirm it was created correctly:

curl -X GET "https://api.poe.com/bots/MyFirstApiBot" \
  -H "Authorization: Bearer $POE_API_KEY"

You should see your bot's configuration in the response:

{
  "handle": "MyFirstApiBot",
  "description": "My first bot created via the Bots REST API",
  "is_private": true,
  "api_bot_settings": {
    "model_name": "my-model",
    "base_url": "https://api.example.com/v1",
    "input_modalities": ["text"],
    "output_modalities": ["text"],
    "pricing": {
      "prompt": "0.000001",
      "completion": "0.000004"
    }
  }
}

You can also verify your bot appears in the full list:

curl -X GET "https://api.poe.com/bots" \
  -H "Authorization: Bearer $POE_API_KEY"

Step 4: Test Your Bot on Poe

Open your bot's page on Poe at https://poe.com/MyFirstApiBot and send it a message. Poe will forward your message to your Chat Completions endpoint and stream back the response.

If the bot doesn't respond or returns an error, check the following:

  • base_url — Is the URL correct and reachable?
  • api_key — Is the API key valid for your endpoint?
  • model_name — Does the model name match what your endpoint expects?

Step 5: Update Your Bot (Optional)

You can update specific fields without affecting the rest of your configuration using PATCH:

curl -X PATCH "https://api.poe.com/bots/MyFirstApiBot" \
  -H "Authorization: Bearer $POE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Updated description for my bot"
  }'

Or replace the entire configuration using PUT:

curl -X PUT "https://api.poe.com/bots/MyFirstApiBot" \
  -H "Authorization: Bearer $POE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Completely new configuration",
    "api_bot_settings": {
      "model_name": "my-newer-model",
      "base_url": "https://api.example.com/v1",
      "api_key": "'"$MY_API_KEY"'",
      "input_modalities": ["text"],
      "output_modalities": ["text"],
      "pricing": {
        "prompt": "0.000002",
        "completion": "0.000008"
      }
    }
  }'

After updating, verify the changes by fetching the bot again:

curl -X GET "https://api.poe.com/bots/MyFirstApiBot" \
  -H "Authorization: Bearer $POE_API_KEY"

Next Steps