Accela Professionals API

A professional is a contractor, architect, engineer, developer, or associated organization. The system requires that all professionals be licensed. Similar to reference contacts, licensed professionals can be attached to transactional records as they are assigned to process applications.

Operations 10

GET /v4/professionals/ Get All Professionals #
GET /v4/professionals/{ids} Get Professionals #
DELETE /v4/professionals/{ids} Delete Reference Professionals #
POST /v4/professionals Create Reference Professional #
PUT /v4/professionals/{id} Update Reference Professional #
PUT v4/professionals/{id}/customForms Update Professional Custom Forms #
PUT v4/professionals/{id}/templateForms Update Professional Template Forms #
GET v4/professionals/{id}/customForms/meta Get All Custom Forms Metadata for Professional #
PUT v4/professionals/{id}/customTables Update Professional Custom Tables #
PUT v4/professionals/{id}/templateTables Update Professional Template Tables #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/accela-professionals-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

accela-professionals-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: The Contacts and Professionals APIs enable apps to manage reference contacts and licensed professionals.
  title: Contacts Professionals API
  version: v4
servers:
- url: https://apis.accela.com/
tags:
- name: Professionals
  description: A professional is a contractor, architect, engineer, developer, or associated organization. The system requires that all professionals be licensed. Similar to reference contacts, licensed professionals can be attached to transactional records as they are assigned to process applications.
