---
title: "Create a message"
method: POST
path: "/v1/messages"
tags: ["Anthropic Messages"]
---

# Create a message

`POST /v1/messages`

Creates a message using the Anthropic Messages API format. Set stream: true for server-sent events.

## Headers

- `X-Free-Tier` 'true'

## Request body

- AnthropicMessagesRequest
  - `model` string, required — Model id (e.g. abliterated-model).
  - `messages` AnthropicMessage[], required — Non-empty array of message objects. Each has role (user or assistant) and content (string or content-block array).
    - `role` 'user' | 'assistant', required
    - `content` union, required — Text string or array of content blocks (text, image).
      - string
      - AnthropicContentBlock[]
        - union
          - object
            - `type` 'text', required
            - `text` string, required
          - object
            - `type` 'image', required
            - `source` object, required
              - …
  - `max_tokens` integer — Maximum number of tokens to generate.
  - `temperature` number — Sampling temperature.
  - `stream` boolean — Enable Server-Sent Events streaming.
  - `system` union — System prompt. Can be a string or an array of content blocks.
    - string
    - object[]
  - `flagged_categories` string[] — Optional moderation categories to block. Supported: harassment, hate, illicit, sexual. Self-harm and sexual/minors are always blocked.

## Response `200`

Message response

- AnthropicMessagesResponse
  - `id` string, required — Unique message id (e.g. msg_01XFDUDYJgAACzvnptvVoYEL).
  - `type` 'message', required
  - `role` 'assistant', required
  - `model` string, required
  - `content` AnthropicContentBlock[], required
    - union
      - object
        - `type` 'text', required
        - `text` string, required
      - object
        - `type` 'image', required
        - `source` object, required
          - `type` 'base64', required
          - `media_type` string, required
          - `data` string, required
  - `stop_reason` string, nullable — Reason the model stopped generating (e.g. end_turn, max_tokens).
  - `stop_sequence` string, nullable
  - `usage` AnthropicUsage
    - `input_tokens` integer — Number of input tokens.
    - `output_tokens` integer — Number of output tokens.
  - `remaining_credits` integer, nullable — User's remaining credit balance after this call.
  - `estimated_credits_used` integer — Credits consumed by this call.
  - `estimated_cost_usd` number — Estimated cost in USD.

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `402` — Insufficient credits
- `429` — Rate limited
- `502` — Upstream unavailable
- `504` — Gateway timeout

---

[API](https://skmtc.net/abliteration/apis/abliteration-ai-api.md) · [All operations](https://skmtc.net/abliteration/apis/abliteration-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/abliteration/abliteration-ai-api/revisions/3a359f370787/schema)
