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 Tasks 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: Tasks
paths:
/tasks:
get:
summary: List all existing tasks
tags:
- Tasks
operationId: getTasks
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
status:
type: integer
description: The response status
data:
$ref: '#/components/schemas/Tasks'
post:
summary: Create a new task
tags:
- Tasks
operationId: postTask
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Task'
responses:
'201':
description: Created. The created record is returned in `data`. **The fields present depend on the payload supplied** — every field you sent, plus the generated `id`, any column defaults, and audit values such as `modified_by`. A field you did not send is absent rather than null, and related objects are not included. The example below shows one such request.
content:
application/json:
schema:
type: object
properties:
status:
type: integer
data:
$ref: '#/components/schemas/Task'
examples:
Success:
value:
status: 201
data:
id: 1313
name: Excavation
active: true
req_machines: false
supervisor: false
modified_by: ssmith
modified_time: '2026-08-25T02:14:07.000Z'
/tasks/{taskId}:
get:
summary: Retrieve an existing task
tags:
- Tasks
operationId: getTask
parameters:
- name: taskId
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/Task'
put:
summary: Update an existing task
tags:
- Tasks
operationId: updateTask
parameters:
- in: path
name: taskId
required: true
schema:
type: integer
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Task'
responses:
'204':
description: Success
delete:
summary: Delete an existing task
tags:
- Tasks
operationId: deleteTask
parameters:
- in: path
name: taskId
required: true
schema:
type: integer
responses:
'204':
description: Success
/tasks/{taskId}/skills:
get:
summary: List skills required for a task
tags:
- Tasks
operationId: getTaskSkills
security:
- oauth_2_auth: []
parameters:
- name: taskId
required: true
in: path
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
status:
type: integer
count:
type: integer
data:
type: array
items:
type: object
properties:
id:
type: integer
task_id:
type: integer
skill_id:
type: integer
post:
summary: Add a skill to a task
description: Associates a skill with the task. Note the request body key is `id` and it holds the **skill** id (not `skill_id`).
tags:
- Tasks
operationId: createTaskSkill
security:
- oauth_2_auth: []
parameters:
- name: taskId
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- id
properties:
id:
type: integer
description: The id of the skill to add to the task.
responses:
'201':
description: Created
content:
application/json:
schema:
type: object
properties:
status:
type: integer
data:
type: object
properties:
id:
type: integer
task_id:
type: integer
/tasks/{taskId}/skills/{id}:
delete:
summary: Remove a skill from a task
description: '`id` is the skill id to remove from the task.'
tags:
- Tasks
operationId: deleteTaskSkill
security:
- oauth_2_auth: []
parameters:
- name: taskId
required: true
in: path
schema:
type: string
- name: id
required: true
in: path
schema:
type: string
responses:
'204':
description: Success
/tasks/{taskId}/pay-rate-groups:
get:
summary: Task Rate Groups
tags:
- Tasks
operationId: getTaskPayRateGroups
responses:
default:
description: no response description was provided for this operation
parameters:
- name: taskId
required: true
in: path
schema:
type: string
default: '5'
/tasks/{taskId}/task-groups:
get:
summary: Tasks Task Groups
tags:
- Tasks
operationId: getTaskTaskGroups
responses:
default:
description: no response description was provided for this operation
security:
- oauth_2_auth: []
parameters:
- name: taskId
required: true
in: path
schema:
type: string
default: '5'
post:
summary: Add a task to a task group (task side)
description: Associates the task with a task group. Note the request body key is `id` and it holds the **task group** id (not `group_id`). The equivalent group-side route is `POST /task-groups/{groupId}/tasks`.
tags:
- Tasks
operationId: createTaskTaskGroup
security:
- oauth_2_auth: []
parameters:
- name: taskId
required: true
in: path
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- id
properties:
id:
type: integer
description: The id of the task group to add the task to.
responses:
'201':
description: Created
content:
application/json:
schema:
type: object
properties:
status:
type: integer
data:
type: object
properties:
id:
type: integer
task_id:
type: integer
/tasks/{taskId}/task-groups/{id}:
delete:
summary: Remove a task from a task group (task side)
description: '`id` is the task group id to remove the task from.'
tags:
- Tasks
operationId: deleteTaskTaskGroup
security:
- oauth_2_auth: []
parameters:
- name: taskId
required: true
in: path
schema:
type: string
- name: id
required: true
in: path
schema:
type: string
responses:
'204':
description: Success
components:
schemas:
Task:
type: object
properties:
id:
type: integer
readOnly: true
name:
type: string
external_id:
type: string
active:
type: boolean
modified_by:
type: string
readOnly: true
modified_time:
type: string
readOnly: true
req_machines:
type: boolean
pay_level:
type: string
payroll_acc:
type: string
charge_code_id:
type: integer
description: See Invoices - Charge Code
supervisor:
type: boolean
integration_id:
type:
- string
- 'null'
required:
- name
Tasks:
type: array
items:
$ref: '#/components/schemas/Task'
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)