Accela Assets/Documents API

Document collaterals can be attached to assets.

Operations 3

GET /v4/assets/{assetId}/documents Get All Asset Documents #
POST /v4/assets/{assetId}/documents Create Asset Documents #
DELETE /v4/assets/{assetId}/documents/{documentIds} Delete Asset Documents #

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-assets-documents-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-assets-documents-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: The Assets and Assessments APIs enable apps to manage assets and their related condition assessments.
  title: Assets and Assessments Assets/Documents API
  version: v4
servers:
- url: https://apis.accela.com/
tags:
- name: Assets/Documents
  description: Document collaterals can be attached to assets.
paths:
  /v4/assets/{assetId}/documents:
    get:
      description: 'Returns all documents for a given asset.


        **API Endpoint**: GET /v4/assets/{assetId}/documents


        **Scope**: assets


        **App Type**: Agency


        **Authorization Type**: Access token


        **Civic Platform version**: 9.0.0'
      summary: Get All Asset Documents
      operationId: v4.get.assets.assetId.documents
      tags:
      - Assets/Documents
      parameters:
      - $ref: '#/components/parameters/authHeaderParam'
      - $ref: '#/components/parameters/assetIdPathParam'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $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_documentModelArray'
        '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.
    post:
      description: 'Creates one or more document attachments for the given asset. To specify the documents to be attached, use the HTTP header "Content-Type:multipart/form-data" and form-data for "uploadedFile" and "fileInfo". Note that the "fileInfo" is a string containing an array of file attributes. Use "fileInfo" to specify one or more documents to be attached. For example:


        Content - Disposition: form - data;name = "uploadedFile"; filename="summaryReport.pdf"


        Content - Disposition: form - data;name = "fileInfo"


        [

        {

        "serviceProviderCode": "BPTDEV",

        "fileName": "CXA12-pipe.png",

        "type": "image/png",

        "description": "Inspected pipe"

        }

        ]


        **API Endpoint**: POST /v4/assets/{assetId}/documents


        **Scope**: assets


        **App Type**: Agency


        **Authorization Type**: Access token


        **Civic Platform version**: 9.0.0'
      summary: Create Asset Documents
      operationId: v4.post.assets.assetId.documents
      tags:
      - Assets/Documents
      parameters:
      - $ref: '#/components/parameters/authHeaderParam'
      - $ref: '#/components/parameters/assetIdPathParam'
      - description: The document group.
        in: query
        name: group
        schema:
          type: string
      - description: The document category.
        in: query
        name: category
        schema:
          type: string
      - description: The EDMS Adapter User ID. It's required for user level authentication
        in: query
        name: userId
        schema:
          type: string
      - description: The EMDS Adapter password. It's required for user level authentication
        in: query
        name: password
        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:
                $ref: '#/components/schemas/response_resultModelArray'
        '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.
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                uploadedFile:
                  type: string
                  description: Specify the filename parameter with the file to be uploaded. See example for details.
                  format: binary
                fileInfo:
                  type: string
                  description: A string array containing the file metadata for each specified filename. See example for details.
              required:
              - uploadedFile
              - fileInfo
  /v4/assets/{assetId}/documents/{documentIds}:
    delete:
      description: 'Deletes one or more documents for the given asset.


        **API Endpoint**: DELETE /v4/assets/{assetId}/documents/{documentIds}


        **Scope**: assets


        **App Type**: Agency


        **Authorization Type**: Access token


        **Civic Platform version**: 9.0.0'
      summary: Delete Asset Documents
      operationId: v4.delete.assets.assetId.documents.documentIds
      tags:
      - Assets/Documents
      parameters:
      - $ref: '#/components/parameters/authHeaderParam'
      - $ref: '#/components/parameters/assetIdPathParam'
      - description: Comma-delimited IDs of documents to be deleted.
        in: path
        name: documentIds
        required: true
        schema:
          type: string
      - description: The standard EDMS Adapter userid. It's required for user level authentication
        in: query
        name: userId
        schema:
          type: string
      - description: The standard EDMS Adapter password. It's required for user level authentication
        in: query
        name: password
        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:
                $ref: '#/components/schemas/response_resultModelArray'
        '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.
