Mavenlink Custom Field Values API

If [Custom Fields](/tag/Custom-Fields) represent the fields themselves, Custom Field Values represent the values in/of those fields. The Custom Field Values object allows you to view, create, update, and delete these values.

Operations 6

GET /custom_field_values Fetching a list of Custom Field Values #
POST /custom_field_values Creating a new Custom Field Value #
DELETE /custom_field_values Delete multiple custom field values #
GET /custom_field_values/{id} Fetching a single Custom Field Value #
PUT /custom_field_values/{id} Updating an existing Custom Field Value #
DELETE /custom_field_values/{id} Deleting an existing Custom Field Value #

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/mavenlink-custom-field-values-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

mavenlink-custom-field-values-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.0
  title: Kantata OX API Documentation Custom Field Values API
  description: Kantata OX's API provides access to the majority of Kantata OX's data model.
  termsOfService: https://www.kantata.com/terms-of-use
  contact:
    name: Kantata OX Support
    url: https://knowledge.kantata.com/hc/en-us
  license:
    name: COPYRIGHT © 2026 Kantata, Inc.
    url: https://www.kantata.com/terms-of-use
  x-logo:
    url: https://theme.zdassets.com/theme_assets/56104/04e93064d309f75d054b8cee885d1ea51e9be8f7.png
    backgroundColor: '#FFFFFF'
    altText: Kantata OX API Documentation
    href: https://developer.kantata.com
servers:
- url: https://api.mavenlink.com/api/v1
tags:
- name: Custom Field Values
  description: 'If Custom Fields represent the fields themselves,

    Custom Field Values represent the values in/of those fields. The Custom Field Values object allows

    you to view, create, update, and delete these values.'
