---
title: "Motion Batch"
method: POST
path: "/api/v1/motion/batch"
---

# Motion Batch

`POST /api/v1/motion/batch`

## Request

- Base URL: `https://sibfly.com`
- URL: `https://sibfly.com/api/v1/motion/batch`
- Auth: HTTP bearer

Portfolio/agent batch: one POST, many addresses. Always-200 envelope; each item carries its own
status; ONLY status:ok items are billed (misses, dupes & bad input free). Batch Idempotency-Key replays
for 7d. Max 1000 items. Keyed only. async:true -> 202 {job_id} + poll. since=YYYY-MM-DD -> diff-billing.

## Request body

- object
  - `items` object[], required
    - `id` string
    - `address` string
    - `lat` number
    - `lon` number
    - `since` string
  - `since` string
  - `brief` boolean
  - `max_spend_usd` number
  - `async` boolean

## Response `200`

Per-item results + summary; only covered rows billed; duplicate cells charged once.

- BatchResponse
  - `status` string
  - `summary` object
  - `results` object[]
  - `failed` object[]
  - `credits_remaining_usd` number, nullable
  - `request_id` string

## Other responses

- `401`: Unauthorized
- `402`: Out of credits / spend cap
- `422`: Validation Error

---

[API](https://skmtc.dev/sibfly/apis/sibfly-api.md) · [All operations](https://skmtc.dev/sibfly/apis/sibfly-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sibfly/apis/sibfly-api/revisions/90d2c9643f31?raw)
