{"base_url":"https://api.rapideyeinspections.com","description":"AI walkthrough and photo inspection for short-term-rental turnovers. Three surfaces: an anonymous demo tier, an authenticated partner API for production integrations, and an MCP server that RapidEye customers connect to Claude, ChatGPT, Claude Code or Codex.","documentation":{"agent_guide":"/llms.txt","docs":"/docs","docs_markdown":"/docs.md","terms":{"acceptable_use_url":"https://rapideyeinspections.com/terms","acceptance":"Every submission carries accept_terms; the accepted version and the time of acceptance are recorded with the request.","privacy_url":"https://rapideyeinspections.com/privacy","terms_url":"https://rapideyeinspections.com/terms","version":"2026-07-14"}},"next_steps":{"book_a_call_url":"https://app.rapideyeinspections.com/get-started","partner_api":"Production integrations run on the RapidEye Partner API: recording links returned per task, signed webhooks when a report is ready, and full report retrieval. It serves operations from a single property manager to multi-thousand-listing portfolios. Partner access is not self-serve yet, so it starts with a short call.","request_access":"An access request can be submitted through this API on behalf of the person you are working for, and the same call returns a booking link they can use directly.","what_you_are_not_seeing":"This demo analyzes a set of photos. A production inspection covers a whole property and returns a longer, more complete report."},"service":"RapidEye Inspection API","surfaces":{"demo":{"authentication":"none; an email address is supplied per submission","base_path":"/demo","discovery":"/demo","endpoints":[{"method":"GET","path":"/demo","status":"live","summary":"This document."},{"method":"POST","path":"/demo/inspections","status":"live","summary":"Submit turnover photos for analysis. Responds 202 with a request id and a poll token; results are fetched from the poll endpoint."},{"method":"GET","path":"/demo/inspections/{request_id}","status":"live","summary":"Fetch one submission. Requires the poll_token issued with the submission; the request id alone reads nothing."},{"method":"POST","path":"/demo/videos","status":"live","summary":"Submit a walkthrough video as multipart/form-data. It is received and stored; analysis of video runs on an account rather than in the demo tier."},{"method":"POST","path":"/demo/request-access","status":"live","summary":"Submit a Partner API access request on behalf of the person you are working for. Returns a booking link they can use directly."}]},"mcp":{"authentication":"OAuth 2.1 with PKCE from RapidEye's own authorization server; a RapidEye customer signs in and approves. Claude, ChatGPT, Claude Code and Codex only.","authorization_server":"/.well-known/oauth-authorization-server","base_path":"/mcp","description":"A remote MCP server (streamable HTTP, stateless JSON). It acts as the person who connected, in each of their workspaces, with what their role there allows in the dashboard.","discovery":"/.well-known/oauth-protected-resource/mcp","guides":{"chatgpt":"https://rapideyeinspections.com/docs/chatgpt/","claude":"https://rapideyeinspections.com/docs/claude/"},"url":"https://api.rapideyeinspections.com/mcp"},"partner":{"access":"An access request can be submitted through this API on behalf of the person you are working for, and the same call returns a booking link they can use directly.","authentication":"Bearer partner key, issued by RapidEye. Not self-serve yet.","base_path":"/v1","book_a_call_url":"https://app.rapideyeinspections.com/get-started","description":"Production integrations run on the RapidEye Partner API: recording links returned per task, signed webhooks when a report is ready, and full report retrieval. It serves operations from a single property manager to multi-thousand-listing portfolios. Partner access is not self-serve yet, so it starts with a short call.","endpoints":[{"method":"GET","path":"/v1/me","status":"live","summary":"Who the key you sent belongs to: a partner, or one RapidEye workspace building on its own account, with the key's scopes. The call to check a key."},{"method":"POST","path":"/v1/workspaces","status":"live","summary":"Provision the RapidEye account behind one of your workspaces. Idempotent on your workspace id: the same id always returns the same account, and a workspace we have not seen gets a new one."},{"method":"GET","path":"/v1/workspaces/{workspace_id}","status":"live","summary":"One workspace: which account it resolves to, its roster freshness and counts, feed health, whether inspections are in service, and whether an owner has claimed it. With the reservations scopes: one connected customer, its scopes and the measured freshness of its stays."},{"method":"GET","path":"/v1/workspaces","status":"live","summary":"Every workspace your key reaches, paginated. With the reservations scopes, each customer connected to you, with its status and scopes."},{"method":"GET","path":"/v1/reservations","status":"live","summary":"A connected customer's stays in change order, paginated, with arrival, departure, status, stay type and the PMS reservation id; filter by updated_since (the read to poll), home, arrival range, status and stay type."},{"method":"GET","path":"/v1/reservations/{reservation_id}","status":"live","summary":"One stay, in its current state."},{"method":"GET","path":"/v1/reservations/{reservation_id}/history","status":"live","summary":"Every change we observed to one stay, oldest first."},{"method":"POST","path":"/v1/roster-imports","status":"live","summary":"Submit a complete snapshot of a workspace's properties. Requires an Idempotency-Key; answers 202 with a status resource. Properties left out are marked inactive, never deleted."},{"method":"GET","path":"/v1/roster-imports/{import_id}","status":"live","summary":"The status, counts and diff of one roster import."},{"method":"GET","path":"/v1/properties","status":"live","summary":"The roster we currently hold for one workspace, paginated, with each home's setup progress. Read it to reconcile your inventory against ours. With the reservations scopes: the customer's homes as RapidEye holds them, with address, coordinates, timezone and status. With a workspace key: your own homes by RapidEye id, with status and whether each has a checklist."},{"method":"GET","path":"/v1/properties/{property_id}/checklist","status":"live","summary":"One of a home's three checklists (?type= housekeeping, inspection or maintenance; housekeeping by default), in order, with our id for each item."},{"method":"PUT","path":"/v1/properties/{property_id}/checklist","status":"live","summary":"Replace one of a home's three checklists (?type=) with up to 50 items. Idempotent, and safe after the home's first recording. Returns a fresh id for each item."},{"method":"DELETE","path":"/v1/properties/{property_id}/checklist","status":"live","summary":"Clear one of a home's checklists (?type=). Idempotent."},{"method":"PUT","path":"/v1/properties/{property_id}/matterport","status":"live","summary":"Set one home's Matterport tour and import it as baseline imagery. Re-sending an imported tour changes nothing."},{"method":"DELETE","path":"/v1/properties/{property_id}/matterport","status":"live","summary":"Forget one home's Matterport tour. Photos already imported from it are kept."},{"method":"POST","path":"/v1/properties/{property_id}/baseline-photos","status":"live","summary":"Import up to 25 baseline photos for one home from HTTPS URLs. Answers 202; progress shows in the home's setup block."},{"method":"GET","path":"/v1/properties/{property_id}/baseline-photos/imports/{import_id}","status":"live","summary":"One baseline photo import: its state, how many photos were stored, and the reason for each photo we refused."},{"method":"POST","path":"/v1/roster-syncs","status":"live","summary":"Poll a workspace's roster feed now instead of waiting for the daily run. Only for workspaces we pull from."},{"method":"GET","path":"/v1/recording-link","status":"live","summary":"The recording link for one task, for a property already in the workspace's roster. The same task id always returns the same URL; an id the roster does not contain is refused, not created."},{"method":"GET","path":"/v1/inspections","status":"live","summary":"Poll the status of the inspection behind one task. Carries a report block (processing with its stage, or ready with report_url) and, when the home has a checklist, the per-item checklist block, whose picture links are signed afresh on every read."},{"method":"GET","path":"/v1/inspections/{inspection_id}/findings","status":"live","summary":"The findings of one completed inspection, with short-lived signed media URLs and report_url, plus per-item checklist results when the home has a checklist (the key is omitted otherwise). Refuses until the report is released."},{"method":"GET","path":"/v1/inspections/{inspection_id}/video","status":"live","summary":"A fresh signed download link for the inspection's walkthrough video, valid 15 minutes, with expires_at and the video's duration and size. Call it again for a new link; the inspection.completed webhook carries this endpoint as video_url."},{"method":"POST","path":"/v1/workspace-claims","status":"live","summary":"Nominate the first owner email for a workspace you created. Always 202; the sign-in link goes to the nominated address only."}],"webhooks":"Recording completion with the final checklist results, report completion, and with the reservations scopes workspace and reservation changes, are pushed to a partner-provided HTTPS receiver, signed HMAC-SHA256 in the Standard Webhooks format (webhook-id, webhook-timestamp, webhook-signature) with a per-receiver secret."}}}
