Atomicwork customObjects API
The customObjects API from Atomicwork — 7 operation(s) for customobjects.
The customObjects API from Atomicwork — 7 operation(s) for customobjects.
openapi: 3.1.0
info:
title: Atomicwork Public accessManagement customObjects API
version: 1.0.0
servers:
- url: https://{tenant}.atomicwork.com
description: Your Atomicwork tenant
tags:
- name: customObjects
paths:
/api/v1/custom-objects/view-fields:
get:
operationId: getapi-v-1-custom-objects-view-fields
summary: Get filter fields for custom object list view
tags:
- customObjects
parameters:
- name: object_type_id
in: query
description: The object type ID to get filter fields for
required: true
schema:
type: integer
format: int64
- name: X-Api-Key
in: header
required: true
schema:
type: string
- name: X-Workspace-Id
in: header
required: false
schema:
type: string
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Custom Objects_getapi_v1_custom_objects_view_fields_Response_200'
/api/v1/custom-objects:
get:
operationId: getapi-v-1-custom-objects
summary: List custom objects
tags:
- customObjects
parameters:
- name: object_type_id
in: query
description: ''
required: true
schema:
type: integer
format: int64
- name: search_key
in: query
description: Optional search string to filter custom objects by display ID
required: false
schema:
type: string
- name: page
in: query
description: ''
required: false
schema:
type: integer
default: 1
- name: page_size
in: query
description: ''
required: false
schema:
type: integer
default: 25
- name: X-Api-Key
in: header
required: true
schema:
type: string
- name: X-Workspace-Id
in: header
required: false
schema:
type: string
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Custom Objects_getapi_v1_custom_objects_Response_200'
post:
operationId: postapi-v-1-custom-objects
summary: Create a custom object instance
tags:
- customObjects
parameters:
- name: X-Api-Key
in: header
required: true
schema:
type: string
- name: X-Workspace-Id
in: header
required: false
schema:
type: string
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Custom Objects_postapi_v1_custom_objects_Response_200'
requestBody:
content:
application/json:
schema:
type: object
properties:
object_type_id:
type: integer
format: int64
form_fields:
$ref: '#/components/schemas/ApiV1CustomObjectsPostRequestBodyContentApplicationJsonSchemaFormFields'
description: 'Custom field values keyed by field reference_key. Must include
display_name, the reserved system field for every custom object type.
form_fields.display_name is trimmed, must be non-empty/non-whitespace,
and must be at most 255 characters.
'
required:
- object_type_id
/api/v1/custom-objects/{objectTypeId}/list:
post:
operationId: postapi-v-1-custom-objects-object-type-id-list
summary: List custom objects with filtering and sorting
tags:
- customObjects
parameters:
- name: objectTypeId
in: path
description: The object type ID to scope results to
required: true
schema:
type: integer
format: int64
- name: X-Api-Key
in: header
required: true
schema:
type: string
- name: X-Workspace-Id
in: header
required: false
schema:
type: string
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Custom Objects_postapi_v1_custom_objects__objectTypeId__list_Response_200'
requestBody:
description: Request body for the filtered custom object list view endpoint
content:
application/json:
schema:
type: object
properties:
filters:
type: array
items:
$ref: '#/components/schemas/ApiV1CustomObjectsObjectTypeIdListPostRequestBodyContentApplicationJsonSchemaFiltersItems'
description: Optional filter conditions
sort:
$ref: '#/components/schemas/ApiV1CustomObjectsObjectTypeIdListPostRequestBodyContentApplicationJsonSchemaSort'
description: Sort order for custom object list view results
scope:
$ref: '#/components/schemas/ApiV1CustomObjectsObjectTypeIdListPostRequestBodyContentApplicationJsonSchemaScope'
description: Scope of the object type (GLOBAL or WORKSPACE)
workspace_id:
type: integer
format: int64
description: 'Workspace ID for cross-type queries. Required when scope=WORKSPACE
in cross-type list calls (when objectTypeId is absent).
'
page:
type: integer
default: 1
description: Page number (1-based)
page_size:
type: integer
default: 25
description: Number of records per page
/api/v1/custom-objects/{objectTypeId}/fields:
get:
operationId: getapi-v-1-custom-objects-object-type-id-fields
summary: Get CO field picker values (dropdown/multi-dropdown/relationship options)
tags:
- customObjects
parameters:
- name: objectTypeId
in: path
description: The object type ID
required: true
schema:
type: integer
format: int64
- name: field_name
in: query
description: Reference key of the dropdown / multi-dropdown / relationship field
required: true
schema:
type: string
- name: field_value
in: query
description: ''
required: false
schema:
type: string
- name: search_key
in: query
description: ''
required: false
schema:
type: string
- name: include_none
in: query
description: ''
required: false
schema:
type: boolean
default: false
- name: include_any
in: query
description: ''
required: false
schema:
type: boolean
default: false
- name: include_null
in: query
description: ''
required: false
schema:
type: boolean
default: false
- name: parent_option_id
in: query
description: ''
required: false
schema:
type: integer
format: int64
- name: X-Api-Key
in: header
required: true
schema:
type: string
- name: X-Workspace-Id
in: header
required: false
schema:
type: string
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Custom Objects_getapi_v1_custom_objects__objectTypeId__fields_Response_200'
/api/v1/custom-objects/by-id/{id}:
get:
operationId: getapi-v-1-custom-objects-by-id-id
summary: Get custom object details by numeric id
description: 'Numeric-id counterpart of `getCustomObject`. The display-id form
`/custom-objects/{displayId}` (e.g. `/custom-objects/COB-001`) is the
canonical user-facing URL; this endpoint takes the internal numeric id
and is intended for callers that already hold the int64 id.
'
tags:
- customObjects
parameters:
- name: id
in: path
description: Workspace ID (numeric). Find yours under Settings → Workspace.
required: true
schema:
type: integer
format: int64
- name: X-Api-Key
in: header
required: true
schema:
type: string
- name: X-Workspace-Id
in: header
required: false
schema:
type: string
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Custom Objects_getapi_v1_custom_objects_by_id__id_Response_200'
put:
operationId: putapi-v-1-custom-objects-by-id-id
summary: Update a custom object instance
tags:
- customObjects
parameters:
- name: id
in: path
description: Workspace ID (numeric). Find yours under Settings → Workspace.
required: true
schema:
type: integer
format: int64
- name: X-Api-Key
in: header
required: true
schema:
type: string
- name: X-Workspace-Id
in: header
required: false
schema:
type: string
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Custom Objects_putapi_v1_custom_objects_by_id__id_Response_200'
requestBody:
content:
application/json:
schema:
type: object
properties:
form_fields:
$ref: '#/components/schemas/ApiV1CustomObjectsByIdIdPutRequestBodyContentApplicationJsonSchemaFormFields'
description: 'Partial custom field values keyed by field reference_key. To rename the
object, send form_fields.display_name. If absent, the existing display
name is preserved. If present, it is trimmed, must be non-empty/
non-whitespace, and must be at most 255 characters.
'
delete:
operationId: deleteapi-v-1-custom-objects-by-id-id
summary: Soft delete a custom object instance
tags:
- customObjects
parameters:
- name: id
in: path
description: Workspace ID (numeric). Find yours under Settings → Workspace.
required: true
schema:
type: integer
format: int64
- name: X-Api-Key
in: header
required: true
schema:
type: string
- name: X-Workspace-Id
in: header
required: false
schema:
type: string
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Custom Objects_deleteapi_v1_custom_objects_by_id__id_Response_200'
patch:
operationId: patchapi-v-1-custom-objects-by-id-id
summary: Partial update a custom object instance (single-field edits)
tags:
- customObjects
parameters:
- name: id
in: path
description: Workspace ID (numeric). Find yours under Settings → Workspace.
required: true
schema:
type: integer
format: int64
- name: X-Api-Key
in: header
required: true
schema:
type: string
- name: X-Workspace-Id
in: header
required: false
schema:
type: string
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Custom Objects_patchapi_v1_custom_objects_by_id__id_Response_200'
requestBody:
description: 'Partial update for a custom object instance (single-field inline edits).
form_fields must include at least one field that changes the object''s
state; enforced at the service layer. To rename the object, send
form_fields.display_name. A display-name-only no-op is rejected.
'
content:
application/json:
schema:
type: object
properties:
form_fields:
$ref: '#/components/schemas/ApiV1CustomObjectsByIdIdPatchRequestBodyContentApplicationJsonSchemaFormFields'
description: 'Partial custom field values keyed by field reference_key.
form_fields.display_name may be sent alone for inline name edits.
'
/api/v1/custom-objects/by-id/{id}/relationships:
get:
operationId: getapi-v-1-custom-objects-by-id-id-relationships
summary: Get only the relationship fields of a custom object
description: 'Returns the same `CustomObjectDetailsDto` shape as `getCustomObject`, but
`customData` is restricted to relationship reference keys only — scalar,
dropdown, date, and other non-relationship fields are omitted. Each
`objectType.sections[*].fieldIds` list is filtered to retain only the
field IDs that correspond to relationship field definitions; empty
sections are preserved so the UI gets a stable section layout.
Useful when a caller needs to display a CO''s links to other entities
without paying the cost of resolving the full custom_data payload.
'
tags:
- customObjects
parameters:
- name: id
in: path
description: Workspace ID (numeric). Find yours under Settings → Workspace.
required: true
schema:
type: integer
format: int64
- name: X-Api-Key
in: header
required: true
schema:
type: string
- name: X-Workspace-Id
in: header
required: false
schema:
type: string
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Custom Objects_getapi_v1_custom_objects_by_id__id__relationships_Response_200'
/api/v1/custom-objects/{objectTypeId}/list/download:
post:
operationId: postapi-v-1-custom-objects-object-type-id-list-download
summary: Export custom objects to CSV (async, emailed)
tags:
- customObjects
parameters:
- name: objectTypeId
in: path
description: The object type ID to export
required: true
schema:
type: integer
format: int64
- name: X-Api-Key
in: header
required: true
schema:
type: string
- name: X-Workspace-Id
in: header
required: false
schema:
type: string
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/Custom Objects_postapi_v1_custom_objects__objectTypeId__list_download_Response_200'
requestBody:
content:
application/json:
schema:
type: object
properties:
sort_order:
type: string
components:
schemas:
Custom Objects_deleteapi_v1_custom_objects_by_id__id_Response_200:
type: object
properties: {}
description: Empty response body
title: Custom Objects_deleteapi_v1_custom_objects_by_id__id_Response_200
Custom Objects_getapi_v1_custom_objects__objectTypeId__fields_Response_200:
type: object
properties: {}
description: Empty response body
title: Custom Objects_getapi_v1_custom_objects__objectTypeId__fields_Response_200
ApiV1CustomObjectsObjectTypeIdListPostRequestBodyContentApplicationJsonSchemaSort:
type: string
enum:
- CREATED_AT_ASC
- CREATED_AT_DESC
- UPDATED_AT_ASC
- UPDATED_AT_DESC
- DISPLAY_ID_ASC
- DISPLAY_ID_DESC
description: Sort order for custom object list view results
title: ApiV1CustomObjectsObjectTypeIdListPostRequestBodyContentApplicationJsonSchemaSort
Custom Objects_getapi_v1_custom_objects_Response_200:
type: object
properties: {}
description: Empty response body
title: Custom Objects_getapi_v1_custom_objects_Response_200
ApiV1CustomObjectsObjectTypeIdListPostRequestBodyContentApplicationJsonSchemaFiltersItems:
type: object
properties:
attribute:
type: string
operator:
$ref: '#/components/schemas/ApiV1CustomObjectsObjectTypeIdListPostRequestBodyContentApplicationJsonSchemaFiltersItemsOperator'
values:
type: array
items:
$ref: '#/components/schemas/ApiV1CustomObjectsObjectTypeIdListPostRequestBodyContentApplicationJsonSchemaFiltersItemsValuesItems'
description: 'Filter condition for the custom object list view. Extends BaseListFilterDTO using the standard attribute/operator/values pattern. The attribute field holds either a top-level field name (e.g. "display_id", "created_at"), a column_key for custom fields (e.g. "cf_shorttext_001"), or a custom field reference_key. For ID-shaped custom fields (relationship, entity-reference, dropdown, and multi-dropdown), value -1 or null means blank. Blank filters match indexed field slots with null/empty values, indexed slots containing the historical -1 sentinel, and records where the nested field slot does not exist.
'
title: ApiV1CustomObjectsObjectTypeIdListPostRequestBodyContentApplicationJsonSchemaFiltersItems
ApiV1CustomObjectsObjectTypeIdListPostRequestBodyContentApplicationJsonSchemaFiltersItemsValuesItemsValue:
type: object
properties: {}
title: ApiV1CustomObjectsObjectTypeIdListPostRequestBodyContentApplicationJsonSchemaFiltersItemsValuesItemsValue
Custom Objects_getapi_v1_custom_objects_by_id__id__relationships_Response_200:
type: object
properties: {}
description: Empty response body
title: Custom Objects_getapi_v1_custom_objects_by_id__id__relationships_Response_200
Custom Objects_getapi_v1_custom_objects_view_fields_Response_200:
type: object
properties: {}
description: Empty response body
title: Custom Objects_getapi_v1_custom_objects_view_fields_Response_200
Custom Objects_patchapi_v1_custom_objects_by_id__id_Response_200:
type: object
properties: {}
description: Empty response body
title: Custom Objects_patchapi_v1_custom_objects_by_id__id_Response_200
ApiV1CustomObjectsByIdIdPutRequestBodyContentApplicationJsonSchemaFormFields:
type: object
properties: {}
description: 'Partial custom field values keyed by field reference_key. To rename the
object, send form_fields.display_name. If absent, the existing display
name is preserved. If present, it is trimmed, must be non-empty/
non-whitespace, and must be at most 255 characters.
'
title: ApiV1CustomObjectsByIdIdPutRequestBodyContentApplicationJsonSchemaFormFields
ApiV1CustomObjectsPostRequestBodyContentApplicationJsonSchemaFormFields:
type: object
properties: {}
description: 'Custom field values keyed by field reference_key. Must include
display_name, the reserved system field for every custom object type.
form_fields.display_name is trimmed, must be non-empty/non-whitespace,
and must be at most 255 characters.
'
title: ApiV1CustomObjectsPostRequestBodyContentApplicationJsonSchemaFormFields
Custom Objects_postapi_v1_custom_objects_Response_200:
type: object
properties: {}
description: Empty response body
title: Custom Objects_postapi_v1_custom_objects_Response_200
ApiV1CustomObjectsByIdIdPatchRequestBodyContentApplicationJsonSchemaFormFields:
type: object
properties: {}
description: 'Partial custom field values keyed by field reference_key.
form_fields.display_name may be sent alone for inline name edits.
'
title: ApiV1CustomObjectsByIdIdPatchRequestBodyContentApplicationJsonSchemaFormFields
ApiV1CustomObjectsObjectTypeIdListPostRequestBodyContentApplicationJsonSchemaScope:
type: string
enum:
- GLOBAL
- WORKSPACE
description: Scope of the object type (GLOBAL or WORKSPACE)
title: ApiV1CustomObjectsObjectTypeIdListPostRequestBodyContentApplicationJsonSchemaScope
Custom Objects_putapi_v1_custom_objects_by_id__id_Response_200:
type: object
properties: {}
description: Empty response body
title: Custom Objects_putapi_v1_custom_objects_by_id__id_Response_200
ApiV1CustomObjectsObjectTypeIdListPostRequestBodyContentApplicationJsonSchemaFiltersItemsValuesItems:
type: object
properties:
value:
$ref: '#/components/schemas/ApiV1CustomObjectsObjectTypeIdListPostRequestBodyContentApplicationJsonSchemaFiltersItemsValuesItemsValue'
nested_filter:
description: Any type
title: ApiV1CustomObjectsObjectTypeIdListPostRequestBodyContentApplicationJsonSchemaFiltersItemsValuesItems
Custom Objects_postapi_v1_custom_objects__objectTypeId__list_download_Response_200:
type: object
properties: {}
description: Empty response body
title: Custom Objects_postapi_v1_custom_objects__objectTypeId__list_download_Response_200
Custom Objects_getapi_v1_custom_objects_by_id__id_Response_200:
type: object
properties: {}
description: Empty response body
title: Custom Objects_getapi_v1_custom_objects_by_id__id_Response_200
ApiV1CustomObjectsObjectTypeIdListPostRequestBodyContentApplicationJsonSchemaFiltersItemsOperator:
type: string
enum:
- EQUALS
- NOT_EQUALS
- CONTAINS
- NOT_CONTAINS
- IN
- NOT_IN
- GREATER_THAN
- LESS_THAN
- GREATER_THAN_EQUALS
- LESS_THAN_EQUALS
- IS_BETWEEN
- IS_NULL
- IS_NOT_NULL
- STARTS_WITH
- ENDS_WITH
- TEXT_CONTAINS
- TEXT_DOES_NOT_CONTAINS
- IS_ANY_OF
- IS_NOT_ANY_OF
- IS_EXACTLY
- IS_ON_OR_BEFORE
- IS_ON_OR_AFTER
- IS_WITHIN
title: ApiV1CustomObjectsObjectTypeIdListPostRequestBodyContentApplicationJsonSchemaFiltersItemsOperator
Custom Objects_postapi_v1_custom_objects__objectTypeId__list_Response_200:
type: object
properties: {}
description: Empty response body
title: Custom Objects_postapi_v1_custom_objects__objectTypeId__list_Response_200
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-Api-Key