> ## Documentation Index
> Fetch the complete documentation index at: https://abstract-pbc.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Abstract API

> One API key for robot action models and LLMs.

Abstract serves models over HTTPS at `https://api.abstract.inc/v1`.
One API key works for every model.
You send the key as a Bearer token.

> [card] [Quickstart](https://abstract-pbc.mintlify.site/quickstart.md)
>
> Choose a checkpoint, send an observation, and get robot actions.

> [card] [API reference](https://abstract-pbc.mintlify.site/api-reference/introduction.md)
>
> Every endpoint of `api.abstract.inc`, with its request and answer.

## Robot action models

A robot model turns one observation into one chunk of actions.
An observation is the task as text, recent JPEG camera frames, and the state fields required by the selected model.
A chunk contains end-effector poses or joint targets, identified by the answer's `action_space`.
Your controller checks the rows before executing them in order at the model's control rate.

Call a robot model with `POST /v1/get_action`, one observation per request. A `session_id` ties the requests of one episode together.

> [card] [MolmoAct2](https://abstract-pbc.mintlify.site/robots/models.md#allenai/molmoact2)
>
> `allenai/molmoact2`
>
> Ai2's MolmoAct2. One frame per camera, no state between requests.

> [card] [Rho](https://abstract-pbc.mintlify.site/robots/models.md#microsoft/rho)
>
> `microsoft/rho`
>
> Microsoft's Rho-YAM-Box. Trained on end-effector poses.

> [card] [Isaac 0.5](https://abstract-pbc.mintlify.site/robots/models.md#perceptron/isaac-0-5)
>
> `perceptron/isaac-0.5`
>
> Perceptron's Isaac 0.5. One frame per camera, no state between requests.

> [card] [π0.5](https://abstract-pbc.mintlify.site/robots/models.md#physical-intelligence/pi0-5)
>
> `physical-intelligence/pi0.5`
>
> A community fine-tune of π0.5. One frame per camera, no state between requests.

> [card] [Verne V0.5](https://abstract-pbc.mintlify.site/robots/models.md#verne/v0-5)
>
> `verne/v0.5`
>
> Verne's pretrained base checkpoint, not tuned to any robot. Keeps a memory of the episode.

> [card] [Praxis-1](https://abstract-pbc.mintlify.site/robots/models.md#runway/praxis-1)
>
> `runway/praxis-1`
>
> Runway's video-action policy for the bimanual YAM. Reads the frames of the chunk just run.

> [card] [Xiaomi Robotics 1](https://abstract-pbc.mintlify.site/robots/models.md#xiaomi/xiaomi-robotics-1)
>
> `xiaomi/xiaomi-robotics-1`
>
> The RoboDojo fine-tune for two ARX X5 arms. Takes measured joints and world-frame poses;
> returns world-frame end-effector targets.

> [card] [FLUX 3 Action](https://abstract-pbc.mintlify.site/robots/models.md#black-forest-labs/flux-3-action)
>
> `black-forest-labs/flux-3-action`
>
> The native Franka DROID checkpoint. Takes seven joint angles and one gripper state;
> returns joint targets and gripper predictions.

A robot model id has the form `origin/model`.
`origin` names who made the weights.
`model` names the weights.

The YAM checkpoints take and answer end-effector poses: where each gripper is, and where it should go next.
Your controller turns each pose into joint angles with inverse kinematics.
These checkpoints were trained on two YAM arms, with one overhead camera and one camera on each wrist, and are untested on other arms.
Xiaomi and FLUX use their own native robots and camera layouts.
`GET /v1/environments/models` lists the robot models you can call. Each has its own
[state, camera and action contract](https://abstract-pbc.mintlify.site/robots/models.md).

> [!WARNING]
>
> Abstract returns numbers. It does not move your robot. Check every action against your robot's
> limits before you execute it.

## LLMs

The LLMs speak the OpenAI Chat Completions API at `POST /v1/chat/completions`.
Each LLM returns its answer in the HTTP response, or as server-sent events with `stream: true`.

| Model id | Weights |
| - | - |
| `kimi-k3.1-pro` | Kimi K3.1 Pro |
| `glm-5.3` | GLM-5.3 |
| `glm-5.3-flash` | GLM-5.3-Flash |
| `deepseek-v4.1-flash` | DeepSeek V4.1 Flash |

## Accounts and spend

Every account has a hard monthly spend limit.
Each request reserves its maximum cost against that limit before it runs.
The request then settles from the usage its answer reports.
A request that would cross the limit is refused with `spend_limit_exceeded`.
Inference also requires enough available API credit to cover the reservation.
A saved payment method alone does not fund usage. Buy credit in
[Platform Billing](https://platform.abstract.inc/billing).
Accounts granted a credit exemption still have a hard monthly spend limit.

> [!NOTE]
>
> Do not send sensitive data until retention controls and their defaults are documented.

## Explore

> [card] [Robot models](https://abstract-pbc.mintlify.site/robots/models.md)
>
> Cameras, state, and action shapes for each model.

> [card] [Robot episodes](https://abstract-pbc.mintlify.site/robots/chat-completions.md)
>
> Send observations and run an episode with a `session_id`.

> [card] [Robot action API](https://abstract-pbc.mintlify.site/robots/get-action.md)
>
> `get_action` and `end_session`, with each model's state and action contract.

> [card] [LLM chat completions](https://abstract-pbc.mintlify.site/llm/chat-completions.md)
>
> Call the LLM models with the OpenAI SDK.

> [card] [Errors and limits](https://abstract-pbc.mintlify.site/errors.md)
>
> Every error code and what to do about it.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.