canonical: https://jentic.com/apis/inventorybase.com/inventorybase

# InventoryBase API

The InventoryBase API drives the property-inventory and inspection workflows behind InventoryBase, the platform used by letting agents, inspectors, and property managers to record condition reports for residential and commercial properties. It exposes endpoints to create and update properties, schedule and complete inspections, manage rooms (sections) and items, attach photos and PDFs, capture meter readings, and define custom fields that flow through into the rendered report. The API uses OAuth 2.0 (authorization code flow) and is intended for back-office integrations, mobile inspector tooling, and AI agents that automate inspection and reporting tasks.

## For AI agents

Create properties, schedule and complete inspections, manage rooms and items, capture meter readings, and generate inspection PDFs in InventoryBase so an agent can run an end-to-end property-inventory workflow.

## Scope

Does not handle accounting, lease management, or rent collection - use for property inventory, inspection workflow, and inspection report generation only.

## Capabilities

- Create a property and attach contacts and meter readings to it via /properties and `/properties/{id}/meters`
- Schedule an inspection on a property with POST /inspections and progress it through cancel and complete actions
- Manage inspection rooms and items through the v2 endpoints under `/v2/inspections/{id}/rooms`
- Generate a PDF inspection report on demand with POST `/inspections/{id}/pdf` and fetch the resulting metadata
- Define custom fields through /custom-fields so that bespoke data points appear on rendered reports

## Use cases

### Inspector Workflow Automation

Automate the back-office side of an inspector's day so a property manager can spin up the right inspection records before the inspector arrives. The InventoryBase API creates the property if it does not exist via POST /properties, schedules an inspection via POST /inspections, and adds the relevant contacts using `/inspections/{id}/contacts.` After the inspector finishes on site, `/inspections/{id}/complete` and `/inspections/{id}/pdf` produce a final report in one round trip.

Example prompt: Call POST /properties with the new property's address, POST /inspections referencing that property, then POST `/inspections/{id}/contacts` to add the tenant, and finally POST `/inspections/{id}/pdf` once the inspector marks complete.

### Custom Reporting Fields

Add bespoke data points to InventoryBase reports so a managing agent can capture client-specific information without leaving the platform. The API's /custom-fields endpoints define the field once at the tenant level, and the rendered report payload returned by GET `/inspections/{id}/report` includes those fields alongside the standard sections. This avoids maintaining a parallel spreadsheet for client-specific notes.

Example prompt: Call POST /custom-fields to define a 'Smart Meter Serial' field, then verify it appears in the report payload returned by GET `/inspections/{id}/report` after the next inspection.

### Portfolio Inspection Monitoring

Monitor the inspection backlog across a managed portfolio by polling GET /inspections and grouping the results by status. The same call returns the property reference for each inspection so an agent can join against /properties to derive owner-level dashboards. Action history is available via `/inspections/{id}/actions` and `/properties/{id}/actions` to reconstruct who did what.

Example prompt: Call GET /inspections, group results by status, and fetch `/inspections/{id}/actions` for any inspection that has been open longer than 7 days to identify the last activity.

### Agent-Driven Inspection Closure via Jentic

An AI back-office agent uses Jentic to close out completed inspections by calling POST `/inspections/{id}/complete` and POST `/inspections/{id}/pdf`, then writing the resulting report metadata into the agency's CRM. Through Jentic the OAuth tokens are held in the credential vault and never enter the agent context. The agent does not need to ship an InventoryBase SDK or manage refresh tokens.

