Atomicwork customObjects API

The customObjects API from Atomicwork — 7 operation(s) for customobjects.

OpenAPI Specification

atomicwork-customobjects-api-openapi.yml Raw ↑
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