canonical: https://jentic.com/apis/accela.com/accela-civic-platform-api

# Accela Civic Platform API

Jentic publishes the only available OpenAPI specification for Accela Civic Platform API, keeping it validated and agent-ready. The Accela Civic Platform v4 API powers government-facing applications for permitting, code enforcement, licensing, and service requests, exposing 86 endpoints across records, inspections, contacts, addresses, parcels, documents, payments, and workflow operations. Authentication is OAuth 2.0 against auth.accela.com with the agency scoped via the X-Accela-Agency header. It is used by civic engagement portals, contractor-facing tools, and inspection mobile apps that need to read and update agency case data.

## For AI agents

Read and update Accela civic records, inspections, contacts, parcels, and documents on behalf of a government agency so agents can automate permitting, licensing, and inspection workflows.

## Scope

Does not handle card payment capture, GIS map rendering, or constituent identity verification - use for civic record, inspection, and case management on the Accela Civic Platform only.

## Capabilities

- Search Accela records by address, parcel, or contact and retrieve case detail
- Schedule and update inspections tied to a permit or licensing record
- Attach documents to a record and retrieve existing attachments by record id
- Look up parcel and address data to populate civic application forms
- Manage contacts (applicants, owners, professionals) associated with a record
- Retrieve agency-level settings and reference data such as record types and modules

## Use cases

### Contractor Permit Lookup Portal

A contractor-facing portal queries the Accela Civic Platform API to fetch every active permit tied to a contractor's license, including inspection status and outstanding fees. The portal calls GET /v4/records with a professional id filter, then loads inspection detail per record. This avoids contractors having to log into the agency's Accela Citizen Access (ACA) site for each city they work in.

Example prompt: Call GET /v4/records filtered by a contractor's professional id and aggregate inspection status across all returned records

### Automated Inspection Scheduling from a Field App

Field inspectors and applicants use a mobile app that calls the Accela inspections endpoints to request, reschedule, and update inspection results in the field. POST /v4/inspections schedules a new inspection on a record, and PUT updates result codes and notes. This shortens the loop between site visit and case closure compared to phone-based scheduling.

Example prompt: Schedule a framing inspection on permit record id ABC-2026-001 for next available date and post the resulting inspection id back

### Code Enforcement Case Triage

A code enforcement officer triages incoming complaints by querying GET /v4/records filtered by record type and status, then attaches photographic evidence via the documents endpoint. Search by address allows the officer to surface prior cases on the same property. The result is a faster first-response cycle and a complete audit trail in the agency's Accela environment.

Example prompt: Search Accela records for open code enforcement cases on a given parcel and attach a photo document to the most recent record

### Agent-Driven Civic Records Workflow via Jentic

An AI assistant deployed at a government agency uses the Accela Civic Platform API through Jentic to handle routine constituent questions: looking up a permit's status, finding the next inspection date, or retrieving contact information for a record. The agent searches Jentic for the right operation, the OAuth flow is brokered by Jentic, and the agent never sees the raw access token.

Example prompt: Through Jentic, search 'look up a building permit by address', load GET /v4/records, and return the most recent permit and its inspection status

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /v4/records | Search agency records with filters |
| GET | /v4/records/{ids} | Retrieve specific records by id |
| GET | /v4/inspections | List inspections matching filter criteria |
| GET | /v4/contacts | Search contacts associated with records |
| GET | /v4/addresses | Search addresses in the agency's data |
| GET | /v4/parcels | Search parcels by APN or location |
| POST | /oauth2/token | Obtain an OAuth access token for an agency |

## Key resources

- **Records** — Core case records covering permits, licenses, planning applications, and code enforcement
- **Inspections** — Schedule, update, and retrieve inspections tied to records
- **Addresses and Parcels** — Look up address and parcel data used to populate or filter records
- **Contacts** — Applicants, owners, and licensed professionals attached to records
- **Documents** — Attachments such as site plans, photos, and approvals tied to a record
- **Payments** — Fees and payments associated with permitting and licensing records

## Why Jentic

- **Setup:** Wiring the Accela Civic Platform API by hand means brokering its OAuth flow, minting agency-scoped access tokens, and passing the agency header across dozens of record and inspection endpoints. Through Jentic you install once, import the Accela Civic Platform API from the API Directory, store the OAuth client credentials once, and your agent calls it.
- **Permission scoping:** Accela puts the record id in the URL path (/v4/records/{ids}), so a rule can pin your agent to reading specific records: it can fetch those records, inspections, and contacts and nothing else. You choose the operations it may call, so any write operation is not included unless you add it.
- **Credential handling:** Your Accela OAuth client credentials and agency scopes 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 'look up a building permit by address', and Jentic returns the matching Accela operation with its filter parameters and required headers so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Accela API** — A reduced 30-endpoint cut of the same Accela Civic Platform surface area focused on the most common record operations.
- **Data.gov API** — Federal open data catalog used to enrich civic applications with non-agency datasets.
- **Stripe API** — Process the actual card payment for a civic fee, then write the payment record back into Accela.

## FAQ

### Why is there no official OpenAPI spec for Accela Civic Platform API?

Accela does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Accela Civic Platform API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Accela Civic Platform API use?

OAuth 2.0 with the authorization endpoint at GET /oauth2/authorize and token exchange at POST /oauth2/token. Calls also require an X-Accela-Agency header to scope requests to a specific agency. Through Jentic, the OAuth flow is brokered and tokens are stored encrypted in the vault.

### Can I schedule and update inspections with the Accela Civic Platform API?

Yes. The /v4/inspections endpoints schedule new inspections, retrieve inspection detail, and update results and notes once an inspector completes a site visit. Inspections are linked to a parent record id, so you must look up or create the record first.

### What are the rate limits for the Accela Civic Platform API?

The OpenAPI spec does not document explicit rate limits. Accela publishes per-agency limits in their developer portal that vary by environment (sandbox vs production). Implement exponential backoff on HTTP 429 and treat the limits as agency-specific.

### How do I look up a permit by address through Jentic?

Run pip install jentic, then search 'look up a building permit by address'. Jentic returns the GET /v4/records operation with its address filter parameter. Load the schema, supply the address and X-Accela-Agency header, and execute. Three async calls, no manual OAuth wiring.

### Does the Accela Civic Platform API expose payment processing?

It exposes fee and payment record data tied to permits and licenses, but it does not itself process card payments. For card capture, agencies typically integrate a separate gateway and post the resulting payment record back into Accela via this API.

### Can I limit what my agent is allowed to do with the Accela Civic Platform API?

Yes. Jentic One runs self-hosted, so your own rules decide which Accela operations and credentials the agent may use. Because the record id sits in the URL path (/v4/records/{ids}), you can pin the agent to reading specific records along with their inspections and contacts and nothing else. You pick the exact operations it may call, so any write, such as scheduling an inspection or attaching a document, stays out of reach unless you add it.