paths:
  /v4/professionals/:
    get:
      description: 'Gets all professionals in the agency database.


        **API Endpoint**: GET /v4/professionals/


        **Scope**: professionals


        **App Type**: All


        **Authorization Type**: Access token


        **Civic Platform version**: 7.3.2'
      summary: Get All Professionals
      operationId: v4.get.professionals
      tags:
      - Professionals
      parameters:
      - $ref: '#/components/parameters/authHeaderParam'
      - description: Filter by License ID
        in: query
        name: id
        required: false
        schema:
          type: string
      - description: Filter by License Type
        in: query
        name: licenseType
        required: false
        schema:
          type: string
      - description: Filter by License Number
        in: query
        name: licenseNumber
        required: false
        schema:
          type: string
      - description: Filter by License State
        in: query
        name: licenseState
        required: false
        schema:
          type: string
      - description: Filter by Address State
        in: query
        name: state
        required: false
        schema:
          type: string
      - description: Filter by Country
        in: query
        name: country
        required: false
        schema:
          type: string
      - description: Filter by License Contact First Name
        in: query
        name: firstName
        required: false
        schema:
          type: string
      - description: Filter by License Contact Middle Name
        in: query
        name: middleName
        required: false
        schema:
          type: string
      - description: Filter by License Contact Last Name
        in: query
        name: lastName
        required: false
        schema:
          type: string
      - description: Filter by Email
        in: query
        name: email
        required: false
        schema:
          type: string
      - description: Filter by first line of address.
        in: query
        name: addressLine1
        required: false
        schema:
          type: string
      - description: Filter by second line of address.
        in: query
        name: addressLine2
        required: false
        schema:
          type: string
      - description: Filter by third line of address.
        in: query
        name: addressLine3
        required: false
        schema:
          type: string
      - description: Filter by Business License
        in: query
        name: businessLicense
        required: false
        schema:
          type: string
      - description: Filter by Business Name
        in: query
        name: businessName
        required: false
        schema:
          type: string
      - description: Filter by City
        in: query
        name: city
        required: false
        schema:
          type: string
      - description: Filter by License Expiration Date
        in: query
        name: licenseExpirationDate
        required: false
        schema:
          type: string
      - description: Filter by License Issue Date
        in: query
        name: licenseIssueDate
        required: false
        schema:
          type: string
      - description: Filter by License Last Renewal Date
        in: query
        name: lastRenewalDate
        required: false
        schema:
          type: string
      - description: Filter by Title
        in: query
        name: title
        required: false
        schema:
          type: string
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/fields'
      - $ref: '#/components/parameters/lang'
      responses:
        '200':
          description: 'Successful request. Note: A successful request may return no data matching the filter criteria. A successful request may also return messages related to Event Manager Scripting Engine back-end processing.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response_licenseModelArray'
        '400':
          description: Invalid request.
        '401':
          description: Authorization failed.
        '403':
          description: Forbidden request.
        '404':
          description: Requested resource not found.
        '500':
          description: Internal server error or bad connection.
  /v4/professionals/{ids}:
    get:
      description: 'Gets information for one or more specified professionals.


        **API Endpoint**: GET /v4/professionals/{ids}


        **Scope**: professionals


        **App Type**: All


        **Authorization Type**: Access token


        **Civic Platform version**: 7.3.2'
      summary: Get Professionals
      operationId: v4.get.professionals.ids
      tags:
      - Professionals
      parameters:
      - $ref: '#/components/parameters/authHeaderParam'
      - description: Comma-delimited IDs of professionals to fetch.
        in: path
        name: ids
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/fields'
      - $ref: '#/components/parameters/lang'
      responses:
        '200':
          description: 'Successful request. Note: A successful request may return no data matching the filter criteria. A successful request may also return messages related to Event Manager Scripting Engine back-end processing.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response_licenseModelArray'
        '400':
          description: Invalid request.
        '401':
          description: Authorization failed.
        '403':
          description: Forbidden request.
        '404':
          description: Requested resource not found.
        '500':
          description: Internal server error or bad connection.
    delete:
      description: 'Delete Reference Professionals.


        **API Endpoint**: DELETE /v4/professionals/{ids}


        **Scope**: professionals


        **App Type**: All


        **Authorization Type**: Access token


        **Civic Platform version**: 22.2.2'
      summary: Delete Reference Professionals
      operationId: v4.delete.professionals.ids
      tags:
      - Professionals
      parameters:
      - $ref: '#/components/parameters/authHeaderParam'
      - description: The IDs of the licensed professional to delete.(IDs separated by a comma e.g. 181368,181369)
        in: path
        name: ids
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/lang'
      responses:
        '200':
          description: 'Successful request. Note: A successful request may return no data matching the filter criteria. A successful request may also return messages related to Event Manager Scripting Engine back-end processing.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: The HTTP return status.
                  result:
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                        code:
                          type: string
                        message:
                          type: string
                        isSuccess:
                          type: boolean
                    type: array
        '206':
          description: Partial success request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: The HTTP return status.
                  code:
                    type: string
                  message:
                    type: string
                  traceId:
                    type: integer
                  result:
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                        code:
                          type: string
                        message:
                          type: string
                        isSuccess:
                          type: boolean
                    type: array
        '400':
          description: Invalid request.
        '401':
          description: Authorization failed.
        '403':
          description: Forbidden request.
        '404':
          description: Requested resource not found.
        '500':
          description: Internal server error or bad connection.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: The HTTP return status.
                  code:
                    type: string
                  traceId:
                    type: integer
                  result:
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                        code:
                          type: string
                        message:
                          type: string
                        isSuccess:
                          type: boolean
                    type: array
  /v4/professionals:
    post:
      description: 'Create Reference Professional


        **API Endpoint**: POST /v4/professionals


        **Scope**: professionals


        **App Type**: All


        **Authorization Type**: Access token


        **Civic Platform version**: 22.2.2'
      summary: Create Reference Professional
      operationId: v4.post.professionals
      tags:
      - Professionals
      parameters:
      - $ref: '#/components/parameters/authHeaderParam'
      responses:
        '200':
          description: 'Successful request. Note: A successful request may return no data matching the filter criteria. A successful request may also return messages related to Event Manager Scripting Engine back-end processing.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: The HTTP return status.
                  result:
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                    type: array
        '206':
          description: Partial success request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: The HTTP return status.
                  code:
                    type: string
                  message:
                    type: string
                  traceId:
                    type: integer
                  result:
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                        code:
                          type: string
                        message:
                          type: string
                        isSuccess:
                          type: boolean
                    type: array
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: The HTTP return status.
                  code:
                    type: string
                  message:
                    type: string
                  traceId:
                    type: integer
                  result:
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                        message:
                          type: string
                        isSuccess:
                          type: boolean
                    type: array
        '401':
          description: Authorization failed.
        '403':
          description: Forbidden request.
        '404':
          description: Requested resource not found.
        '500':
          description: Internal server error or bad connection.
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: '#/components/schemas/licenseModel'
              type: array
        description: A list of license models to be created
        required: true
  /v4/professionals/{id}:
    put:
      description: 'Update Reference Professional


        **API Endpoint**: PUT /v4/professionals/{id}


        **Scope**: professionals


        **App Type**: All


        **Authorization Type**: Access token


        **Civic Platform version**: 22.2.2'
      summary: Update Reference Professional
      operationId: v4.put.professionals.id
      tags:
      - Professionals
      parameters:
      - $ref: '#/components/parameters/authHeaderParam'
      - description: The ID of the licensed professional to update.
        in: path
        name: id
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: 'Successful request. Note: A successful request may return no data matching the filter criteria. A successful request may also return messages related to Event Manager Scripting Engine back-end processing.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: The HTTP return status.
                  result:
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                    type: array
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: The HTTP return status.
                  code:
                    type: string
                  message:
                    type: string
                  traceId:
                    type: integer
                  result:
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                        message:
                          type: string
                        isSuccess:
                          type: boolean
                    type: array
        '401':
          description: Authorization failed.
        '403':
          description: Forbidden request.
        '404':
          description: Requested resource not found.
        '500':
          description: Internal server error or bad connection.
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: '#/components/schemas/licenseModel'
              type: array
        description: A list of license models to be updated
        required: true
  v4/professionals/{id}/customForms:
    put:
      description: 'Updates the custom forms for the given license professional


        **API Endpoint**: PUT /v4/professionals/{id}/CustomForms


        **Scope**: professionals


        **App Type**: All


        **Authorization Type**: Access token


        **Civic Platform version**: 23.1.0'
      summary: Update Professional Custom Forms
      operationId: v4.put.professionals.id.custom.forms
      tags:
      - Professionals
      parameters:
      - $ref: '#/components/parameters/authHeaderParam'
      - description: The ID of the licensed professional to update.
        in: path
        name: id
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: 'Successful request. Note: A successful request may return no data matching the filter criteria. A successful request may also return messages related to Event Manager Scripting Engine back-end processing.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: The HTTP return status.
                  result:
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                        code:
                          type: string
                        message:
                          type: string
                        isSuccess:
                          type: boolean
                    type: array
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: The HTTP return status.
                  code:
                    type: string
                  message:
                    type: string
                  traceId:
                    type: integer
                  result:
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                        message:
                          type: string
                        isSuccess:
                          type: boolean
                    type: array
        '401':
          description: Authorization failed.
        '403':
          description: Forbidden request.
        '404':
          description: Requested resource not found.
        '500':
          description: Internal server error or bad connection.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: The HTTP return status.
                  code:
                    type: string
                  traceId:
                    type: integer
                  result:
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                        code:
                          type: string
                        message:
                          type: string
                        isSuccess:
                          type: boolean
                    type: array
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: '#/components/schemas/request_professionals_customForms'
              type: array
        description: A list of license models to be updated. The id and at least one of any other parameters are required.
        required: true
  v4/professionals/{id}/templateForms:
    put:
      description: 'Updates the template forms for the given license professional


        **API Endpoint**: PUT /v4/professionals/{id}/templateForms


        **Scope**: professionals


        **App Type**: All


        **Authorization Type**: Access token


        **Civic Platform version**: 23.1.0'
      summary: Update Professional Template Forms
      operationId: v4.put.professionals.id.template.forms
      tags:
      - Professionals
      parameters:
      - $ref: '#/components/parameters/authHeaderParam'
      - description: The ID of the licensed professional to update.
        in: path
        name: id
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: 'Successful request. Note: A successful request may return no data matching the filter criteria. A successful request may also return messages related to Event Manager Scripting Engine back-end processing.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: The HTTP return status.
                  result:
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                        isSuccess:
                          type: boolean
                    type: array
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: The HTTP return status.
                  code:
                    type: string
                  message:
                    type: string
                  traceId:
                    type: integer
        '401':
          description: Authorization failed.
        '403':
          description: Forbidden request.
        '404':
          description: Requested resource not found.
        '500':
          description: Internal server error or bad connection.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: The HTTP return status.
                  code:
                    type: string
                  traceId:
                    type: integer
                  result:
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                        code:
                          type: string
                        message:
                          type: string
                        isSuccess:
                          type: boolean
                    type: array
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: '#/components/schemas/request_professionals_templateForms'
              type: array
        description: A list of license models to be updated. The id and at least one of any other parameters are required.
        required: true
  v4/professionals/{id}/customForms/meta:
    get:
      description: 'Returns the professional customforms meta data


        **API Endpoint**: GET /v4/professionals/{id}/CustomForms/meta


        **Scope**: professionals


        **App Type**: All


        **Authorization Type**: Access token


        **Civic Platform version**: 23.1.0'
      summary: Get All Custom Forms Metadata for Professional
      operationId: v4.get.professionals.id.custom.forms.meta.data
      tags:
      - Professionals
      parameters:
      - $ref: '#/components/parameters/authHeaderParam'
      - description: The ID of the licensed professional to fetch.
        in: path
        name: id
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: 'Successful request. Note: A successful request may return no data matching the filter criteria. A successful request may also return messages related to Event Manager Scripting Engine back-end processing.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response_customFormsMeta'
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: The HTTP return status.
                  code:
                    type: string
                  message:
                    type: string
                  traceId:
                    type: integer
                  result:
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                        message:
                          type: string
                        isSuccess:
                          type: boolean
                    type: array
        '401':
          description: Authorization failed.
        '403':
          description: Forbidden request.
        '404':
          description: Requested resource not found.
        '500':
          description: Internal server error or bad connection.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: The HTTP return status.
                  code:
                    type: string
                  traceId:
                    type: integer
                  result:
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                        code:
                          type: string
                        message:
                          type: string
                        isSuccess:
                          type: boolean
                    type: array
  v4/professionals/{id}/customTables:
    put:
      description: 'Updates the custom tables for the given license professional


        **API Endpoint**: PUT /v4/professionals/{id}/customTables


        **Scope**: professionals


        **App Type**: All


        **Authorization Type**: Access token


        **Civic Platform version**: 23.1.0'
      summary: Update Professional Custom Tables
      operationId: v4.put.professionals.id.custom.tables
      tags:
      - Professionals
      parameters:
      - $ref: '#/components/parameters/authHeaderParam'
      - description: The ID of the licensed professional to update.
        in: path
        name: id
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: 'Successful request. Note: A successful request may return no data matching the filter criteria. A successful request may also return messages related to Event Manager Scripting Engine back-end processing.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: The HTTP return status.
                  result:
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                        code:
                          type: string
                        message:
                          type: string
                        isSuccess:
                          type: boolean
                    type: array
        '400':
          description: Invalid request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: The HTTP return status.
                  code:
                    type: string
                  message:
                    type: string
                  traceId:
                    type: integer
                  result:
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                        code:
                          type: string
                        message:
                          type: string
                        isSuccess:
                          type: boolean
                    type: array
        '401':
          description: Authorization failed.
        '403':
          description: Forbidden request.
        '404':
          description: Requested resource not found.
        '500':
          description: Internal server error or bad connection.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: The HTTP return status.
                  code:
                    type: string
                  traceId:
                    type: integer
                  result:
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                        code:
                          type: string
                        message:
                          type: string
                        isSuccess:
                          type: boolean
                    type: array
      requestBody:
        content:
          application/json:
            schema:
              items:
                $ref: '#/components/schemas/tableModel'
              type: array
        description: A list of license models to be updated
        required: true
  v4/professionals/{id}/templateTables:
    put:
      description: 'Updates the template tables for the given license professional


        **API Endpoint**: PUT /v4/professionals/{id}/templateTables


        **Scope**: professionals


        **App Type**: All


        **Authorization Type**: Access token


        **Civic Platform version**: 23.1.0'
      summary: Update Professional Template Tables
      operationId: v4.put.professionals.id.template.tables
      tags:
      - Professionals
      parameters:
      - $ref: '#/components/parameters/authHeaderParam'
      - description: The ID of the licensed professional to update.
        in: path
        name: id
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: 'Successful request. Note: A successful request may return no data matching the filter criteria. A successful request may also return messages related to Event Manager Scripting Engine back-end processing.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: integer
                    description: The HTTP return status.
                  result:
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                        code:
                          type: string
                        message:
                          type: string
                        isSuccess:
                          type: boolean
                    type: array
     

# --- truncated at 32 KB (48 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/accela/refs/heads/main/openapi/accela-professionals-api-openapi.yml