---
title: "Check one frame while filming"
method: POST
path: "/frames/check"
---

# Check one frame while filming

`POST /frames/check`

## Request

- Base URL: `https://api.spacecontext.app/v1`
- URL: `https://api.spacecontext.app/v1/frames/check`
- Auth: HTTP bearer

For apps that capture a space and guide the person filming: is this frame usable, which key locations does it show and, with `space_type`, which area. With `space_type` the key locations are those of that type of space (`GET /capture-profiles`: a car is checked for its VIN plate and dashboard, a boat for its seacocks), and `area` says where the frame was taken; without it, a home's: electrical_panel, water_shutoff, water_heater, smoke_detector, fire_extinguisher, router, heating_control, gas_meter, and no area. A key location is `seen` from a probability of 0.7. The raw image as the body: JPEG, PNG or WebP, at most 2 MB. About half a second; nothing is stored. Free within a daily allowance per account (429 when used up). Test keys get a fixed answer. Needs `scans:write`; a live check needs a card on file, like a live scan. Errors: 400 `VALIDATION_ERROR` (unknown `space_type`), 402 `PAYMENT_METHOD_REQUIRED` (live, no card on file: added in the console, nothing charged), 415 `INVALID_CONTENT_TYPE`, 503 `FRAME_CHECK_UNAVAILABLE`, 503 `PAYMENTS_UNAVAILABLE` (live, where payments are not configured).

## Query parameters

- `space_type` 'apartment' | 'house' | 'office' | 'warehouse' | 'vehicle' | 'boat' | 'camper' | 'shop' | 'garage' | 'appliance' | 'other'

## Response `200`

What the frame shows

- FrameCheck
  - `object` 'frame_check', required
  - `livemode` boolean, required
  - `space_type` 'apartment' | 'house' | 'office' | 'warehouse' | 'vehicle' | 'boat' | 'camper' | 'shop' | 'garage' | 'appliance' | 'other' | 'null', nullable, required: The `space_type` asked, or null.
  - `usable` boolean, required: Sharp, lit and showing the space: worth keeping in a scan.
  - `quality` object, required
    - `score` number, required: Expected level, 0 (unusable) to 3 (excellent).
    - `level` 'unusable' | 'poor' | 'good' | 'excellent', required
  - `shows_space` number, required: Probability that the frame shows the real thing being filmed (a place, a vehicle, a boat, an appliance), not a drawing, document or screen.
  - `area` object, nullable, required: The most likely area of the space (`GET /capture-profiles`), with its probability: show it from about 0.6. Null without `space_type`, for a type with no areas (appliance), or when the frame shows none of them.
    - `value` 'entrance' | 'hallway' | 'living_room' | 'kitchen' | 'dining_room' | 'bedroom' | 'bathroom' | 'laundry' | 'storage' | 'balcony' | 'garden' | 'garage' | 'stairs' | 'exterior' | 'reception' | 'open_space' | 'office_room' | 'meeting_room' | 'server_room' | 'sales_floor' | 'checkout' | 'fitting_room' | 'stockroom' | 'loading_dock' | 'storage_area' | 'mezzanine' | 'cab' | 'living_area' | 'deck' | 'cockpit' | 'cabin' | 'galley' | 'engine_room' | 'exterior_front' | 'exterior_rear' | 'exterior_side' | 'interior_front' | 'interior_rear' | 'trunk' | 'engine_compartment', required
    - `probability` number, required
  - `key_locations` object[], required: Every key location of the type of space, in its order.
    - `kind` 'electrical_panel' | 'water_shutoff' | 'gas_shutoff' | 'water_heater' | 'heating_control' | 'air_conditioning_control' | 'router' | 'fire_extinguisher' | 'smoke_detector' | 'first_aid' | 'emergency_exit' | 'keys' | 'waste_recycling' | 'electricity_meter' | 'gas_meter' | 'water_meter' | 'alarm_panel' | 'spare_supplies' | 'identification_plate' | 'instrument_panel' | 'engine_bay' | 'spare_wheel' | 'safety_equipment' | 'battery_isolator' | 'bilge_pump' | 'seacock' | 'fuel_shutoff' | 'water_tank' | 'sprinkler_valve' | 'control_panel' | 'filter' | 'utility_connections' | 'other', required
    - `probability` number, required
    - `seen` boolean, required: Probability of at least 0.7.

## Other responses

- `400`: Error response
- `401`: Error response
- `402`: Error response
- `403`: Error response
- `413`: Error response
- `415`: Error response
- `429`: Too many requests. Retry after the number of seconds in `Retry-After`.
- `503`: Error response

---

[API](https://skmtc.dev/spacecontext/apis/space-context-api.md) · [All operations](https://skmtc.dev/spacecontext/apis/space-context-api/llms.txt) · [OpenAPI document](https://skmtc.dev/spacecontext/apis/space-context-api/revisions/1dca940259b4?raw)
