Skip to main content
POST
/
v1
/
complete
Generate an LLM completion
curl --request POST \
  --url https://api.speko.dev/v1/complete \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "messages": [
    {
      "role": "system",
      "content": "<string>"
    }
  ],
  "intent": {
    "language": "<string>",
    "vertical": "general",
    "optimizeFor": "balanced"
  },
  "temperature": 1,
  "maxTokens": 2,
  "systemPrompt": "<string>",
  "constraints": {
    "allowedProviders": {
      "stt": [
        "<string>"
      ],
      "llm": [
        "<string>"
      ],
      "tts": [
        "<string>"
      ]
    }
  }
}
'
{
  "text": "<string>",
  "provider": "<string>",
  "model": "<string>",
  "usage": {
    "promptTokens": 1,
    "completionTokens": 1
  },
  "failoverCount": 1,
  "scoresRunId": "<string>"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
messages
object[]
required
Minimum array length: 1
intent
object
required
temperature
number
Required range: 0 <= x <= 2
maxTokens
integer
Required range: x >= 1
systemPrompt
string

Forwarded via the canonical system-prompt slot. Don't also prepend the same content as a system message.

constraints
object

Response

Completion

text
string
required
provider
string
required
model
string
required
usage
object
required
failoverCount
integer
required
Required range: x >= 0
scoresRunId
string | null