Compoid Completions API
The Completions API from Compoid — 1 operation(s) for completions.
The Completions API from Compoid — 1 operation(s) for completions.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/compoid-com:compoid-com-completions-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Compoid Com Completions API
version: 0.1.0
x-refined-note:
- x-original-title differs across the merged source definitions and was not carried
description: 'Operations tagged Completions across 2 of this provider''s published API definitions: compoid-com-openapi.json, compoid-com-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.compoid.com
description: Compoid AI inference host (paths carry the /v1 prefix)
tags:
- name: Completions
paths:
/v1/completions:
post:
summary: Create Completion
operationId: create_completion_v1_completions_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CompletionRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
text/event-stream: {}
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Completions
components:
schemas:
StructuredOutputsParams:
properties:
json:
anyOf:
- type: string
- additionalProperties: true
type: object
- type: 'null'
title: Json
regex:
anyOf:
- type: string
- type: 'null'
title: Regex
choice:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Choice
grammar:
anyOf:
- type: string
- type: 'null'
title: Grammar
json_object:
anyOf:
- type: boolean
- type: 'null'
title: Json Object
disable_any_whitespace:
type: boolean
title: Disable Any Whitespace
default: false
disable_additional_properties:
type: boolean
title: Disable Additional Properties
default: false
whitespace_pattern:
anyOf:
- type: string
- type: 'null'
title: Whitespace Pattern
structural_tag:
anyOf:
- type: string
- type: 'null'
title: Structural Tag
_backend:
anyOf:
- type: string
- type: 'null'
title: Backend
_backend_was_auto:
type: boolean
title: Backend Was Auto
default: false
type: object
title: StructuredOutputsParams
LegacyStructuralTagResponseFormat:
properties:
type:
type: string
const: structural_tag
title: Type
structures:
items:
$ref: '#/components/schemas/LegacyStructuralTag'
type: array
title: Structures
triggers:
items:
type: string
type: array
title: Triggers
additionalProperties: true
type: object
required:
- type
- structures
- triggers
title: LegacyStructuralTagResponseFormat
StreamOptions:
properties:
include_usage:
anyOf:
- type: boolean
- type: 'null'
title: Include Usage
default: false
continuous_usage_stats:
anyOf:
- type: boolean
- type: 'null'
title: Continuous Usage Stats
default: false
additionalProperties: true
type: object
title: StreamOptions
StructuralTagResponseFormat:
properties:
type:
type: string
const: structural_tag
title: Type
format:
title: Format
additionalProperties: true
type: object
required:
- type
- format
title: StructuralTagResponseFormat
CompletionRequest:
properties:
model:
anyOf:
- type: string
- type: 'null'
title: Model
prompt:
anyOf:
- items:
type: integer
minimum: 0.0
type: array
- items:
items:
type: integer
minimum: 0.0
type: array
type: array
- type: string
- items:
type: string
type: array
- type: 'null'
title: Prompt
echo:
anyOf:
- type: boolean
- type: 'null'
title: Echo
default: false
frequency_penalty:
anyOf:
- type: number
- type: 'null'
title: Frequency Penalty
logit_bias:
anyOf:
- additionalProperties:
type: number
type: object
- type: 'null'
title: Logit Bias
logprobs:
anyOf:
- type: integer
- type: 'null'
title: Logprobs
max_tokens:
anyOf:
- type: integer
- type: 'null'
title: Max Tokens
default: 16
n:
type: integer
title: N
default: 1
presence_penalty:
anyOf:
- type: number
- type: 'null'
title: Presence Penalty
seed:
anyOf:
- type: integer
maximum: 9.223372036854776e+18
minimum: -9.223372036854776e+18
- type: 'null'
title: Seed
stop:
anyOf:
- type: string
- items:
type: string
type: array
maxItems: 4
- type: 'null'
title: Stop
default: []
stream:
anyOf:
- type: boolean
- type: 'null'
title: Stream
default: false
stream_options:
anyOf:
- $ref: '#/components/schemas/StreamOptions'
- type: 'null'
suffix:
anyOf:
- type: string
- type: 'null'
title: Suffix
temperature:
anyOf:
- type: number
- type: 'null'
title: Temperature
top_p:
anyOf:
- type: number
- type: 'null'
title: Top P
user:
anyOf:
- type: string
- type: 'null'
title: User
use_beam_search:
type: boolean
title: Use Beam Search
default: false
top_k:
anyOf:
- type: integer
- type: 'null'
title: Top K
min_p:
anyOf:
- type: number
- type: 'null'
title: Min P
repetition_penalty:
anyOf:
- type: number
- type: 'null'
title: Repetition Penalty
watermarking:
anyOf:
- type: boolean
- type: 'null'
title: Watermarking
length_penalty:
type: number
title: Length Penalty
default: 1.0
stop_token_ids:
anyOf:
- items:
type: integer
type: array
- type: 'null'
title: Stop Token Ids
default: []
include_stop_str_in_output:
type: boolean
title: Include Stop Str In Output
default: false
ignore_eos:
type: boolean
title: Ignore Eos
default: false
min_tokens:
type: integer
title: Min Tokens
default: 0
skip_special_tokens:
type: boolean
title: Skip Special Tokens
default: true
spaces_between_special_tokens:
type: boolean
title: Spaces Between Special Tokens
default: true
truncate_prompt_tokens:
anyOf:
- type: integer
maximum: 9.223372036854776e+18
minimum: -1.0
- type: 'null'
title: Truncate Prompt Tokens
truncation_side:
anyOf:
- type: string
enum:
- left
- right
- type: 'null'
title: Truncation Side
description: Which side to truncate from when truncate_prompt_tokens is active. 'right' keeps the first N tokens. 'left' keeps the last N tokens.
allowed_token_ids:
anyOf:
- items:
type: integer
type: array
- type: 'null'
title: Allowed Token Ids
prompt_logprobs:
anyOf:
- type: integer
- type: 'null'
title: Prompt Logprobs
logprob_token_ids:
anyOf:
- items:
type: integer
type: array
- type: 'null'
title: Logprob Token Ids
description: Specific vocab token IDs to return logprobs for at each generated position, in addition to the sampled token. More efficient than requesting the full vocab when only a small fixed label set is needed (e.g. multilabel scoring where each label corresponds to a known vocab id). When set, this explicit token selection takes precedence over the natural top-k selected by `logprobs`. Requires `logprobs` to be set.
bad_words:
items:
type: string
type: array
title: Bad Words
prompt_embeds:
anyOf:
- type: string
contentMediaType: application/octet-stream
- items:
type: string
contentMediaType: application/octet-stream
type: array
- type: 'null'
title: Prompt Embeds
add_special_tokens:
type: boolean
title: Add Special Tokens
description: If true (the default), special tokens (e.g. BOS) will be added to the prompt.
default: true
response_format:
anyOf:
- $ref: '#/components/schemas/ResponseFormat'
- $ref: '#/components/schemas/StructuralTagResponseFormat'
- $ref: '#/components/schemas/LegacyStructuralTagResponseFormat'
- type: 'null'
title: Response Format
description: 'Similar to chat completion, this parameter specifies the format of output. Only {''type'': ''json_object''}, {''type'': ''json_schema''}, {''type'': ''structural_tag''}, or {''type'': ''text'' } is supported.'
structured_outputs:
anyOf:
- $ref: '#/components/schemas/StructuredOutputsParams'
- type: 'null'
description: Additional kwargs for structured outputs
priority:
type: integer
maximum: 9.223372036854776e+18
minimum: -9.223372036854776e+18
title: Priority
description: 'The priority of the request (lower means earlier handling; default: 0). Any priority other than 0 will raise an error if the served model does not use priority scheduling.'
default: 0
request_id:
type: string
title: Request Id
description: The request_id related to this request. If the caller does not set it, a random_uuid will be generated. This id is used through out the inference process and return in response.
session_id:
anyOf:
- type: string
- type: 'null'
title: Session Id
description: Stable session identity shared by related requests. Unlike request_id, this value is expected to remain stable across multiple requests in the same conversation or agent session.
return_tokens_as_token_ids:
anyOf:
- type: boolean
- type: 'null'
title: Return Tokens As Token Ids
description: If specified with 'logprobs', tokens are represented as strings of the form 'token_id:{token_id}' so that tokens that are not JSON-encodable can be identified.
return_token_ids:
anyOf:
- type: boolean
- type: 'null'
title: Return Token Ids
description: If specified, the result will include token IDs alongside the generated text. In streaming mode, prompt_token_ids is included only in the first chunk, and token_ids contains the delta tokens for each chunk. This is useful for debugging or when you need to map generated text back to input tokens.
routed_experts_prompt_start:
type: integer
minimum: 0.0
title: Routed Experts Prompt Start
description: Skip the first N prompt tokens from returned routed-expert data.
default: 0
return_token_offsets:
anyOf:
- type: boolean
- type: 'null'
title: Return Token Offsets
description: If true, return char-level (start, end) offsets for each token relative to the tokenized source string in the `token_offsets` field of the rendered response. Only supported on the `/v1/completions/render` and `/v1/chat/completions/render` endpoints; ignored on regular generation endpoints. Honored only for Fast (Rust-backed) tokenizers; otherwise `token_offsets` is null. For chat requests, offsets are relative to the templated prompt string (after applying the chat template). Multimodal inputs and pre-tokenized inputs always yield null.
default: false
mm_payload:
type: string
enum:
- tensors
- none
title: Mm Payload
description: What the render response's `features` carry for multimodal items. 'tensors' serializes the processed tensors into `kwargs_data` and `mm_metadata`. 'none' sets both to null for callers that need only the token layout and item hashes, such as cache-aware routers. Do not send a 'none' response to `/inference/v1/generate` which reads a null `kwargs_data` as every item being cached. Only supported on the render endpoints. Ignored on regular generation endpoints.
default: tensors
return_mm_kwargs:
anyOf:
- type: boolean
- type: 'null'
title: Return Mm Kwargs
description: 'Deprecated alias: false is the same as `mm_payload=''none''`. Ignored when `mm_payload` is set.'
deprecated: true
cache_salt:
anyOf:
- type: string
maxLength: 1024
minLength: 1
- type: 'null'
title: Cache Salt
description: If specified, the prefix cache will be salted with the provided string to prevent an attacker to guess prompts in multi-user environments. The salt should be random, protected from access by 3rd parties, and long enough to be unpredictable (e.g., 43 characters base64-encoded, corresponding to 256 bit).
kv_transfer_params:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Kv Transfer Params
description: KVTransfer parameters used for disaggregated serving.
ec_transfer_params:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Ec Transfer Params
description: ECTransfer parameters used for encoder-cache disaggregated serving.
vllm_xargs:
anyOf:
- additionalProperties:
anyOf:
- type: string
- type: integer
- type: number
- items:
anyOf:
- type: string
- type: integer
- type: number
type: array
type: object
- type: 'null'
title: Vllm Xargs
description: Additional request parameters with (list of) string or numeric values, used by custom extensions.
repetition_detection:
anyOf:
- $ref: '#/components/schemas/RepetitionDetectionParams'
- type: 'null'
description: Parameters for detecting repetitive N-gram patterns in output tokens. If such repetition is detected, generation will be ended early. LLMs can sometimes generate repetitive, unhelpful token patterns, stopping only when they hit the maximum output length (e.g. 'abcdabcdabcd...' or '\emoji \emoji \emoji ...'). This feature can detect such behavior and terminate early, saving time and tokens.
thinking_token_budget:
anyOf:
- type: integer
- type: 'null'
title: Thinking Token Budget
description: Maximum number of tokens allowed for thinking operations (reasoning models). Non-negative integer sets the limit; -1 means unlimited (treated as unset).
stream_interval:
anyOf:
- type: integer
minimum: 1.0
- type: 'null'
title: Stream Interval
description: Number of tokens to batch into each streamed chunk. Raises the server's `--stream-interval` for this request. Values below the server setting are clamped up to it. The first and last chunks are always sent immediately. Ignored for non-streaming requests.
additionalProperties: true
type: object
title: CompletionRequest
ErrorInfo:
properties:
message:
type: string
title: Message
type:
type: string
title: Type
param:
anyOf:
- type: string
- type: 'null'
title: Param
code:
type: integer
title: Code
additionalProperties: true
type: object
required:
- message
- type
- code
title: ErrorInfo
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
ErrorResponse:
properties:
error:
$ref: '#/components/schemas/ErrorInfo'
additionalProperties: true
type: object
required:
- error
title: ErrorResponse
RepetitionDetectionParams:
properties:
max_pattern_size:
type: integer
title: Max Pattern Size
default: 0
min_pattern_size:
type: integer
title: Min Pattern Size
default: 0
min_count:
type: integer
title: Min Count
default: 0
type: object
title: RepetitionDetectionParams
description: Parameters for detecting repetitive N-gram patterns in output tokens.
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ResponseFormat:
properties:
type:
type: string
enum:
- text
- json_object
- json_schema
title: Type
json_schema:
anyOf:
- $ref: '#/components/schemas/JsonSchemaResponseFormat'
- type: 'null'
additionalProperties: true
type: object
required:
- type
title: ResponseFormat
JsonSchemaResponseFormat:
properties:
name:
type: string
title: Name
description:
anyOf:
- type: string
- type: 'null'
title: Description
schema:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Schema
strict:
anyOf:
- type: boolean
- type: 'null'
title: Strict
additionalProperties: true
type: object
required:
- name
title: JsonSchemaResponseFormat
LegacyStructuralTag:
properties:
begin:
type: string
title: Begin
schema:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Schema
end:
type: string
title: End
additionalProperties: true
type: object
required:
- begin
- end
title: LegacyStructuralTag
x-refined-from:
- compoid-com-openapi.json
- compoid-com-openapi.yml