Example prompt: Use Jentic to search for 'complete an inspection and generate a PDF report', load `/inspections/{id}/complete` and `/inspections/{id}/pdf`, and execute them in sequence for every inspection an inspector marks finished today.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/properties` | Create a property |
| POST | `/inspections` | Schedule a new inspection |
| POST | `/inspections/{id}/complete` | Mark an inspection complete |
| POST | `/inspections/{id}/pdf` | Generate a PDF inspection report |
| GET | `/inspections/{id}/report` | Retrieve the inspection report payload |
| POST | `/v2/inspections/{id}/rooms` | Create a section (room) on an inspection |
| POST | `/v2/inspections/{id}/rooms/{roomId}/items` | Create an item within a room |
| POST | `/custom-fields` | Define a tenant-level custom report field |

## Key resources

- **Properties** — Property records with create, read, update operations under /properties and `/properties/{id}`, plus nested meters and contacts.
- **Inspections** — Inspection records under /inspections, with cancel, complete, report, PDF, contacts, attachments, and actions sub-resources.
- **Sections and Items (v2)** — v2 endpoints under `/v2/inspections/{id}/rooms` manage rooms (sections) and the items within them, including reorder operations.
- **Custom Fields** — Tenant-level custom field definitions under /custom-fields that flow through into rendered inspection reports.
- **Actions** — Read-only audit trail under `/inspections/{id}/actions` and `/properties/{id}/actions.`

## Why Jentic

- **Setup:** Wiring the InventoryBase API by hand means running its OAuth 2.0 authorization-code flow, holding access and refresh tokens, managing token refresh, and coordinating the multi-step create-inspect-complete-report plumbing yourself. Through Jentic you install once, import InventoryBase from the API Directory, store the tokens once, and your agent calls it.
- **Permission scoping:** InventoryBase puts the inspection and room ids in the URL path (`/inspections/{id}/complete`, `/v2/inspections/{id}/rooms/{roomId}/items`), so a rule can pin your agent to one inspection: it can add rooms and items, complete it, and generate its PDF and report, and nothing else. You choose the operations it may call, so property or custom-field creation is not included unless you add them.
- **Credential handling:** Your InventoryBase OAuth access and refresh tokens are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'complete an inspection and generate a PDF report', and Jentic returns the matching `/inspections/{id}/complete` and `/inspections/{id}/pdf` operations with their input schemas so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **AppFolio** — Property management platform with leasing, accounting, and maintenance APIs in addition to inspections.
- **Buildium** — Residential property management API covering leases, accounting, and tasks alongside inspections.
- **Dropbox API v2** — Cloud storage commonly used to archive generated InventoryBase PDF reports.

## FAQ

### What authentication does the InventoryBase API use?

The API uses OAuth 2.0 with the authorization code flow. Authorization happens at https://api.inventorybase.com/oauth/authorize and tokens are exchanged at https://api.inventorybase.com/oauth/token. Through Jentic the OAuth tokens are held in the credential vault and injected at execution time.

### Can I generate a PDF inspection report through the API?

Yes. POST `/inspections/{id}/pdf` triggers a PDF render for a completed inspection, and GET `/inspections/{id}/report/metadata` returns the metadata for the produced report. The base report payload is available at GET `/inspections/{id}/report.`

### What are the rate limits for the InventoryBase API?

The OpenAPI spec does not declare numeric rate limits. Practical throughput depends on your InventoryBase plan and tenant configuration. Contact InventoryBase support for production limits before running large batch jobs.

### How do I close an inspection and produce a report through Jentic?

Install the SDK with `pip install jentic`, search for 'complete an inspection and generate a PDF report', load `/inspections/{id}/complete` and `/inspections/{id}/pdf`, and execute them in order. The returned IDs can be written back to your CRM.

### How do I add a room and items to an inspection?

Use the v2 endpoints. POST `/v2/inspections/{id}/rooms` creates a room (section), and POST `/v2/inspections/{id}/rooms/{roomId}/items` adds items to it. Reorder operations are exposed via PUT on the collection endpoints.

### Does the API expose tenant or owner records?

The spec exposes contacts attached to properties (`/properties/{id}/contacts`) and to inspections (`/inspections/{id}/contacts`), which cover tenant-side and owner-side identifiers. There is no separate top-level tenants resource in this OpenAPI document.

### Can I limit what my agent is allowed to do with the InventoryBase API?

Yes. Because you self-host Jentic One, your own rules decide which InventoryBase operations and credentials the agent may use. Since InventoryBase puts the inspection and room ids in the URL path, such as `/inspections/{id}/complete` and `/v2/inspections/{id}/rooms/{roomId}/items`, a rule can pin the agent to a single inspection so it can add rooms and items, complete it, and generate its PDF and report, and nothing else. You choose the operations it may call, so property creation via POST /properties or custom-field creation via POST /custom-fields is not available to the agent unless you explicitly allow it.
