Skip to main content
POST

Authorizations

Authorization
string
header
required

Your Abstract API key. Get it with abstract login, pass it as $(abstract token).

Headers

Abstract-Version
enum<string>

The API version your client was written for. 2026-10-27 is the only version. Without this header the request is answered under the newest version; a version the API does not answer is refused with 400 unsupported_api_version before anything runs.

Available options:
2026-10-27
Idempotency-Key
string

Replaces observation_id. If both are sent they must match.

Body

application/json
model
enum<string>
required

A served robot model id. Each model selects its own state, camera and output contract. Check GET /v1/environments/models for current availability.

Available options:
allenai/molmoact2,
microsoft/rho,
perceptron/isaac-0.5,
physical-intelligence/pi0.5,
verne/v0.5,
runway/praxis-1
observation
object
required

The selected model's observation; state and camera fields must match its branch.

action_horizon
integer

Rows to return, up to the selected model's chunk: FLUX 32, Xiaomi 30, and each YAM model's documented count. Default all. The model still computes and bills the whole chunk.

Required range: 1 <= x <= 30
session_id
string | null

The episode to continue. null or absent starts a new episode; the answer carries its id.

Maximum string length: 128
reset
boolean
default:false

true starts a new episode under a new id, even when session_id is set.

expected_step
integer

Expected next session step. A mismatch returns 409 without inference.

Required range: x >= 0
scaling
object

Fixes the chunk's noise seed. MolmoAct2 and π0.5 support it; other models return invalid_scaling.

observation_id
string

Unique logical observation id. Reuse only for an identical retry.

Pattern: ^[A-Za-z0-9._:-]{1,128}$
handoff
boolean
default:false

true is refused today with handoff_unavailable.

Response

End-effector chunks for YAM/Xiaomi, or a native joint chunk for FLUX. Check action_space before interpreting rows.

action_space
enum<string>
required

Selects the action row representation. YAM and Xiaomi return end-effector chunks; FLUX returns a native Franka joint chunk.

Available options:
ee_6d_position,
joint_position
Allowed value: "ee_6d_position"
actions
object
required
status
object
required
session_id
string
required
step
integer
required

The chunk's zero-based index in the episode.

dt
number
required

Seconds between consecutive rows.

next_frames_per_camera
integer
required
usage
object
required
id
string
required

The id of this generation.

timing
object

Server-side durations in milliseconds.

scaling
object

The seeds drawn and the chosen candidate, for seeded requests.

cache
object

Present when the model reports its denoiser step cache.

context
object

Present when the model reports its attention context.

provenance
object

Present on successful FLUX replies. Identifies AI-generated actions and the applied mandatory content-filter version; it is not a safety certification.