Get started
RapidEye partner integration guide
How the integration fits together and the six calls you need to go live.
RapidEye adds AI video inspections to any task or property-management system. You provision a workspace when you sign a customer, you send us that customer's property roster, your system asks us for a recording link when a task is created, a cleaner records a walkthrough, RapidEye processes the inspection and sends you back a report link.
This guide is written so a coding agent can implement the integration directly.
Roster first. A workspace imports its complete property list before any
recording link is issued for it. A property_id that is not in the roster you
sent is refused, not created.
How it works
sequenceDiagram
participant T as Your task system
participant P as Your backend
participant R as RapidEye
participant W as Cleaner
P->>R: POST /v1/workspaces (workspace_id, name) — once, when you sign a customer
R-->>P: 201 (company_id)
P->>R: POST /v1/roster-imports (complete property snapshot)
R-->>P: 202 (import_id, status_url)
R->>R: Import applies, its active properties switch on
T->>P: Task created
P->>R: GET /v1/recording-link (workspace_id, task_id, property_id)
R-->>P: 200 (recording_url)
P->>T: Save recording_url on the task, display to cleaner
W->>R: Cleaner taps link, records walkthrough
R->>P: POST inspection.recording_completed webhook, signed, checklist results
R->>P: POST inspection.completed webhook, signed, carries report_url
P->>T: Save report_url on the task
Quickstart: the calls you need
Everything below this section is detail for these six steps. Build these and you are live; the rest of the guide is optional.
Once per customer
- Authenticate every request with
Authorization: Bearer rapideye_pk_.... POST /v1/workspaceswith yourworkspace_idand the customer's name. Idempotent: calling it again for the sameworkspace_idreturns the same account.POST /v1/roster-imports?workspace_id=...with a requiredIdempotency-Keyheader and a body carryingcomplete: true,observed_at(when you read the list),total_count(the number of properties in the array) andproperties, the customer's complete list. The import runs in the background: poll the returnedstatus_urluntilstatusisapplied. Arejectedorfailedimport carries the reason inerror; send the corrected roster with a newIdempotency-Key, because a key is only for retrying the identical request. Send the full list again whenever properties are added or removed. A property missing from a later list stops accepting recordings; its history is kept.
An applied import switches the workspace on. When an import reaches
applied, every property it lists as active is activated for inspections and
the account is put into service. You do not need to ask us to switch anything
on. Activation runs just after the import is marked applied, not in the same
instant, so a link request in the first few seconds can still answer
property_not_activated; wait a few seconds and ask again before doing anything
else. Until the first import applies, step 4 answers roster_required, and
GET /v1/workspaces/{id} shows where the account stands. If a property is
still off after that, the refusal tables below say what to do.
Per task
GET /v1/recording-linkwithworkspace_id,task_idandproperty_idwhen a walkthrough is due. Put the returnedrecording_urlon the task for the cleaner.- Receive
inspection.completedat your webhook when the report is ready. Verify the signature, then dedupe onevent_id. If the home has a checklist,inspection.recording_completedarrives first with every item's result: seconds after the walkthrough is sealed (safely saved on our side, usually under a minute after the cleaner taps Done), and at most about 2 minutes after the seal. GET /v1/inspections/{inspection_id}/findings?workspace_id=...to read what we found and open your follow-up task.
To keep a copy of the walkthrough video, call
GET /v1/inspections/{inspection_id}/video?workspace_id=... (the webhook's
video_url) and download the file from the link it returns.
If you miss a webhook, GET /v1/inspections?workspace_id=...&task_id=...
returns the same status and ids.
One walkthrough per task: a cleaner who reopens the link for a task already in progress resumes it.
Conventions
| Item | Value |
|---|---|
| Base URL | https://api.rapideyeinspections.com, bare paths |
| Responses | application/json; date-times ISO 8601 UTC. The one field named timestamp (a checklist item's moment in the video) is a number of seconds, not a date-time |
| Support | [email protected] |
| IDs | workspace_id, task_id, property_id in requests are yours; company_id, inspection_id and rapideye_property_id are ours |