paths:
  /custom_field_values:
    get:
      summary: Fetching a list of Custom Field Values
      description: 'Returns all values for the specified set of

        Custom Fields.


        This endpoint has its own rate limit. See the Knowledge Base for more information.


        Custom fields are organized into sets,

        by the objects they store additional information for (Estimate, Project, Group, Resource, Task, or User).

        Use the `subject_type` parameter to specify which set of Custom Fields to return values for:

        * `Estimate`

        * `Story` (Task)

        * `User`

        * `Workspace` (Project)

        * `WorkspaceGroup` (Group)

        * `Resource`


        Custom field values for _archived_ Projects and Tasks are included in returned values.

        Values are sorted from less to more recently updated.


        ##### Note:

        The `read_access` permission setting on each custom field

        determines the minimum permission needed to view a custom field and its value.

        * `Workspace` (Project), `Resource`, and `Story` (Task) custom fields are project-specific objects,

        so their minimum permissions are set at the project level:

        - `project_collaboration` (default)

        - `time_logging`

        - `financial`

        - `project_admin`


        Most account-level permissions supercede project-level permissions. Therefore, Account Administrators

        are able to view all Project, Resource, and Task custom fields and values across the account,

        regardless of project participation or `read_access` settings.

        * `Estimate`, `WorkspaceGroup` (Group), and `User` custom fields are account-wide objects, so their minimum permissions are

        set at the account level:

        - `account_collaboration`

        - `project_creator`

        - `project_lead`

        - `reports_viewer`

        - `reports_viewer_with_cost`

        - `account_admin` (default)


        This endpoint returns structured Custom Field Value objects.

        As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array

        and will be indexed by ID in the `custom_field_values` top-level JSON key.

        Please see our Response Format section for more information.'
      operationId: Get Custom Field Values
      tags:
      - Custom Field Values
      parameters:
      - in: query
        name: subject_type
        required: true
        description: 'You must specify which set of Custom Fields to return values for:

          * `Estimate`

          * `Story` (Task)

          * `User`

          * `Workspace` (Project)

          * `WorkspaceGroup` (Group)

          * `Resource`


          This parameter is required.'
        schema:
          type: string
      - in: query
        name: created_after
        description: Filter for records created after a specified datetime. The datetime must be in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format.
        schema:
          type: string
          format: date-time
      - in: query
        name: created_before
        description: Filter for records created before a specified datetime. The datetime must be in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format.
        schema:
          type: string
          format: date-time
      - in: query
        name: external_reference_external_message
        description: Filter the objects based on the external message of their associated external references. This is an exact match.
        schema:
          type: string
      - in: query
        name: external_reference_external_status
        description: Filter by the status of the external object in the external system.
        schema:
          type: string
      - in: query
        name: external_reference_service_model
        description: Filter by the type of the external object this external reference belongs to.
        schema:
          type: string
      - in: query
        name: external_reference_service_model_ref
        description: Filter by the id of the external object this external reference belongs to.
        schema:
          type: integer
          format: int32
      - in: query
        name: external_reference_service_model_refs
        description: Filter for objects that correlate to the specified external object IDs. Provide a comma-separated list of up to 200 external IDs.
        schema:
          type: string
      - in: query
        name: external_reference_service_name
        description: Filter by the name of the provider for integration.
        schema:
          type: string
      - in: query
        name: external_reference_status
        description: Filter by the status of the integration, this can be successful or fail.
        schema:
          type: string
      - in: query
        name: has_external_references
        description: Filter by whether or not the object has external references.
        schema:
          type: boolean
      - in: query
        name: include
        description: 'Any of the below associations can be included in your request by providing the `include` param, e.g. `include=association1,association2`.

          - `custom_field` (CustomField) - Retrieves the custom field the value is for. The response will include `custom_field_id`, which references the data in the `custom_fields` top-level key.

          - `external_references` (ExternalReference) - Includes references to external integrations for this object.

          - `selected_choices` (CustomFieldChoice) - Retrieves the custom field choice that corresponds to the custom field value. The response will include `selected_choice_ids`, which references the data in the `custom_field_choices` top-level key.

          - `setter` (User) - Retrieves the user that set the custom field value. The response will include `setter_id`, which references the data in the `users` top-level key.

          - `subject` (polymorphic) - Retrieves the object which the custom field value is for. The response will include `subject_ref`, which references the data in the top-level key specified in the `key` field of `subject_ref`. The possible objects are as follows:

          * `Estimate`

          * `Workspace` (Project)

          * `WorkspaceGroup` (Group)

          * `Resource`

          * `Story` (Task)

          * `User`.'
        schema:
          type: string
      - in: query
        name: only
        description: 'Allows you to request one or more resources directly by ID. Multiple IDs can be supplied

          in a comma separated list, like `GET /api/v1/workspaces.json?only=5,6,7`.'
        schema:
          type: string
      - in: query
        name: order
        description: 'Supply `order` with the name of a valid sort field for the endpoint and a direction.


          Valid values: `created_at:asc`, `created_at:desc`, `subject_id:asc`, `subject_id:desc`, `updated_at:asc`, and `updated_at:desc`.'
        schema:
          type: string
          default: created_at:asc
      - in: query
        name: page
        schema:
          type: integer
          format: int32
          default: 1
      - in: query
        name: per_page
        schema:
          type: integer
          format: int32
          default: 20
          maximum: 200
      - in: query
        name: updated_after
        description: Filter for records updated after a specified datetime. The datetime must be in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format.
        schema:
          type: string
          format: date-time
      - in: query
        name: updated_before
        description: Filter for records updated before a specified datetime. The datetime must be in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format.
        schema:
          type: string
          format: date-time
      - in: query
        name: with_custom_field_id
        description: Filters for values of the Custom Field(s) with the specified ID(s). Give multiple Custom Field IDs in a comma-separated list.
        schema:
          type: string
      - in: query
        name: with_setter_id
        description: Filters for Custom Field Values set by a user with the specified ID(s). Give multiple user IDs in a comma-separated list.
        schema:
          type: string
      - in: query
        name: with_subject_id
        description: "Filters for Custom Field Values associated with the specified ID(s) of an Estimate, Project,\n             Group, Resource, Task, or User. Give multiple IDs in a comma-separated list."
        schema:
          type: string
      - in: query
        name: without_external_reference_service_name
        description: Exclude by the existence of an external reference with the specified service name.
        schema:
          type: string
      responses:
        '200':
          description: A list of Custom Field Values have been retrieved.
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    format: int32
                  meta:
                    type: object
                    properties:
                      count:
                        type: integer
                        format: int32
                      page_count:
                        type: integer
                        format: int32
                      page_number:
                        type: integer
                        format: int32
                      page_size:
                        type: integer
                        format: int32
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        key:
                          type: string
                        id:
                          type: string
                  custom_field_values:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/CustomFieldValue'
                  external_references:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/ExternalReference'
                  custom_fields:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/CustomField'
                  users:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/User'
                  custom_field_choices:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/CustomFieldChoice'
                  stories:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/Story'
                  workspaces:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/Workspace'
                  workspace_groups:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/WorkspaceGroup'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '403':
          description: Forbidden request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '404':
          description: Page Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '503':
          description: Service is unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
    post:
      summary: Creating a new Custom Field Value
      description: 'Creates a new value for the specified custom field. Creating a value can also override existing values,

        effectively making this an update request as well.


        When creating new single or multi choice values that

        override existing values, note that new values are not _added_ to existing values, but instead _replace_ existing values.

        Additionally, every new value has a unique, new ID.


        This endpoint has its own rate limit. See the Knowledge Base for more information.


        **Bulk Create or Update**


        This endpoint supports bulk creating or updating up to 100 objects. In the request body, set the top-level key to its plural form and place the objects in an array. Example:


        ```

        {

        "custom_field_values": [

        {

        "subject_type": "Workspace",

        "subject_id": 123,

        "custom_field_id": 456,

        "value": "Hello world"

        },

        {

        "subject_type": "Workspace",

        "subject_id": 123,

        "custom_field_id": 789,

        "value": "Hello world"

        }

        ]

        }

        ```


        This endpoint returns structured Custom Field Value objects.

        As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array

        and will be indexed by ID in the `custom_field_values` top-level JSON key.

        Please see our Response Format section for more information.'
      operationId: Create Custom Field Value
      tags:
      - Custom Field Values
      parameters:
      - in: query
        name: include
        description: 'Any of the below associations can be included in your request by providing the `include` param, e.g. `include=association1,association2`.

          - `custom_field` (CustomField) - Retrieves the custom field the value is for. The response will include `custom_field_id`, which references the data in the `custom_fields` top-level key.

          - `external_references` (ExternalReference) - Includes references to external integrations for this object.

          - `selected_choices` (CustomFieldChoice) - Retrieves the custom field choice that corresponds to the custom field value. The response will include `selected_choice_ids`, which references the data in the `custom_field_choices` top-level key.

          - `setter` (User) - Retrieves the user that set the custom field value. The response will include `setter_id`, which references the data in the `users` top-level key.

          - `subject` (polymorphic) - Retrieves the object which the custom field value is for. The response will include `subject_ref`, which references the data in the top-level key specified in the `key` field of `subject_ref`. The possible objects are as follows:

          * `Estimate`

          * `Workspace` (Project)

          * `WorkspaceGroup` (Group)

          * `Resource`

          * `Story` (Task)

          * `User`.'
        schema:
          type: string
      responses:
        '200':
          description: Custom Field Value has been created.
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    format: int32
                  meta:
                    type: object
                    properties:
                      count:
                        type: integer
                        format: int32
                      page_count:
                        type: integer
                        format: int32
                      page_number:
                        type: integer
                        format: int32
                      page_size:
                        type: integer
                        format: int32
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        key:
                          type: string
                        id:
                          type: string
                  custom_field_values:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/CustomFieldValue'
                  external_references:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/ExternalReference'
                  custom_fields:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/CustomField'
                  users:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/User'
                  custom_field_choices:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/CustomFieldChoice'
                  stories:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/Story'
                  workspaces:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/Workspace'
                  workspace_groups:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/WorkspaceGroup'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '403':
          description: Forbidden request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '404':
          description: Page Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '503':
          description: Service is unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                custom_field_value:
                  type: object
                  properties:
                    subject_type:
                      type: string
                      description: 'You must specify which set of Custom Fields to return values for:

                        * `Estimate`

                        * `Story` (Task)

                        * `User`

                        * `Workspace` (Project)

                        * `WorkspaceGroup` (Group)

                        * `Resource`


                        This parameter is required.'
                    subject_id:
                      type: integer
                      format: int32
                      description: The ID of the Estimate, Project, Group, Resource, Task, or User the custom field is for.
                    custom_field_id:
                      type: integer
                      format: int32
                      description: The ID of the Custom Field to create or update the value for.
                    value:
                      type: string
                      description: 'The value to create or update to for the specified custom field.


                        Values can be created or updated in these formats:


                        | Value Type           | Format                                   | Sample         |

                        | -------------------- |:----------------------------------------:| --------------:|

                        | `string`             | `<text_string>`                          |        `"foo"` |

                        | `date`               | `<ISO_8601 Date Format>`                 | `"2014-02-25"` |

                        | `number`             | `<integer_value>`                        |           `13` |

                        | `currency`           | `[<int_value_in_cents>, <currency_code>]`| `[998, "USD"]` |

                        | `single` and `multi` | `[<choice_ids>]`                         |    `[1, 2, 4]` |


                        ##### Note:

                        The `write_access` [permission setting on each custom field](https://mavenlink.zendesk.com/hc/en-us/articles/202924760#see)

                        determines the minimum permission needed to edit the value of each custom field.

                        * Editing `Workspace` (Project), `Resource`, and `Story` (Task) custom fields are project-specific changes,

                        so permissions are set at the project level:

                        - `project_collaboration`

                        - `time_logging`

                        - `financial`

                        - `project_admin` (default)


                        Most account-level permissions supercede project-level permissions. Therefore, Account Administrators

                        are able to edit all Project, Resource, and Task custom fields and values across the account,

                        regardless of project participation or `write_access` settings.

                        * Editing `Estimate`, `WorkspaceGroup` (Group), and `User` custom fields are account-wide changes,

                        so permissions are set at the account level:

                        - `account_collaboration`

                        - `project_creator`

                        - `project_lead`

                        - `reports_viewer`

                        - `reports_viewer_with_cost`

                        - `account_admin` (default).'
                  required:
                  - subject_type
                  - subject_id
                  - custom_field_id
                  - value
        required: true
    delete:
      summary: Delete multiple custom field values
      description: 'The IDs of the custom field values to delete can be provided in the `ids` query parameter or via the request body.


        Request body example:

        ```{

        "ids": "1,2,3"

        }```


        If any specified custom field values cannot be deleted, the entire request will fail and an error message

        will be returned that specifies which ones could not be deleted and why.


        This endpoint returns structured Custom Field Value objects.

        As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array

        and will be indexed by ID in the `custom_field_values` top-level JSON key.

        Please see our Response Format section for more information.'
      operationId: Delete Custom Field Values
      tags:
      - Custom Field Values
      parameters:
      - in: query
        name: ids
        required: false
        description: 'A comma-separated list of IDs of custom field values. You can provide up to 100 IDs. The IDs can be

          provided in this query parameter or via the request body.'
        schema:
          type: string
      responses:
        '204':
          description: Custom Field Value has been deleted.
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '403':
          description: Forbidden request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '404':
          description: Page Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '503':
          description: Service is unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
  /custom_field_values/{id}:
    get:
      summary: Fetching a single Custom Field Value
      description: 'This endpoint returns structured Custom Field Value objects.

        As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array

        and will be indexed by ID in the `custom_field_values` top-level JSON key.

        Please see our Response Format section for more information.'
      operationId: Get Custom Field Value
      tags:
      - Custom Field Values
      parameters:
      - in: path
        name: id
        required: true
        description: The ID of the Model.
        schema:
          type: integer
      - in: query
        name: include
        description: 'Any of the below associations can be included in your request by providing the `include` param, e.g. `include=association1,association2`.

          - `custom_field` (CustomField) - Retrieves the custom field the value is for. The response will include `custom_field_id`, which references the data in the `custom_fields` top-level key.

          - `external_references` (ExternalReference) - Includes references to external integrations for this object.

          - `selected_choices` (CustomFieldChoice) - Retrieves the custom field choice that corresponds to the custom field value. The response will include `selected_choice_ids`, which references the data in the `custom_field_choices` top-level key.

          - `setter` (User) - Retrieves the user that set the custom field value. The response will include `setter_id`, which references the data in the `users` top-level key.

          - `subject` (polymorphic) - Retrieves the object which the custom field value is for. The response will include `subject_ref`, which references the data in the top-level key specified in the `key` field of `subject_ref`. The possible objects are as follows:

          * `Estimate`

          * `Workspace` (Project)

          * `WorkspaceGroup` (Group)

          * `Resource`

          * `Story` (Task)

          * `User`.'
        schema:
          type: string
      responses:
        '200':
          description: The Custom Field Value has been retrieved.
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    format: int32
                  meta:
                    type: object
                    properties:
                      count:
                        type: integer
                        format: int32
                      page_count:
                        type: integer
                        format: int32
                      page_number:
                        type: integer
                        format: int32
                      page_size:
                        type: integer
                        format: int32
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        key:
                          type: string
                        id:
                          type: string
                  custom_field_values:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/CustomFieldValue'
                  external_references:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/ExternalReference'
                  custom_fields:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/CustomField'
                  users:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/User'
                  custom_field_choices:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/CustomFieldChoice'
                  stories:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/Story'
                  workspaces:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/Workspace'
                  workspace_groups:
                    type: object
                    additionalProperties:
                      $ref: '#/components/schemas/WorkspaceGroup'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '403':
          description: Forbidden request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '404':
          description: Page Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
        '503':
          description: Service is unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Errors'
    put:
      summary: Updating an existing Custom Field Value
      description: 'Updates an existing value for the specified custom field. Up to 100 values can be updated at one time.


        This endpoint returns structured Custom Field Value objects.

        As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array

        and will be indexed by ID in the `custom_field_values` top-level JSON key.

        Please see our Response Format section for more information.'
      operationId: Update Custom Field Value
      tags:
      - Custom Field Values
      parameters:
      - in: path
        name: id
        required: true
       

# --- truncated at 32 KB (108 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mavenlink/refs/heads/main/openapi/mavenlink-custom-field-values-api-openapi.yml