Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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.
openapi: 3.2.0
info:
title: Assignar Public Documents API
version: Version 2
description: The Assignar Public API provides the ability for customers to extend the capability of the Assignar platform.
servers:
- description: Australia/New Zealand
url: https://api.assignar.com.au/v2
- description: North America/Europe
url: https://api.assignar.com/v2
security:
- OAuth2:
- target-entity:b816a5d3-40c3-477f-a551-1d066d7211cc:api_access
tags:
- name: Documents
paths:
/documents:
get:
summary: List the document catalog
description: 'Documents are the tenant''s document *definitions* — named requirements such as "Vehicle Registration" or "Safety Inspection Certificate", each tied to a document type. They are not files in themselves.
Use this endpoint to discover which `document_id` to attach when creating an asset document (`POST /assets/{assetId}/documents`) or a project document (`POST /projects/{projectId}/documents`).
Read-only: POST, PUT and DELETE all respond 405.'
tags:
- Documents
operationId: getDocuments
parameters:
- name: page
required: false
in: query
schema:
type: string
- name: page_size
required: false
in: query
schema:
type: string
- name: sort
required: false
in: query
description: Sort by any root field, prefixed with `-` to reverse (e.g. `-name`).
schema:
type: string
- name: name
required: false
in: query
description: Filter by name. Operators apply, e.g. `name__starts_with=Vehicle`.
schema:
type: string
- name: type
required: false
in: query
description: Filter by document type id.
schema:
type: integer
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: The response status
count:
type: integer
description: The number of documents that satisfies the query.
data:
$ref: '#/components/schemas/Documents'
/documents/{documentId}:
get:
summary: Retrieve a single document definition
tags:
- Documents
operationId: getDocument
parameters:
- name: documentId
required: true
in: path
schema:
type: integer
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: The response status
data:
$ref: '#/components/schemas/Document'
'404':
description: Not Found
components:
schemas:
UrlAttachment:
type: object
readOnly: true
properties:
url:
type: string
format: url
description: Download URL for the file.
expiry:
type: integer
description: Expiry date of the download url in timestamp.
example:
url: https://url-to-attachment
expiry: 1742575641898
TagPart:
title: TagPart
x-stoplight:
id: epsk9hslhfq0q
type: object
description: ''
properties:
tag_id:
type: integer
description: Identifier of the tag
example: 301
name:
type: string
description: Name of the tag
description:
type:
- string
- 'null'
description: Description of the tag
color:
type:
- string
- 'null'
description: 'Color to render the tag formated as Hex color code. Ex #0000FF'
example: '#795548'
required:
- name
Document:
type: object
description: A document definition in the tenant's catalog. Attach one to an asset or a project by its `id`; the catalog itself is read-only.
readOnly: true
properties:
id:
type: integer
type:
type: integer
description: The document type id, which determines what the definition requires (expiry date, attachment, or number and expiry).
name:
type: string
public:
type: boolean
attachment:
type: string
description: Template or blank form held against the definition itself, if any.
attachment_url:
allOf:
- $ref: '#/components/schemas/UrlAttachment'
description: Signed download URL, valid for two hours. Null when the definition has no attachment.
tags:
type: array
description: 'Collection of tags applied to the document definition. Always present, and empty when the definition has no tags. Read-only here: the catalog does not accept writes, so there is no request-body counterpart.'
items:
$ref: '#/components/schemas/TagPart'
example:
- tag_id: 45
name: Service Program
description: null
color: '#5bc0de'
example:
id: 25
type: 2
name: Vehicle Registration
public: false
attachment: null
attachment_url: null
tags:
- tag_id: 45
name: Service Program
description: null
color: '#5bc0de'
Documents:
type: array
items:
$ref: '#/components/schemas/Document'
securitySchemes:
OAuth2:
type: oauth2
flows:
clientCredentials:
tokenUrl: https://login.assignar.com/oauth2/token
scopes:
target-entity:b816a5d3-40c3-477f-a551-1d066d7211cc:api_access: Access to API
description: 'The client credentials flow is a server-to-server flow. There is no user authentication involved in the process. Instead, the client acts on behalf of itself.
The client can request an access token using only its client credentials (or other supported means of authentication) when the client is requesting access to the protected resources under its control.
The client credentials are passed in the Authorization header as a Basic Auth (base64 encoded "client_id:client_secret").
The token endpoint of the Authorization server where the client can obtain the token is https://login.assignar.com/oauth2/token.
The scope ''target-entity:b816a5d3-40c3-477f-a551-1d066d7211cc:api_access'' is required to access the API.
'
x-provenance:
method: harvested
publisher: Assignar
source: https://apidocs.assignar.com/api-docs/swagger.yaml
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)