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

# Chat completion

export const APIKeyHint = () => <Note>Follow the <a href="/docs/en/quickstart">quickstart guide</a> to get your own API Key.</Note>;

<APIKeyHint />

Monica API Platform provides an OpenAI-compatible completion API to multiple models & providers that you can call directly or using the [OpenAI SDK](https://platform.openai.com/docs/libraries).

See [models and pricing](/docs/en/models-and-pricing) for all available models and pricing.

For more information about the request and response format, please refer to the [OpenAI documentation](https://platform.openai.com/docs/api-reference/completions).

## Using the API

<Tabs>
  <Tab title="Using the OpenAI SDK">
    <CodeGroup>
      ```typescript Typescript theme={"system"}
      import OpenAI from "openai"

      const openai = new OpenAI({
        baseURL: "https://openapi.monica.im/v1",
        apiKey: $YOUR_API_KEY,
      })

      async function main() {
        const completion = await openai.chat.completions.create({
          model: "gpt-4o",
          messages: [
            {
              "role": "user",
              "content": [
                {
                  "type": "text",
                  "text": "Explain this image"
                },
                {
                  "type": "image_url",
                  "image_url": {
                    "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
                  }
                }
              ]
            }
          ]
        })

        console.log(completion.choices[0].message)
      }
      main()
      ```

      ```python Python theme={"system"}
      from openai import OpenAI

      client = OpenAI(
        base_url="https://openapi.monica.im/v1",
        api_key="$YOUR_API_KEY",
      )

      completion = client.chat.completions.create(
        model="gpt-4o",
        messages=[
          {
            "role": "user",
            "content": [
              {
                "type": "text",
                "text": "Explain this image"
              },
              {
                "type": "image_url",
                "image_url": {
                  "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
                }
              }
            ]
          }
        ]
      )
      print(completion.choices[0].message.content)
      ```
    </CodeGroup>
  </Tab>

  <Tab title="Using the API directly">
    <CodeGroup>
      ```shell cURL theme={"system"}
      curl https://openapi.monica.im/v1/chat/completions \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $YOUR_API_KEY" \
        -d '{
        "model": "gpt-4o",
        "messages": [
          {
            "role": "user",
            "content": [
              {
                "type": "text",
                "text": "Explain this image"
              },
              {
                "type": "image_url",
                "image_url": {
                  "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
                }
              }
            ]
          }
        ]
      }'
      ```

      ```typescript Typescript theme={"system"}
      fetch("https://openapi.monica.im/v1/chat/completions", {
        method: "POST",
        headers: {
          "Authorization": `Bearer ${YOUR_API_KEY}`,
          "Content-Type": "application/json"
        },
        body: JSON.stringify({
          "model": "gpt-4o",
          "messages": [
            {
              "role": "user",
              "content": [
                {
                  "type": "text",
                  "text": "Explain this image"
                },
                {
                  "type": "image_url",
                  "image_url": {
                    "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
                  }
                }
              ]
            }
          ]
        })
      });
      ```

      ```python Python theme={"system"}
      import requests
      response = requests.post(
        "https://openapi.monica.im/v1/chat/completions",
        headers={
          "Authorization": f"Bearer {YOUR_API_KEY}",
          "Content-Type": "application/json"
        },
        json={
          "model": "gpt-4o",
          "messages": [
            {
              "role": "user",
              "content": [
                {
                  "type": "text",
                  "text": "Explain this image"
                },
                {
                  "type": "image_url",
                  "image_url": {
                    "url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg"
                  }
                }
              ]
            }
          ]
        }
      )
      print(response.json())
      ```
    </CodeGroup>
  </Tab>
</Tabs>

## See also

<Card title="Supported models & pricing" icon="link" href="/docs/en/models-and-pricing" horizontal />