components:
  parameters:
    lang:
      description: Language parameter to support I18N. Default language is en_US.
      in: query
      name: lang
      required: false
      schema:
        type: string
    assetIdPathParam:
      description: The ID of the asset to fetch. See [Get All Assets](./api-assets-assessments.html#operation/v4.get.assets).
      in: path
      name: assetId
      required: true
      schema:
        type: string
    limit:
      description: Search result size limit.
      in: query
      name: limit
      required: false
      schema:
        type: integer
        format: int64
    fields:
      description: Comma-delimited names of fields to be returned in the response. Note - Field names are case-sensitive and only first-level fields are supported. Invalid field names are ignored.
      in: query
      name: fields
      required: false
      schema:
        type: string
    offset:
      description: The offset position of the first record in the results response array. For example, if offset is 100, the first item in the results array in the response is the 100th record in the search result list.
      in: query
      name: offset
      required: false
      schema:
        type: integer
        format: int64
    authHeaderParam:
      description: Construct oAuth2 authentication token
      in: header
      name: Authorization
      required: true
      schema:
        type: string
  schemas:
    response_resultModelArray:
      type: object
      properties:
        result:
          items:
            $ref: '#/components/schemas/resultModel'
          type: array
        status:
          type: integer
          description: The HTTP return status.
    response_documentModelArray:
      type: object
      properties:
        result:
          items:
            $ref: '#/components/schemas/documentModel'
          type: array
        status:
          type: integer
          description: The HTTP return status.
    documentModel:
      type: object
      properties:
        category:
          type: object
          description: The document category. The list of category options varies depending on the document group.
          properties:
            text:
              description: The localized display value.
              type: string
            value:
              description: The data value.
              type: string
        deletable:
          description: Contains permission assignments for deleting documents.
          $ref: '#/components/schemas/userRolePrivilegeModel'
        department:
          description: The name of the department the document belongs to.
          type: string
        description:
          description: The document description.
          type: string
        downloadable:
          description: Contains permission assignments for downloading documents.
          $ref: '#/components/schemas/userRolePrivilegeModel'
        entityId:
          description: The unique ID of the entity or record.
          type: string
        entityType:
          description: The type of entity.
          type: string
        fileName:
          description: The name of the file as it displays in the source location.
          type: string
        group:
          type: object
          description: The document group.
          properties:
            text:
              description: The localized display value.
              type: string
            value:
              description: The data value.
              type: string
        id:
          description: The document id.
          format: int64
          type: integer
        modifiedBy:
          description: The user account that last modified the document.
          type: string
        modifiedDate:
          description: The date the document was last modified.
          format: date-time
          type: string
        serviceProviderCode:
          description: The unique agency identifier.
          type: string
        size:
          description: The file size of the document.
          format: double
          type: number
        source:
          description: The name for your agency's electronic document management system.
          type: string
        status:
          type: object
          description: The documet status.
          properties:
            text:
              description: The localized display value.
              type: string
            value:
              description: The data value.
              type: string
        statusDate:
          description: The date when the current status changed.
          format: date-time
          type: string
        titleViewable:
          description: Contains permission assignments for viewing document names.
          $ref: '#/components/schemas/userRolePrivilegeModel'
        type:
          description: The document type.
          type: string
        uploadedBy:
          description: The user who uploaded the document to the record.
          type: string
        uploadedDate:
          description: The date when the document was uploaded.
          format: date-time
          type: string
        virtualFolders:
          description: This is the virtual folder for storing the attachment. With virtual folders you can organize uploaded attachments in groups
          type: string
    resultModel:
      type: object
      properties:
        code:
          description: The error code, if an error is encountered.
          type: string
        id:
          description: The system id of the object in this operation.
          format: int64
          type: integer
        isSuccess:
          description: Indicates whether or not the operation on the object is successful.
          type: boolean
        message:
          description: The error message, if an error is encountered
          type: string
    userRolePrivilegeModel:
      type: object
      properties:
        contactAllowed:
          description: Indicates whether or not the permission is given to a contact.
          type: boolean
        deleteAllowed:
          description: "Indicates whether or not the permission to delete a document is allowed.\t"
          type: boolean
        downloadAllowed:
          description: Indicates whether or not the permission to download a document is allowed.
          type: boolean
        licenseTypeRules:
          items:
            type: string
            description: "A string array containing the types of licensed professionals who are given the permission.\t"
          type: array
        licensendProfessionalAllowed:
          description: Indicates whether or not the permission is given to a licensed professional.
          type: boolean
        ownerAllowed:
          description: Indicates whether or not the permission is given to an owner.
          type: boolean
        recordCreatorAllowed:
          description: Indicates whether or not the permission is given to a record creator.
          type: boolean
        registeredUserAllowed:
          description: Indicates whether or not the permission is given to a registered public user.
          type: boolean
        titleViewAllowed:
          description: Indicates whether or not the permission to view a document name is allowed.
          type: boolean
        uploadAllowed:
          description: Indicates whether or not the permission to upload a document is allowed.
          type: boolean
x-api-evangelist-provenance:
  generated: '2026-09-06'
  method: searched
  source: https://developer.accela.com/api/v4/v4-assets-assessments.json
  note: Harvested verbatim from the Accela Developer Portal API Reference, which renders these Swagger 2.0 documents via ReDoc (spec-url on developer.accela.com/docs/api_reference/api-*.html). The byte-identical original is kept at openapi/_original/. This copy is the same document serialized to YAML.