Partner API · v1
A documented REST API for inspection work. Create an inspection when a job is won, assign an inspector, and get the finished client report link back by signed webhook — without anyone re-typing an address.
The full reference is public. No sales call, no NDA, no “request access” form before you can tell whether it fits.
{
"externalReference": "zoho-deal-4471902",
"reportNumber": "INS-2026-0091",
"clientName": "Johan Meyer",
"reportUrl": "https://app.inspectforge.com/public/…"
}Authentication, scopes, every endpoint with a worked request and response, the webhook event catalogue with signature verification, and a complete Zoho CRM walkthrough you can paste and adapt. Read it before you talk to us — you should be able to tell whether this fits without booking a call.
Open the API referenceThe whole integration
That is the entire loop, and the order matters — each step feeds the next. Look up your templates and inspectors once and cache them; everything after that is per job.
Your CRM has a street address, not our identifier. Send the address and get a property back — existing if we have seen it, new if we have not.
POST /api/v1/properties
{
"address": "27 Kloof Road",
"unit": "Unit 12",
"complexName": "Kloof Manor",
"suburb": "Bantry Bay",
"city": "Cape Town",
"country": "South Africa"
}Template, property, inspector and appointment. Pass your own deal ID as externalRef and the call becomes safe to retry — a re-fired workflow returns the existing inspection instead of a duplicate.
POST /api/v1/inspections
{
"templateId": "adac3780-…",
"property": { "id": "64fa6854-…" },
"scheduledAt": "2026-09-10T08:30:00+02:00",
"externalRef": "zoho-deal-4471902"
}Subscribe once to inspection.status.delivered. When the inspector publishes, we call you — signed, and retried if your endpoint blinks.
POST → your endpoint
{
"eventType": "inspection.status.delivered",
"externalReference": "zoho-deal-4471902",
"reportNumber": "INS-2026-0091",
"reportUrl": "https://app.inspectforge.com/public/inspections/414ac3f0…"
}Every callback carries an HMAC-SHA256 signature over the exact bytes sent, so you can verify it came from us before you act on it.
A failed callback is retried three times over roughly half an hour. Ordering is not guaranteed, so a reconciliation endpoint is provided too.
Keys are organisation-scoped and least-privilege. A key that creates inspections cannot read your client list. Rotation leaves the old key valid for 72 hours.
Pass your own job ID as externalRef. Workflow rules re-fire constantly; the same reference returns the existing inspection instead of a duplicate.
An appointment must carry a UTC offset. Send it in any form and it lands on the same local wall clock — a bare timestamp is rejected rather than guessed.
Machine-readable codes with messages that name the field at fault. A record in another organisation returns 404, never 403.
Before you plan around it
Published here rather than discovered halfway through your build. If any of these blocks your integration, tell us — that is how the roadmap gets ordered.
Read the full referenceFindings and line items
You get the report link, not the report body.
Photos and media URLs
Not exposed.
Updating or deleting an inspection
Creates only. Corrections happen in the app.
Agreements and e-signatures
Not exposed.
A payments API
Payment webhooks exist; there is no payments endpoint.
No application process. The API is included on Pro and Business plans — an Owner or Admin creates a key in Settings → Integrations & API, chooses its scopes, and copies it once.
Starter
$39/mo flat
Not included
Pro
$69/mo flat
API included
Business
$99/mo flat
API included
Flat monthly pricing. We never charge per inspection, and the API is not metered.