# Kantata OX API Documentation

Kantata OX's API provides access to the majority of Kantata OX's data model. The API authenticates requests using OAuth2 tokens and exists primarily to allow scripts and 3rd-party applications to access and manage Kantata OX data on behalf of Kantata OX users.

## Schema

Requests must be sent via HTTPS and can be in either JSON or [Rails structured x-www-form-urlencoded](http://stackoverflow.com/a/950198) format. Responses will always be returned in JSON format.  Dates and times are returned as [ISO 8601](http://www.w3.org/TR/NOTE-datetime) formatted strings. All requests to the API must have URLs relative to the base API URL:


```
https://api.mavenlink.com/api/v1/
```

## Authentication

All requests to the Kantata OX API must be authenticated with an OAuth bearer token. See the application workflow for details on how to register an application with Kantata OX and obtain OAuth bearer tokens.

To authenticate using the `Authorization` header, set the header's value to `Bearer <token>`. So, if your token was `abc123`, your HTTP request would include the header `Authorization: Bearer abc123`.

For example, authenticating a request using `curl` would mean running a command similar to this one:


```curl
curl -H "Authorization: Bearer abc123" "https://api.mavenlink.com/api/v1/workspaces.json"
```

All requests to the Kantata OX API require an Authorization header. For brevity, future API request examples in this documentation will not include the example Authorization header parameter.

### OAuth 2.0

[OAuth 2.0](http://oauth.net/2/) provides an evolving, standardized inter-application authentication workflow for the Web.  To build an application that interacts with Kantata OX on behalf of your users, you will need to register your application, and then obtain an OAuth token for each of your users.

#### Registering your application

Register and manage OAuth2 applications that can connect to Kantata OX at the [application management](https://app.mavenlink.com/oauth/applications) page as a Kantata OX account administrator. You'll need a paid Kantata OX account in order to register applications with us. Applications have a name and a callback URL for OAuth2.

If you only want to use the Kantata OX API for yourself, or as a backend connector, you must still register an Application, but then you can get an OAuth token for yourself on the Application's page. If you want your application to be able to use the Kantata OX API on behalf of other users, read the next section.

#### Obtaining tokens for users

Every request to the Kantata OX API must be accompanied by a valid OAuth token, indicating that your application has been authorized by the Kantata OX user in question. When you register an application with us, we'll provide you with a secret key. That key is unique to your application, and shouldn't be shared with anyone else. Treat it like a password.  You'll need it to request user tokens.

To authorize your application for Kantata OX API access and obtain a user token, follow the below steps for each Kantata OX user:

Note: If you are using an OAuth2 library, many of these steps will be handled for you.

  1. Request a short-term code, granted when the Kantata OX user agrees to allow your application access.

      Send your user to `/oauth/authorize` with the REQUIRED parameters `client_id`, `response_type`, and `redirect_uri`.

        * `client_id` is the ID assigned to your application by Kantata OX
        * `response_type` must be set to "code"
        * `redirect_uri` must be set to a URL where your application can accept codes and then exchange them for access tokens.  It should match the `redirect_uri` specified when you registered your application.

      Here is an example URL that an application located at "myapp.com" might use. (Linebreaks are not included in the URL.)

        ```curl
          https://app.mavenlink.com/oauth/authorize?response_type=code&client_id=abc123&redirect_uri=http%3A%2F%2Fmyapp.com%2Foauth%2Fcallback
        ```

  2. The user will be asked by Kantata OX if they want to authorize your application to interact with Kantata OX on their behalf.

      If something goes wrong (like the user refused to authorize your application), Kantata OX will redirect to the `redirect_uri` with query parameters providing information about the error. For example, if authorization is denied, the user will be redirected to:

        ```curl
          $REDIRECT_URI?error=access_denied&error_description=The+resource+owner+or+authorization+server+denied+the+request.
        ```

      If the user allows your application, then Kantata OX will redirect to the `redirect_uri` with query parameters providing your application with a time-limited code that your application can exchange for an access token within the next 5 minutes. Here is an example redirection with granted access:

        ```curl
          $REDIRECT_URI?code=abc123
        ```

  3. Your application exchanges the code for an access token

      Now that your application has a code, it should make a POST request directly to Kantata OX at `https://app.mavenlink.com/oauth/token` to exchange the code for an access token that will allow continued interaction with the Kantata OX API. The request must include the `client_id`, `client_secret`, `grant_type`, `code`, and `redirect_uri` parameters.

      * `client_id` is the ID assigned to your application by Kantata OX
      * `client_secret` is the secret token assigned to your application by Kantata OX
      * `grant_type` must be set to "authorization_code" in order to exchange a code for an access token
      * `code` is the value that was returned in the `code` query parameter when Kantata OX redirected back to your `redirect_uri`
      * `redirect_uri` is the exact same value that you used in the original request to /oauth/authorize

      If the request is invalid for some reason, an error response like the one described above will be returned. However, the parameters will be returned in the response body, encoded as JSON, instead of in the URL encoded as query parameters.

      If the request is valid, Kantata OX will provide a response body, encoded in JSON, containing `access_token` and `token_type`.

        * `access_token` is the token that your application will use to authenticate requests to the Kantata OX API as this user
        * `token_type` will be "bearer"

  4. Your application uses the access token to make authenticated requests to the Kantata OX API

      At this point, your application can use the access token to authenticate requests made to the Kantata OX API as described above in the [Authentication](#authentication) section.

## Bearer Token
**Security Scheme Type:** API Key

**Header parameter name:** Bearer

## OauthSecurity
**Security Scheme Type:** OAuth2

**Flow type:** `authorizationCode`

**Authorization URL:** `https://app.mavenlink.com/oauth/authorize`

**Token URL:** `https://app.mavenlink.com/oauth/token`

### Security

Kantata OX OAuth access tokens do not expire and must be treated with the same security that you would treat client credentials such as passwords.  All requests must be made over SSL and all user security credentials must be stored using industry best practices.  If a user revokes your application's access, usage of the token will result in an error.

## Response Format

Kantata OX API responses come back as JSON.  All GET responses will be of a format similar to the following:


```json
{
  "count": 2,
  "results": [{ key: "workspaces", id: "10" }, { key: "workspaces", id: "11" }],
  "workspaces": {
    "10": {
      id: "10",
      title: "some project",
      participant_ids: ["2", "6"],
      primary_counterpart_id: "6"
    },
    "11": {
      id: "11",
      title: "another project",
      participant_ids: ["2", "8"],
      primary_counterpart_id: "8"
    }
  },
  "users": {
    "2": { id: "2", full_name: "bob" },
    "6": { id: "6", full_name: "chaz" },
    "8": { id: "8", full_name: "jane" }
  }
}
```

As you can see, Kantata OX API responses can return multiple data types simultaneously, transferring objects and their associations in a single response.  In this example, the developer has likely requested the `/workspaces.json` endpoint, asking for inclusion of those workspaces' participants and primary counterparts.  These associations have come back in the top-level object called `users`.  The developer should always use the returned `results` array to retrieve the canonical results from an API request.  This is because some objects may have associations of the same type and can thus be mixed together with their associations in the JSON.  For example, stories (tasks) have sub_stories which are the same type of object, so looking directly at the returned `stories` key when stories have been requested to include their sub_stories will be confusing and will include both.  Instead, iterate the `results` key to determine exactly which top-level objects matched your query and in what order.

The follow sections explain how to customize further the Kantata OX API responses to your needs.

## Pagination

Large lists of items may be returned in pages. The JSON response will contain a key named `count` with a value of the number of objects returned by the entire query. If that number is greater than the number of objects returned by the request, additional objects may be requested by setting the parameter `page`, the parameter `per_page`, or both.

If you would like to start at a specific offset you may alternatively use `limit` and `offset` parameters.  If both `limit` and `offset` are passed then `page` and `per_page` are ignored, otherwise behavior falls back to `page` and `per_page`.

* `page`
  * type: Integer
  * default: 1
* `per_page`
  * type: Integer
  * default: 20
  * maximum: 200
* `usage`
  * workspaces.json?page=2&per_page=15

-or-

* `limit`
  * type: Integer
  * minimum: 1
* `offset`
  * type: Integer
  * minimum: 0
* `usage`
  * workspaces.json?limit=15&offset=10

## Request by ID

While each API endpoint returns a paginated listing of the data available, it is sometimes more useful to request only one (or only a few) items. The Kantata OX API provides two ways to do this.  The first, via the `only` parameter, allows you to request one or more resources directly by ID. To request the data for a single Workspace with an ID of 5, make an API request to the URL `GET /api/v1/workspaces.json?only=5`. Multiple IDs can be supplied in a comma separated list, like `GET /api/v1/workspaces.json?only=5,6,7`. The returned JSON will contain only the objects with those IDs.

* `only`
  * type: Comma separated Integers
  * default: not applicable
* `usage`
  * workspaces.json?only=5,6

Additionally, we support traditional RESTful routes, such as `GET /api/v1/workspaces/5.json`.  These routes also support our standard filters and includes, both detailed below.  Unlike `only` requests to our "index" routes, these "show" routes will generate a 404 response if the requested resource cannot be found.  Sometimes this is due to default filters being applied, so be sure to check the filter defaults applied in the specific documentation for the requested resource.  More on filters below.

## Filters

Many API endpoints also provide an optional set of filters that can be applied to the data that will be returned. Each filter, and the logic behind it, is documented on the individual endpoint pages, but the general form is a URL query parameter or request parameter like `filter1=arg1&filter2=arg2`, where `filter1` and `filter2` are the names of two different filters, and `arg1` and `arg2` are the arguments to each filter, respectively.  Additionally, some filters have default values, which indicates that they are automatically applied to your request with their default value.  Default values are applied both on "index" (`GET /workspaces.json`) requests and "show" (`GET /workspaces/1.json`) requests.

## Includes

Some objects returned by the API may have associations that are not included in the JSON response by default. Those associated objects can be requested by adding an `include` parameter to the request. For example, to request both a list of posts, and the users that created those posts, you could request `/posts.json?include=user`. The response will consist of a JSON object with an array of result mappings under the `"results"` key, a `"posts"` key with a hash of post objects, keyed by id, and a `"users"` key with a hash of user objects, again keyed by id. To find the user that created a particular post, just use the post object's `"user_id"` key to find the user object keyed with the same id.

Multiple associations may be fetched simultaneously by adding comma-separated values to the `include` parameter. For example, to fetch the user and replies associated with post 6, you might request `/posts.json?only=6&include=user,attachments`, which would supply both the users and the attachments that belong to the posts returned in the response.

_Example_


```curl
curl -H "Authorization: Bearer abc123" "https://api.mavenlink.com/api/v1/posts.json?include=user,attachments"
```

```json
{
  "count": 1,
  "results": [
    { "key": "posts", "id": "16270634" }
  ],
  "posts": {
    "16270634": {
      "id": "16270634",
      "message": "Hello World",
      "has_attachments": true,
      "user_id": "2",
      "workspace_id": "2249167",
      "attachment_ids": ["6700107"]
    }
  },
  "users": {
    "2": {
      "id": "2",
      "full_name": "John Doe",
      "email_address": "johnny_doe@example.com"
    }
  },
  "attachments": {
    "6700107": {
      "id": "6700107",
      "created_at": "2013-04-15T16:48:48-07:00",
      "filename": "turtle.jpg",
      "filesize": 16225
    }
  }
}
```

## Optional Fields

Some objects returned by the API may have fields that are not included in the JSON response by default. Those optional fields can be requested by adding an `optional_fields` parameter to the request. For example, to request a list of stories and include the optional field `can_edit`, you could request `/stories.json?optional_fields=can_edit`. Each story in the response will include the requested optional field in their JSON.

Multiple optional fields may be requested simultaneously by adding comma-separated values to the `optional_fields` parameter. For example, to fetch stories and include both `can_edit` and `can_post` fields in the response, you can request `/stories.json?optional_fields=can_edit,can_post`.

_Example_


```curl
curl -H "Authorization: Bearer abc123" "https://api.mavenlink.com/api/v1/stories.json?optional_fields=can_edit,can_post"
```

```json
{
  "count": 1,
  "results": [
    {
      "key": "stories",
      "id": "1941361"
    }
  ],
  "stories": {
    "1937928": {
      "title": "Example Story",
      "description": "example description",
      ...
      "subtree_depth": 0,
      "ancestry_depth": 0,
      "can_edit": true,
      "can_post": true,
      "time_trackable": true,
      "time_estimate_in_minutes": null,
      ...
      "parent_id": null,
      "root_id": null,
      "id": "1937928"
    }
  },
  "meta": {
    "count": 1,
    "page_count": 1,
    "page_number": 1,
    "page_size": 20
  }
}
```

## Ordering

Each endpoint in the Kantata OX API allows ordering by various fields.  If we're missing a sort field that you need, please ask!  See the specific endpoint documentation for endpoint-specific details.

When ordering, supply `order` with the name of a valid sort field for the endpoint and a direction.  For example, `order=created_at:desc`.

## Searching

Some API endpoints support text search, however only some filters can be combined with search, and results will be returned ordered by relevancy to the search query.  Search does not apply to `only` requests.  If search is unavailable the response will contain a system error describing the problem.

To make a search request, simply add a `search` parameter to the request.  For example, to search for stories with "estimates" in the title, assignee names, or other fields, request `/stories.json?search=estimates`

## Errors

If there is an error while processing your request, the response will include an HTTP status code indicating the error.  Errors are currently returned as a top-level `errors` key with an array of error objects.  For example, on OAuth failure you will receive a HTTP 401 with the following JSON body:
  

```json
{
  errors: [
    {
      type: "oauth"
      message: "Invalid OAuth 2 Request"
    }
  ]
}
```

System errors will look like:


```json
{
  errors: [
    {
      type: "system"
      message: "Your account has been canceled"
    }
  ]
}
```

And model validation errors look like:


```json
{
  errors: [
    {
      type: "validation",
      message: "Please give your project a title",
      field: "title"
    },
    {
      type: "validation",
      message: "Please select a role for this project",
      field: "creator_role"
    }
  ]
}
```


## Rate Limits

When too many requests are made in a short amount of time, the API may reply with the HTTP code 429 Too Many Requests. In that case, simply retry your request after a small delay.

There are general rate limits applied to all requests. The following endpoints also have their own rate limits:

* [Create a workspace](/tag/Workspaces#operation/create-workspace) - `POST /api/v1/workspaces`
* [Get workspaces](/tag/Workspaces#operation/get-workspaces) - `GET /api/v1/workspaces`
* [Create a workspace invitation](/tag/Workspaces#operation/create-workspace-invitation) - `POST /api/v1/workspaces/{id}/invite`
* [Create an account invitation](/tag/Account-Invitations#operation/create-account-invitation) (i.e. Create a new user) - `POST /api/v1/account_invitations`
* [Resend an account invitation](/tag/Account-Invitations#operation/resend-account-invitation) - `PUT /api/v1/account_invitations/{id}/resend`
* [Create custom field value](/tag/Custom-Field-Values#operation/create-custom-field-value) - `POST /api/v1/custom_field_values`
* [Get custom field values](/tag/Custom-Field-Values#operation/get-custom-field-values) - `GET /api/v1/custom_field_values`
* [Create a project snapshot](/tag/Project-Snapshots#operation/create-project-snapshot) - `POST /api/v1/project_snapshots`

Please see the [Knowledge Base](https://knowledge.kantata.com/hc/en-us/articles/9698066628123) for the exact rate limits.

Please note that we reserve the right to change the limits at any time. In addition, if we determine that someone is using the API improperly, we may adjust the limits further.

## Timeouts

All API requests will timeout after 3 minutes. Timeouts typically occur when there is a lot of data to return. You can use the following strategies to avoid your requests timing out:

* Break up your request into smaller requests
* Apply a date filter to your request
* If you are polling multiple endpoints in order to export data or sync Kantata data to a third-party system, use the [Subscribed Events API](/tag/Events) instead. You can get recently updated objects in one request.


Version: 1.0.0
License: COPYRIGHT © 2026 Kantata, Inc.

## Servers

```
https://api.mavenlink.com/api/v1
```

## Security

### BearerToken

Type: apiKey
In: header
Name: Bearer

### OauthSecurity

Type: oauth2
Authorization URL: https://app.mavenlink.com/oauth/authorize
Token URL: https://app.mavenlink.com/oauth/token
Scopes:

## Download OpenAPI description

 - [Kantata OX API Documentation](https://developer.kantata.com/_bundle/Kantata/specification.yaml)

## Event Types

 - [GET /subscribed_events/event_types](https://developer.kantata.com/kantata/specification/event-types/get%20subscribed%20event%20types.md): Returns a list of all [Event Types](https://mavenlink.zendesk.com/hc/en-us/articles/4407962435227) tracked by Subscribed Events. The event type schema, accessible using the `subscribed_event_type_sche
## Events

 - [GET /subscribed_events](https://developer.kantata.com/kantata/specification/events/get%20subscribed%20events.md): Returns up to 9 days of records for all [event types](https://mavenlink.zendesk.com/hc/en-us/articles/4407962435227), unless filter parameters have been applied. Only records associated with the reque
## Account Locations

 - [GET /account_locations](https://developer.kantata.com/kantata/specification/account-locations/get%20account%20locations.md): This endpoint returns structured Account Location 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 i
 - [POST /account_locations](https://developer.kantata.com/kantata/specification/account-locations/create%20account%20location.md): This endpoint returns structured Account Location 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 i
 - [PUT /account_locations/{id}](https://developer.kantata.com/kantata/specification/account-locations/update%20account%20location.md): This endpoint returns structured Account Location 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 i
 - [DELETE /account_locations/{id}](https://developer.kantata.com/kantata/specification/account-locations/delete%20account%20location.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Access Group Memberships

 - [GET /access_group_memberships](https://developer.kantata.com/kantata/specification/access-group-memberships/get%20access%20group%20memberships.md): Returns all access group memberships. The non-editable "Account Administrators" group is excluded from the response. This endpoint returns structured Access Group Membership objects. As with all Kanta
 - [POST /access_group_memberships](https://developer.kantata.com/kantata/specification/access-group-memberships/create%20access%20group%20membership.md): Adds a user to an access group. Note: To add a user to the Account Administrators access group, you must update the user's account membership permission instead. This endpoint returns structured Acces
 - [GET /access_group_memberships/{id}](https://developer.kantata.com/kantata/specification/access-group-memberships/get%20access%20group%20membership.md): This endpoint returns structured Access Group Membership 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
 - [DELETE /access_group_memberships/{id}](https://developer.kantata.com/kantata/specification/access-group-memberships/delete%20access%20group%20membership.md): Deletes the specified access group membership (i.e. removes the user from the access group). Note: To remove a user from the Account Administrators access group, you must update the user's account mem
## Account Colors

 - [GET /account_colors](https://developer.kantata.com/kantata/specification/account-colors/get%20account%20colors.md): Each project in Kantata OX can be tagged with a Project Color for categorization purposes. The colors that are available for projects are defined at the account level. Use the id of Account Color to r
## Account Invitations

 - [GET /account_invitations](https://developer.kantata.com/kantata/specification/account-invitations/get%20account%20invitations.md): This endpoint returns structured Account Invitation 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
 - [POST /account_invitations](https://developer.kantata.com/kantata/specification/account-invitations/create%20account%20invitation.md): Adds a user to your account. Any members added in excess of your contracted license count are billed at a prorated subscription fee for the remainder of the billing term. To review your contracted lic
 - [GET /account_invitations/{id}](https://developer.kantata.com/kantata/specification/account-invitations/get%20account%20invitation.md): This endpoint returns structured Account Invitation 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
 - [PUT /account_invitations/{id}](https://developer.kantata.com/kantata/specification/account-invitations/update%20account%20invitation.md): This endpoint returns structured Account Invitation 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
 - [DELETE /account_invitations/{id}](https://developer.kantata.com/kantata/specification/account-invitations/delete%20account%20invitation.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
 - [PUT /account_invitations/{id}/resend](https://developer.kantata.com/kantata/specification/account-invitations/resend%20account%20invitation.md): Resends an account invitation email to an invited user. This endpoint has its own rate limit. See the [Knowledge Base](https://knowledge.kantata.com/hc/en-us/articles/9698066628123) for more informati
## Account Memberships

 - [GET /account_memberships](https://developer.kantata.com/kantata/specification/account-memberships/get%20account%20memberships.md): You can request either GET /api/v1/account_memberships.json?only=5 or GET /api/v1/account_memberships/5.json. In both cases, default filters will be applied. Unless you provide the is_active:false fil
 - [GET /account_memberships/{id}](https://developer.kantata.com/kantata/specification/account-memberships/get%20account%20membership.md): This endpoint returns structured Account Membership 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
 - [PUT /account_memberships/{id}](https://developer.kantata.com/kantata/specification/account-memberships/update%20account%20membership.md): This endpoint returns structured Account Membership 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
 - [DELETE /account_memberships/{id}](https://developer.kantata.com/kantata/specification/account-memberships/delete%20account%20membership.md): This removes the member from your account and places them on a separate Kantata OX account. It is important to know that the account owner cannot be removed. **WARNING:** Since the removed member gets
 - [PUT /account_memberships/{id}/disable](https://developer.kantata.com/kantata/specification/account-memberships/deactivate%20account%20membership.md): Disables a user in an account This endpoint returns structured Account Membership objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` a
 - [PUT /account_memberships/{id}/enable](https://developer.kantata.com/kantata/specification/account-memberships/activate%20account%20membership.md): Enables a user in an account This endpoint returns structured Account Membership objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` ar
## Backup Approver Associations

 - [GET /backup_approver_associations](https://developer.kantata.com/kantata/specification/backup-approver-associations/get%20backup%20approver%20associations.md): The index endpoint only returns backup approver associations that are visible to the user. Backup approver associations are only visible to account members. This endpoint returns structured Backup App
 - [POST /backup_approver_associations](https://developer.kantata.com/kantata/specification/backup-approver-associations/create%20backup%20approver%20association.md): This endpoint returns structured Backup Approver Association objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be inde
 - [GET /backup_approver_associations/{id}](https://developer.kantata.com/kantata/specification/backup-approver-associations/get%20backup%20approver%20association.md): This endpoint returns structured Backup Approver Association objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be inde
 - [PUT /backup_approver_associations/{id}](https://developer.kantata.com/kantata/specification/backup-approver-associations/update%20backup%20approver%20association.md): This endpoint returns structured Backup Approver Association objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be inde
 - [DELETE /backup_approver_associations/{id}](https://developer.kantata.com/kantata/specification/backup-approver-associations/delete%20backup%20approver%20association.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Billable Utilizations

 - [GET /billable_utilizations](https://developer.kantata.com/kantata/specification/billable-utilizations/get%20billable%20utilizations.md): This endpoint returns structured Billable Utilization 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
 - [POST /billable_utilizations](https://developer.kantata.com/kantata/specification/billable-utilizations/create%20billable%20utilization.md): This endpoint returns structured Billable Utilization 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
 - [GET /billable_utilizations/{id}](https://developer.kantata.com/kantata/specification/billable-utilizations/get%20billable%20utilization.md): This endpoint returns structured Billable Utilization 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
 - [PUT /billable_utilizations/{id}](https://developer.kantata.com/kantata/specification/billable-utilizations/update%20billable%20utilization.md): This endpoint returns structured Billable Utilization 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
 - [DELETE /billable_utilizations/{id}](https://developer.kantata.com/kantata/specification/billable-utilizations/delete%20billable%20utilization.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Cost Rates

 - [GET /cost_rates](https://developer.kantata.com/kantata/specification/cost-rates/get%20cost%20rates.md): This endpoint returns structured Cost Rate 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 `
 - [POST /cost_rates](https://developer.kantata.com/kantata/specification/cost-rates/create%20cost%20rate.md): Creates a new cost rate for a specified account membership and currency. If a cost rate already exists for the specified account membership and currency, it will be overridden, effectively making this
 - [PUT /cost_rates/{id}](https://developer.kantata.com/kantata/specification/cost-rates/update%20cost%20rate.md): This endpoint returns structured Cost Rate 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 `
 - [DELETE /cost_rates/{id}](https://developer.kantata.com/kantata/specification/cost-rates/delete%20cost%20rate.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Custom Branding

 - [GET /custom_branding](https://developer.kantata.com/kantata/specification/custom-branding/get%20custom%20branding%20settings.md): Retrieve custom branding information for the current user's account. This endpoint returns structured Custom Branding (Private Label) objects. As with all Kantata OX API endpoints, the returned data w
## Organization Memberships

 - [GET /organization_memberships](https://developer.kantata.com/kantata/specification/organization-memberships/get%20organization%20memberships.md): This endpoint returns structured Organization Membership 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
 - [POST /organization_memberships](https://developer.kantata.com/kantata/specification/organization-memberships/create%20organization%20membership.md): Applies an organization to a workspace (project) or user. **Bulk Create** This endpoint supports bulk creating up to 100 objects. In the request body, set the top-level key to its plural form and plac
 - [GET /organization_memberships/{id}](https://developer.kantata.com/kantata/specification/organization-memberships/get%20organization%20membership.md): This endpoint returns structured Organization Membership 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
 - [PUT /organization_memberships/{id}](https://developer.kantata.com/kantata/specification/organization-memberships/update%20organization%20membership.md): This endpoint returns structured Organization Membership 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
 - [DELETE /organization_memberships/{id}](https://developer.kantata.com/kantata/specification/organization-memberships/delete%20organization%20membership.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Organizations

 - [GET /organizations](https://developer.kantata.com/kantata/specification/organizations/get%20organizations.md): This endpoint returns structured Organization 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 th
 - [POST /organizations](https://developer.kantata.com/kantata/specification/organizations/create%20organization.md): Creates an organization. **Bulk Create** This endpoint supports bulk creating up to 100 objects. In the request body, set the top-level key to its plural form and place the objects in an array. Exampl
 - [GET /organizations/{id}](https://developer.kantata.com/kantata/specification/organizations/get%20organization.md): This endpoint returns structured Organization 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 th
 - [PUT /organizations/{id}](https://developer.kantata.com/kantata/specification/organizations/update%20organization.md): This endpoint returns structured Organization 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 th
 - [DELETE /organizations/{id}](https://developer.kantata.com/kantata/specification/organizations/delete%20organization.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Roles

 - [GET /roles](https://developer.kantata.com/kantata/specification/roles/get%20roles.md): The Roles endpoint provides a list of all active roles that belong to the account of the user making the request. The response will contain an array of role objects, sorted alphabetically by the `name
 - [POST /roles](https://developer.kantata.com/kantata/specification/roles/create%20role.md): This endpoint returns structured Role 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 `roles
 - [GET /roles/{id}](https://developer.kantata.com/kantata/specification/roles/get%20role.md): This endpoint returns structured Role 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 `roles
 - [PUT /roles/{id}](https://developer.kantata.com/kantata/specification/roles/update%20role.md): This endpoint returns structured Role 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 `roles
 - [DELETE /roles/{id}](https://developer.kantata.com/kantata/specification/roles/delete%20role.md): The Role will be soft-deleted if it is currently in use. If not, it will be removed. The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kant
## Skill Categories

 - [GET /skill_categories](https://developer.kantata.com/kantata/specification/skill-categories/get%20skill%20categories.md): This endpoint returns structured Skill Category 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
## Skill Memberships

 - [GET /skill_memberships](https://developer.kantata.com/kantata/specification/skill-memberships/get%20skill%20memberships.md): Returns a list of viewable skill memberships. This endpoint returns structured Skill Membership objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in t
 - [POST /skill_memberships](https://developer.kantata.com/kantata/specification/skill-memberships/create%20skill%20membership.md): Adds a skill to a user. **Bulk Create** This endpoint supports bulk creating up to 200 objects. In the request body, set the top-level key to its plural form and place the objects in an array. Example
 - [GET /skill_memberships/{id}](https://developer.kantata.com/kantata/specification/skill-memberships/get%20skill%20membership.md): Returns a skill membership. This endpoint returns structured Skill Membership objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array
 - [PUT /skill_memberships/{id}](https://developer.kantata.com/kantata/specification/skill-memberships/update%20skill%20membership.md): This endpoint returns structured Skill Membership 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 i
 - [DELETE /skill_memberships/{id}](https://developer.kantata.com/kantata/specification/skill-memberships/delete%20skill%20membership.md): Removes a skill from a user. The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why th
## Skills

 - [GET /skills](https://developer.kantata.com/kantata/specification/skills/get%20skills.md): The Skills endpoint provides a list of every Skill that belongs to the Account of the User making the request. The response will contain an array of Skill objects, sorted alphabetically by the `name`
 - [POST /skills](https://developer.kantata.com/kantata/specification/skills/create%20skill.md): Adds a new skill to the account. **Note:** You cannot create more than 5000 skills per account. **Bulk Create** This endpoint supports bulk creating up to 200 objects. In the request body, set the top
 - [GET /skills/{id}](https://developer.kantata.com/kantata/specification/skills/get%20skill.md): This endpoint returns structured Skill 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 `skil
 - [PUT /skills/{id}](https://developer.kantata.com/kantata/specification/skills/update%20skill.md): This endpoint returns structured Skill 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 `skil
 - [DELETE /skills/{id}](https://developer.kantata.com/kantata/specification/skills/delete%20skill.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Task Status Sets

 - [GET /task_status_sets](https://developer.kantata.com/kantata/specification/task-status-sets/get%20task%20status%20sets.md): Gets a list of task status sets on the account. To include information in the response about the statuses within the sets, add `?include=custom_task_statuses` to the request. This endpoint returns str
 - [POST /task_status_sets](https://developer.kantata.com/kantata/specification/task-status-sets/create%20task%20status%20set.md): Creates a task status set on the account that contains only the four default statuses (e.g. `custom_task_statuses`)—`not started`, `started`, `needs info`, and `completed`. This endpoint returns struc
 - [GET /task_status_sets/{id}](https://developer.kantata.com/kantata/specification/task-status-sets/get%20task%20status%20set.md): Gets a task status set on the account. To include information in the response about the statuses within the set, add `?include=custom_task_statuses` to the request. This endpoint returns structured Ta
 - [PUT /task_status_sets/{id}](https://developer.kantata.com/kantata/specification/task-status-sets/update%20task%20status%20set.md): Updates a task status set. Only the `name` can be updated with this endpoint. To update the statuses available in the set, use the Custom Task Statuses API instead. To change which set is the account
 - [DELETE /task_status_sets/{id}](https://developer.kantata.com/kantata/specification/task-status-sets/delete%20task%20status%20set.md): Deletes a task status set and the statuses within the set. Only task status sets that are not in use can be deleted. The response will contain no content and an HTTP 204 status code if the request was
 - [PUT /task_status_sets/{id}/update_account_default](https://developer.kantata.com/kantata/specification/task-status-sets/update%20account%20default.md): Designates a task status set as the default set to be applied to new projects. This endpoint returns structured Task Status Set objects. As with all Kantata OX API endpoints, the returned data will be
## Task Statuses

 - [GET /custom_task_statuses](https://developer.kantata.com/kantata/specification/task-statuses/get%20custom%20task%20statuses.md): This endpoint returns structured Custom Task Status 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
 - [POST /custom_task_statuses](https://developer.kantata.com/kantata/specification/task-statuses/create%20custom%20task%20status.md): Adds a new custom status to a task status set. This endpoint returns structured Custom Task Status objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order i
 - [GET /custom_task_statuses/{id}](https://developer.kantata.com/kantata/specification/task-statuses/get%20custom%20task%20status.md): This endpoint returns structured Custom Task Status 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
 - [PUT /custom_task_statuses/{id}](https://developer.kantata.com/kantata/specification/task-statuses/update%20custom%20task%20status.md): Updates a custom task status. The name and position in the task status set can be updated. The status cannot be moved to a different status set and the category cannot be changed. This endpoint return
 - [DELETE /custom_task_statuses/{id}](https://developer.kantata.com/kantata/specification/task-statuses/delete%20custom%20task%20status.md): Deletes a custom task status within a task status set. If assigned to a task (story), the task’s `status` will default to the status type (category)—`not started`, `started`, `needs info`, or `complet
## User Group Memberships

 - [GET /user_group_memberships](https://developer.kantata.com/kantata/specification/user-group-memberships/get%20user%20group%20memberships.md): This endpoint returns structured User Group Membership 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
 - [POST /user_group_memberships](https://developer.kantata.com/kantata/specification/user-group-memberships/create%20user%20group%20memberships.md): Adds a user to a Workspace Group. **Bulk Create** This endpoint supports bulk creating up to 100 objects. In the request body, set the top-level key to its plural form and place the objects in an arra
 - [DELETE /user_group_memberships/{id}](https://developer.kantata.com/kantata/specification/user-group-memberships/delete%20user%20group%20membership.md): Removes a user from a Workspace Group. The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explain
## Users

 - [GET /users](https://developer.kantata.com/kantata/specification/users/get%20users.md): This endpoint allows you to access all visible users based on the permission level of the requester. > **Note**: This endpoint relies on project participation and will not return a member of your acco
 - [GET /users/me](https://developer.kantata.com/kantata/specification/users/get%20my%20user%20data.md): This endpoint allows you to fetch your own data. This endpoint returns structured User objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `resul
 - [GET /users/{id}](https://developer.kantata.com/kantata/specification/users/get%20user.md): This endpoint returns structured User 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 `users
 - [PUT /users/{id}](https://developer.kantata.com/kantata/specification/users/update%20user.md): This endpoint returns structured User 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 `users
 - [GET /users/{id}/capacity](https://developer.kantata.com/kantata/specification/users/get%20my%20work%20capacity.md): This endpoint returns a summary of a user's work capacity for a provided range of dates. This endpoint returns structured User objects. As with all Kantata OX API endpoints, the returned data will be
 - [DELETE /users/{id}/profile_photo](https://developer.kantata.com/kantata/specification/users/reset%20user%20profile%20photo.md): Delete the profile photo for the specified user. This endpoint returns structured User objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `resul
 - [POST /users/{id}/profile_photo](https://developer.kantata.com/kantata/specification/users/update%20user%20profile%20photo.md): Update the profile photo for the specified user. This endpoint returns structured User objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `resul
## Currencies

 - [GET /currencies](https://developer.kantata.com/kantata/specification/currencies/get%20currencies.md): Returns all currencies supported by Kantata OX, unless filter parameters have been applied.
## Custom Field Choices

 - [GET /custom_field_choices](https://developer.kantata.com/kantata/specification/custom-field-choices/get%20custom%20field%20choices.md): Returns all possible choices for all `'single'` and `'multi'` type custom fields on the requester's account. This endpoint returns structured Custom Field Choice objects. As with all Kantata OX API en
## Custom Field Sets

 - [GET /custom_field_sets](https://developer.kantata.com/kantata/specification/custom-field-sets/get%20custom%20field%20sets.md): This endpoint returns structured Custom Field Set 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 i
 - [POST /custom_field_sets](https://developer.kantata.com/kantata/specification/custom-field-sets/create%20custom%20field%20set.md): To create a custom field, the current user must be the Account Administrator. This endpoint returns structured Custom Field Set objects. As with all Kantata OX API endpoints, the returned data will be
 - [GET /custom_field_sets/{id}](https://developer.kantata.com/kantata/specification/custom-field-sets/get%20custom%20field%20set.md): This endpoint returns structured Custom Field Set 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 i
 - [PUT /custom_field_sets/{id}](https://developer.kantata.com/kantata/specification/custom-field-sets/update%20custom%20field%20set.md): To update a custom field, the current user must be the Account Administrator. NOTE: `subject_type` cannot be changed. This endpoint returns structured Custom Field Set objects. As with all Kantata OX
 - [DELETE /custom_field_sets/{id}](https://developer.kantata.com/kantata/specification/custom-field-sets/delete%20custom%20field%20set.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Custom Field Values

 - [GET /custom_field_values](https://developer.kantata.com/kantata/specification/custom-field-values/get%20custom%20field%20values.md): Returns all values for the specified set of [Custom Fields](https://mavenlink.zendesk.com/hc/en-us/articles/202924760-Custom-Fields-Overview-#arrange). This endpoint has its own rate limit. See the [K
 - [POST /custom_field_values](https://developer.kantata.com/kantata/specification/custom-field-values/create%20custom%20field%20value.md): 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 val
 - [DELETE /custom_field_values](https://developer.kantata.com/kantata/specification/custom-field-values/delete%20custom%20field%20values.md): 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 valu
 - [GET /custom_field_values/{id}](https://developer.kantata.com/kantata/specification/custom-field-values/get%20custom%20field%20value.md): 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
 - [PUT /custom_field_values/{id}](https://developer.kantata.com/kantata/specification/custom-field-values/update%20custom%20field%20value.md): 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
 - [DELETE /custom_field_values/{id}](https://developer.kantata.com/kantata/specification/custom-field-values/delete%20custom%20field%20value.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Custom Fields

 - [GET /custom_fields](https://developer.kantata.com/kantata/specification/custom-fields/get%20custom%20fields.md): Returns all Custom Fields, unless filter parameters have been applied. This endpoint returns structured Custom Field objects. As with all Kantata OX API endpoints, the returned data will be referenced
 - [POST /custom_fields](https://developer.kantata.com/kantata/specification/custom-fields/create%20custom%20field.md): This endpoint returns structured Custom Field 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 th
 - [PUT /custom_fields/{id}](https://developer.kantata.com/kantata/specification/custom-fields/update%20custom%20field.md): Updates an existing custom field. ### Parameters that cannot be updated Note that the `unique_constraint` and `value_type` parameters cannot be updated. They are set during the process of [creating a
 - [DELETE /custom_fields/{id}](https://developer.kantata.com/kantata/specification/custom-fields/delete%20custom%20field.md): Deletes a custom field. Custom field values are deleted with their custom fields. The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata
## Data Export Schema

 - [GET /exports/available_datasets](https://developer.kantata.com/kantata/specification/data-export-schema/get%20exports%20available%20datasets.md): Returns a list of the available data sets to export—as well as the respective available columns within each data set, which could include custom fields. The response will include unique `key` values f
## Data Exports

 - [GET /exports](https://developer.kantata.com/kantata/specification/data-exports/get%20exports.md): Returns information on all exports that have been requested, including their status and the data sets and columns that were selected for the exports. This endpoint returns structured Data Export objec
 - [POST /exports](https://developer.kantata.com/kantata/specification/data-exports/create%20export.md): Generates an export. Use the data set `key` and each column `key` that you want to be included in your export. The values need to be properly formatted JSON, which means you may need to escape special
 - [GET /exports/{id}](https://developer.kantata.com/kantata/specification/data-exports/get%20export.md): Returns information on a single export that has been requested, including the status and the data sets and columns that were selected for the export. This endpoint returns structured Data Export objec
 - [PUT /exports/{id}](https://developer.kantata.com/kantata/specification/data-exports/update%20export.md): Cancel an export that is in a Queued status. This endpoint returns structured Data Export objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `re
 - [GET /exports/{id}/download_url](https://developer.kantata.com/kantata/specification/data-exports/download%20export.md): Returns a download URL for a successfully generated data export that expires in 60 seconds. With this URL, you can use `curl` or `wget` to download the export in a CSV format. This endpoint returns st
## Estimate Scenario Resource Allocations

 - [PUT /estimate_scenario_resource_allocations/{id}](https://developer.kantata.com/kantata/specification/estimate-scenario-resource-allocations/update%20estimate%20scenario%20resource%20allocation.md): This endpoint returns structured Estimate Scenario Resource Allocation objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and wi
## Estimate Scenario Resources

 - [GET /estimate_scenario_resources](https://developer.kantata.com/kantata/specification/estimate-scenario-resources/get%20estimate%20scenario%20resources.md): This endpoint provides a list of all scenario resources associated with the specified estimate scenario. This endpoint returns structured Estimate Scenario Resource objects. As with all Kantata OX API
 - [POST /estimate_scenario_resources](https://developer.kantata.com/kantata/specification/estimate-scenario-resources/create%20estimate%20scenario%20resource.md): This endpoint returns structured Estimate Scenario Resource objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be index
 - [GET /estimate_scenario_resources/{id}](https://developer.kantata.com/kantata/specification/estimate-scenario-resources/get%20estimate%20scenario%20resource.md): This endpoint returns structured Estimate Scenario Resource objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be index
 - [PUT /estimate_scenario_resources/{id}](https://developer.kantata.com/kantata/specification/estimate-scenario-resources/update%20estimate%20scenario%20resource.md): This endpoint returns structured Estimate Scenario Resource objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be index
 - [DELETE /estimate_scenario_resources/{id}](https://developer.kantata.com/kantata/specification/estimate-scenario-resources/delete%20estimate%20scenario%20resource.md): This will delete an estimate scenario resource and its allocations. The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error mess
## Estimate Scenarios

 - [GET /estimate_scenarios](https://developer.kantata.com/kantata/specification/estimate-scenarios/get%20estimate%20scenarios.md): This endpoint returns structured Estimate Scenario 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
 - [POST /estimate_scenarios](https://developer.kantata.com/kantata/specification/estimate-scenarios/create%20estimate%20scenario.md): This endpoint returns structured Estimate Scenario 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
 - [GET /estimate_scenarios/{id}](https://developer.kantata.com/kantata/specification/estimate-scenarios/get%20estimate%20scenario.md): This endpoint returns structured Estimate Scenario 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
 - [PUT /estimate_scenarios/{id}](https://developer.kantata.com/kantata/specification/estimate-scenarios/update%20estimate%20scenario.md): This endpoint returns structured Estimate Scenario 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
 - [DELETE /estimate_scenarios/{id}](https://developer.kantata.com/kantata/specification/estimate-scenarios/delete%20estimate%20scenario.md): Deletes an estimate scenario, including all of its resources and their allocations. The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kanta
## Estimates

 - [GET /estimates](https://developer.kantata.com/kantata/specification/estimates/get%20estimates.md): This endpoint returns structured Estimate 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 `e
 - [POST /estimates](https://developer.kantata.com/kantata/specification/estimates/create%20estimate.md): This endpoint returns structured Estimate 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 `e
 - [GET /estimates/{id}](https://developer.kantata.com/kantata/specification/estimates/get%20estimate.md): This endpoint returns structured Estimate 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 `e
 - [PUT /estimates/{id}](https://developer.kantata.com/kantata/specification/estimates/update%20estimate.md): This endpoint returns structured Estimate 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 `e
 - [DELETE /estimates/{id}](https://developer.kantata.com/kantata/specification/estimates/delete%20estimate.md): Deletes the estimate and it's associated scenarios, scenario resources, and scenario resource allocations. The response will contain no content and an HTTP 204 status code if the request was successfu
## Expense Budgets

 - [GET /expense_budgets](https://developer.kantata.com/kantata/specification/expense-budgets/get%20expense%20budgets.md): Gets a list of expense budgets. This endpoint returns structured Expense Budgets objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` ar
 - [POST /expense_budgets](https://developer.kantata.com/kantata/specification/expense-budgets/create%20expense%20budget.md): Creates a new expense budget. The following combinations of `fixed_fee`, `burns_budget`, and `billable` are allowed: - `fixed_fee` and `burns_budget` and `billable`: Known as a fixed fee budget - `bur
 - [GET /expense_budgets/{id}](https://developer.kantata.com/kantata/specification/expense-budgets/get%20expense%20budget.md): Gets a single expense budget. This endpoint returns structured Expense Budgets objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` arra
 - [PUT /expense_budgets/{id}](https://developer.kantata.com/kantata/specification/expense-budgets/update%20expense%20budget.md): Updates an expense budget. This endpoint returns structured Expense Budgets objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array a
 - [DELETE /expense_budgets/{id}](https://developer.kantata.com/kantata/specification/expense-budgets/delete%20expense%20budget.md): Deletes an expense budget. An expense budget cannot be deleted if there are expenses logged to it. The response will contain no content and an HTTP 204 status code if the request was successful, or a
## Attachments

 - [POST /attachments](https://developer.kantata.com/kantata/specification/attachments/create%20attachment.md): There are two different ways to upload file attachments. Direct CDN upload, or Kantata OX server upload. ## Direct CDN Upload Uploading directly to the CDN is a three step process but allows for fast
 - [PUT /attachments/{id}](https://developer.kantata.com/kantata/specification/attachments/update%20attachment.md): This endpoint returns structured Attachment 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
 - [DELETE /attachments/{id}](https://developer.kantata.com/kantata/specification/attachments/delete%20attachment.md): Destroys an attachment from its subject object. The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors
 - [PUT /attachments/{id}/sync](https://developer.kantata.com/kantata/specification/attachments/sync%20attachment.md): Marks an upload as complete, and verifies its existence on the CDN. This endpoint returns structured Attachment objects. As with all Kantata OX API endpoints, the returned data will be referenced in s
## Expense Categories

 - [GET /expense_categories](https://developer.kantata.com/kantata/specification/expense-categories/get%20expense%20categories.md): This endpoint returns structured Expense Category 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 i
 - [POST /expense_categories](https://developer.kantata.com/kantata/specification/expense-categories/create%20expense%20category.md): This endpoint returns structured Expense Category 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 i
 - [PUT /expense_categories/{id}](https://developer.kantata.com/kantata/specification/expense-categories/update%20expense%20category.md): This endpoint returns structured Expense Category 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 i
 - [DELETE /expense_categories/{id}](https://developer.kantata.com/kantata/specification/expense-categories/delete%20expense%20category.md): Deleting an expense category updates the `deleted_at` attribute to the current time. Deleted expense categories are not included by default in the index action and can be retrieved by setting `only_ac
## Expense Report Submissions

 - [GET /expense_report_submissions](https://developer.kantata.com/kantata/specification/expense-report-submissions/get%20expense%20report%20submissions.md): Returns expense report submissions for the logged in user by default. When `all_on_account` filter is set to true, the endpoint returns all expense report submissions on the account visible to the use
 - [POST /expense_report_submissions](https://developer.kantata.com/kantata/specification/expense-report-submissions/create%20expense%20report%20submission.md): This endpoint returns structured Expense Report Submission objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be indexe
 - [GET /expense_report_submissions/{id}](https://developer.kantata.com/kantata/specification/expense-report-submissions/get%20expense%20report%20submission.md): This endpoint returns structured Expense Report Submission objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be indexe
 - [PUT /expense_report_submissions/{id}/approve](https://developer.kantata.com/kantata/specification/expense-report-submissions/approve%20expense%20report%20submission.md): You can approve an Expense Report Submission by accessing the approve endpoint This endpoint returns structured Expense Report Submission objects. As with all Kantata OX API endpoints, the returned da
 - [PUT /expense_report_submissions/{id}/cancel](https://developer.kantata.com/kantata/specification/expense-report-submissions/cancel%20expense%20report%20submission.md): You can cancel an Expense Report Submission by accessing the cancel endpoint This endpoint returns structured Expense Report Submission objects. As with all Kantata OX API endpoints, the returned data
 - [PUT /expense_report_submissions/{id}/reject](https://developer.kantata.com/kantata/specification/expense-report-submissions/reject%20expense%20report%20submission.md): You can reject an Expense Report Submission by accessing the reject endpoint This endpoint returns structured Expense Report Submission objects. As with all Kantata OX API endpoints, the returned data
## Expenses

 - [GET /expenses](https://developer.kantata.com/kantata/specification/expenses/get%20expenses.md): The expenses endpoint provides a list of every expense that the user making the request is allowed to see— across all projects to which the user belongs. The response will contain an array of expense
 - [POST /expenses](https://developer.kantata.com/kantata/specification/expenses/create%20expense.md): Creates an expense. **Bulk Create** This endpoint supports bulk creating 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: `
 - [DELETE /expenses](https://developer.kantata.com/kantata/specification/expenses/delete%20expenses.md): The IDs of the expenses 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 expenses cannot be deleted,
 - [GET /expenses/{id}](https://developer.kantata.com/kantata/specification/expenses/get%20expense.md): You can request either `GET /api/v1/expenses.json?only=5` or `GET /api/v1/expenses/5.json`. In both cases, default filters will be applied. Unless you provide the `from_archived_workspaces:true` filt
 - [PUT /expenses/{id}](https://developer.kantata.com/kantata/specification/expenses/update%20expense.md): An expense that has already been created can be updated with an HTTP PUT request. Any required or optional attribute, with the exception of `workspace_id`, can be changed in an update. This endpoint r
 - [DELETE /expenses/{id}](https://developer.kantata.com/kantata/specification/expenses/delete%20expense.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Vendors

 - [GET /vendors](https://developer.kantata.com/kantata/specification/vendors/get%20vendors.md): This endpoint returns structured Vendor 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 `ven
 - [POST /vendors](https://developer.kantata.com/kantata/specification/vendors/create%20vendor.md): This endpoint returns structured Vendor 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 `ven
 - [PUT /vendors/{id}](https://developer.kantata.com/kantata/specification/vendors/update%20vendor.md): This endpoint returns structured Vendor 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 `ven
 - [DELETE /vendors/{id}](https://developer.kantata.com/kantata/specification/vendors/delete%20vendor.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## External References

 - [GET /external_references](https://developer.kantata.com/kantata/specification/external-references/get%20external%20references.md): Returns external references, for objects of particular types, that are synced with the third-party systems. This endpoint returns structured External Reference objects. As with all Kantata OX API endp
 - [POST /external_references/create_or_update](https://developer.kantata.com/kantata/specification/external-references/create%20or%20update%20external%20reference.md): This endpoint returns structured External Reference 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
 - [DELETE /external_references/{id}](https://developer.kantata.com/kantata/specification/external-references/delete%20external%20reference.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Billing Milestones

 - [GET /billing_milestones](https://developer.kantata.com/kantata/specification/billing-milestones/get%20billing%20milestones.md): Gets a list of billing milestones. This endpoint returns structured Billing Milestones objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `resul
 - [POST /billing_milestones](https://developer.kantata.com/kantata/specification/billing-milestones/create%20billing%20milestone.md): Add a billing milestone to your Billing Schedule. Up to 100 billing milestones can be created in one request. This endpoint returns structured Billing Milestones objects. As with all Kantata OX API en
 - [GET /billing_milestones/{id}](https://developer.kantata.com/kantata/specification/billing-milestones/get%20billing%20milestone.md): Gets a single billing milestone. This endpoint returns structured Billing Milestones objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results
 - [PUT /billing_milestones/{id}](https://developer.kantata.com/kantata/specification/billing-milestones/update%20billing%20milestone.md): Edit information for a billing milestone in your Billing Schedule. You can only edit billing milestones that have not been invoiced. This endpoint returns structured Billing Milestones objects. As wit
 - [DELETE /billing_milestones/{id}](https://developer.kantata.com/kantata/specification/billing-milestones/delete%20billing%20milestone.md): Delete a billing milestone in your Billing Schedule. You can only delete billing milestones that have not been invoiced. The response will contain no content and an HTTP 204 status code if the request
## Revenue Recognition Methods

 - [GET /revenue_recognition_methods](https://developer.kantata.com/kantata/specification/revenue-recognition-methods/get%20revenue%20recognition%20methods.md): Gets a list of revenue recognition methods that are available to apply to projects. This endpoint returns structured Revenue Recognition Method objects. As with all Kantata OX API endpoints, the retur
## Exchange Tables

 - [GET /foreign_exchange/exchange_tables](https://developer.kantata.com/kantata/specification/exchange-tables/get%20exchange%20tables.md): Returns a list of exchange tables associated with your account, and their default settings details.
 - [POST /foreign_exchange/exchange_tables](https://developer.kantata.com/kantata/specification/exchange-tables/create%20exchange%20table.md): Creates a new exchange table.
 - [GET /foreign_exchange/exchange_tables/{id}](https://developer.kantata.com/kantata/specification/exchange-tables/get%20exchange%20table.md): Returns default settings details for a specified exchange table.
 - [PUT /foreign_exchange/exchange_tables/{id}](https://developer.kantata.com/kantata/specification/exchange-tables/update%20exchange%20table.md): Updates the name and/or default settings for a specified exchange table.
 - [POST /foreign_exchange/exchange_tables/{id}/rates](https://developer.kantata.com/kantata/specification/exchange-tables/import%20exchange%20tables.md): Add or update exchange rates for a specified exchange table by importing rates as a .csv file, or in a JSON array of hashes.
 - [GET /foreign_exchange/exchange_tables/{id}/rates](https://developer.kantata.com/kantata/specification/exchange-tables/get%20exchange%20rates.md): Returns all current exchange rates for a specified exchange table, unless filter parameters have been applied..
## Insights Access Group Memberships

 - [GET /insights_access_group_memberships](https://developer.kantata.com/kantata/specification/insights-access-group-memberships/get%20insights%20access%20group%20memberships.md): This endpoint returns structured Insights Access Group Membership objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be
 - [POST /insights_access_group_memberships](https://developer.kantata.com/kantata/specification/insights-access-group-memberships/create%20insights%20access%20group%20membership.md): Adds a user to an Insights Access Group. Only Account Administrators can add users to Insights Access Groups. This endpoint returns structured Insights Access Group Membership objects. As with all Kan
 - [GET /insights_access_group_memberships/{id}](https://developer.kantata.com/kantata/specification/insights-access-group-memberships/get%20insights%20access%20group%20membership.md): This endpoint returns structured Insights Access Group Membership objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be
 - [PUT /insights_access_group_memberships/{id}](https://developer.kantata.com/kantata/specification/insights-access-group-memberships/update%20insights%20access%20group%20membership.md): Only Account Administrators can update Insights Access Group Memberships. **Note**: To move a user from one Insights Access Group to another, delete the existing Access Group Membership, then create a
 - [DELETE /insights_access_group_memberships/{id}](https://developer.kantata.com/kantata/specification/insights-access-group-memberships/delete%20insights%20access%20group%20membership.md): Removes a user from an Insights Access Group. Only Account Administrators can delete Insights Access Group Memberships. The response will contain no content and an HTTP 204 status code if the request
## Insights Dynamic Dashboards

 - [GET /account_insights_mappings/dynamic](https://developer.kantata.com/kantata/specification/insights-dynamic-dashboards/list%20insights%20mapping%20dashboards.md): Returns a list of Dynamic Account Insights Mappings (i.e. Insights dynamic dashboards) that are visible to the authenticated user. This endpoint returns structured Account Insights Mapping objects. As
## Insights Report Exports

 - [GET /scheduled_jobs/insights_report_exports](https://developer.kantata.com/kantata/specification/insights-report-exports/get%20scheduled%20report%20exports.md): Returns a list of scheduled exports of classic Insights reports.
 - [POST /scheduled_jobs/insights_report_exports](https://developer.kantata.com/kantata/specification/insights-report-exports/create%20scheduled%20report%20export.md): Create a new scheduled job. Set a schedule for a classic Insights report to be exported from Kantata OX to download later. You will need to write a script to download the report.
 - [GET /scheduled_jobs/insights_report_exports/{id}](https://developer.kantata.com/kantata/specification/insights-report-exports/get%20scheduled%20report%20export.md): Returns details for a single scheduled export of a classic Insights report.
 - [PUT /scheduled_jobs/insights_report_exports/{id}](https://developer.kantata.com/kantata/specification/insights-report-exports/update%20scheduled%20report%20export.md): Make changes to an existing scheduled job.
 - [DELETE /scheduled_jobs/insights_report_exports/{id}](https://developer.kantata.com/kantata/specification/insights-report-exports/delete%20scheduled%20report%20export.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
 - [GET /scheduled_jobs/insights_report_exports/{insights_report_export_id}/results/latest](https://developer.kantata.com/kantata/specification/insights-report-exports/get%20latest%20scheduled%20report%20export.md): Returns the most recent classic Insights report that has been successfully and completely exported by a scheduled job. The response contains a URL to download the report, as well as a timestamp for wh
## Insights Reports

 - [GET /insights_reports](https://developer.kantata.com/kantata/specification/insights-reports/get%20insights%20reports.md): Returns a list of classic Insights reports on your Kantata OX account. When a `title` is provided, reports that match the `title` are returned. When a `title` is not provided, all classic Insights rep
## Client Invoice Defaults

 - [GET /client_invoice_defaults](https://developer.kantata.com/kantata/specification/client-invoice-defaults/get%20client%20invoice%20defaults.md): This endpoint returns structured Client Invoice Defaults 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
 - [POST /client_invoice_defaults](https://developer.kantata.com/kantata/specification/client-invoice-defaults/create%20client%20invoice%20defaults.md): This endpoint returns structured Client Invoice Defaults 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
 - [GET /client_invoice_defaults/{id}](https://developer.kantata.com/kantata/specification/client-invoice-defaults/get%20client%20invoice%20defaults%20by%20id.md): This endpoint returns structured Client Invoice Defaults 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
 - [PUT /client_invoice_defaults/{id}](https://developer.kantata.com/kantata/specification/client-invoice-defaults/update%20client%20invoice%20defaults%20by%20id.md): This endpoint returns structured Client Invoice Defaults 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
 - [DELETE /client_invoice_defaults/{id}](https://developer.kantata.com/kantata/specification/client-invoice-defaults/delete%20client%20invoice%20defaults%20by%20id.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## External Payments

 - [GET /external_payments](https://developer.kantata.com/kantata/specification/external-payments/get%20external%20payments.md): The external payments currently visible to the user that is logged-in. This endpoint returns structured External Payment objects. As with all Kantata OX API endpoints, the returned data will be refere
 - [POST /external_payments](https://developer.kantata.com/kantata/specification/external-payments/create%20external%20payment.md): Creates an external payment for the specified project or invoice. If an invoice ID is provided, a payment is only created for that invoice when it's a single project invoice and in a non-draft pending
 - [GET /external_payments/{id}](https://developer.kantata.com/kantata/specification/external-payments/get%20external%20payment.md): This endpoint returns structured External Payment 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 i
 - [DELETE /external_payments/{id}](https://developer.kantata.com/kantata/specification/external-payments/delete%20external%20payment.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Invoices

 - [GET /invoices](https://developer.kantata.com/kantata/specification/invoices/get%20invoices.md): This endpoint returns structured Invoice 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 `in
 - [POST /invoices](https://developer.kantata.com/kantata/specification/invoices/create%20invoice.md): This endpoint returns structured Invoice 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 `in
 - [GET /invoices/next_invoice_number](https://developer.kantata.com/kantata/specification/invoices/get%20next%20invoice%20number.md)
 - [GET /invoices/{id}](https://developer.kantata.com/kantata/specification/invoices/get%20invoice.md): This endpoint returns structured Invoice 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 `in
 - [PUT /invoices/{id}](https://developer.kantata.com/kantata/specification/invoices/update%20invoice.md): This endpoint returns structured Invoice 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 `in
 - [DELETE /invoices/{id}](https://developer.kantata.com/kantata/specification/invoices/delete%20invoice.md): You can delete draft invoices with this endpoint. Active invoices cannot be deleted. They must be cancelled instead. The response will contain no content and an HTTP 204 status code if the request was
 - [PUT /invoices/{id}/cancel](https://developer.kantata.com/kantata/specification/invoices/cancel%20invoice.md): You can cancel active invoices with this endpoint. This endpoint returns structured Invoice objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `
## Workspace Invoice Preferences

 - [POST /workspace_invoice_preferences](https://developer.kantata.com/kantata/specification/workspace-invoice-preferences/create%20workspace%20invoice%20preferences.md): This endpoint returns structured Workspace Invoice Preference objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be ind
 - [GET /workspace_invoice_preferences/{id}](https://developer.kantata.com/kantata/specification/workspace-invoice-preferences/get%20workspace%20invoice%20preferences.md): This endpoint returns structured Workspace Invoice Preference objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be ind
 - [PUT /workspace_invoice_preferences/{id}](https://developer.kantata.com/kantata/specification/workspace-invoice-preferences/update%20workspace%20invoice%20preferences.md): This endpoint returns structured Workspace Invoice Preference objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be ind
## Users

 - [GET /users](https://developer.kantata.com/kantata/specification/users/get%20users.md): This endpoint allows you to access all visible users based on the permission level of the requester. > **Note**: This endpoint relies on project participation and will not return a member of your acco
 - [GET /users/me](https://developer.kantata.com/kantata/specification/users/get%20my%20user%20data.md): This endpoint allows you to fetch your own data. This endpoint returns structured User objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `resul
 - [GET /users/{id}](https://developer.kantata.com/kantata/specification/users/get%20user.md): This endpoint returns structured User 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 `users
 - [PUT /users/{id}](https://developer.kantata.com/kantata/specification/users/update%20user.md): This endpoint returns structured User 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 `users
 - [GET /users/{id}/capacity](https://developer.kantata.com/kantata/specification/users/get%20my%20work%20capacity.md): This endpoint returns a summary of a user's work capacity for a provided range of dates. This endpoint returns structured User objects. As with all Kantata OX API endpoints, the returned data will be
 - [DELETE /users/{id}/profile_photo](https://developer.kantata.com/kantata/specification/users/reset%20user%20profile%20photo.md): Delete the profile photo for the specified user. This endpoint returns structured User objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `resul
 - [POST /users/{id}/profile_photo](https://developer.kantata.com/kantata/specification/users/update%20user%20profile%20photo.md): Update the profile photo for the specified user. This endpoint returns structured User objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `resul
## Attachments

 - [POST /attachments](https://developer.kantata.com/kantata/specification/attachments/create%20attachment.md): There are two different ways to upload file attachments. Direct CDN upload, or Kantata OX server upload. ## Direct CDN Upload Uploading directly to the CDN is a three step process but allows for fast
 - [PUT /attachments/{id}](https://developer.kantata.com/kantata/specification/attachments/update%20attachment.md): This endpoint returns structured Attachment 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
 - [DELETE /attachments/{id}](https://developer.kantata.com/kantata/specification/attachments/delete%20attachment.md): Destroys an attachment from its subject object. The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors
 - [PUT /attachments/{id}/sync](https://developer.kantata.com/kantata/specification/attachments/sync%20attachment.md): Marks an upload as complete, and verifies its existence on the CDN. This endpoint returns structured Attachment objects. As with all Kantata OX API endpoints, the returned data will be referenced in s
## Posts

 - [GET /posts](https://developer.kantata.com/kantata/specification/posts/get%20posts.md): This endpoint returns structured Post 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 `posts
 - [POST /posts](https://developer.kantata.com/kantata/specification/posts/create%20post.md): Posts to the Activity Feed of a workspace (project). **Bulk Create** This endpoint supports bulk creating up to 100 objects. In the request body, set the top-level key to its plural form and place the
 - [GET /posts/{id}](https://developer.kantata.com/kantata/specification/posts/get%20post.md): By default, you won't receive Posts from archived workspaces (and will receive a 404 status on the "show" route) unless you provide the `from_archived_workspaces:true` filter. This endpoint returns st
 - [PUT /posts/{id}](https://developer.kantata.com/kantata/specification/posts/update%20post.md): This endpoint returns structured Post 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 `posts
 - [DELETE /posts/{id}](https://developer.kantata.com/kantata/specification/posts/delete%20post.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## User File Associations

 - [GET /user_file_associations](https://developer.kantata.com/kantata/specification/user-file-associations/get%20user%20file%20associations.md): This endpoint returns structured User File Association 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
## Project Snapshots

 - [GET /project_snapshots](https://developer.kantata.com/kantata/specification/project-snapshots/get%20project%20snapshots.md): Gets a list of Project Snapshots. You can only see snapshots for projects where you have the Edit Financials project permission or higher. This endpoint returns structured Project Snapshots objects. A
 - [POST /project_snapshots](https://developer.kantata.com/kantata/specification/project-snapshots/create%20project%20snapshot.md): Creates a Project Snapshot. You must have the Edit Financials project permission or higher to create a project snapshot. This endpoint has its own rate limit. See the [Knowledge Base](https://knowledg
 - [PUT /project_snapshots/{id}](https://developer.kantata.com/kantata/specification/project-snapshots/update%20project%20snapshot.md): Updates the metadata of a Project Snapshot. This endpoint returns structured Project Snapshots objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in th
## Project Template Additional Tabs

 - [GET /project_template_additional_tabs](https://developer.kantata.com/kantata/specification/project-template-additional-tabs/get%20project%20template%20additional%20tabs.md): This endpoint returns structured Project Template Additional Tab objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be
 - [POST /project_template_additional_tabs](https://developer.kantata.com/kantata/specification/project-template-additional-tabs/create%20project%20template%20additional%20tab.md): Adds an additional tab to a project template. This endpoint returns structured Project Template Additional Tab objects. As with all Kantata OX API endpoints, the returned data will be referenced in so
 - [DELETE /project_template_additional_tabs/{id}](https://developer.kantata.com/kantata/specification/project-template-additional-tabs/delete%20project%20template%20additional%20tab.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Project Template Assignments

 - [GET /project_template_assignments](https://developer.kantata.com/kantata/specification/project-template-assignments/get%20project%20template%20assignments.md): This endpoint returns structured Project Template Assignment objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be inde
 - [POST /project_template_assignments](https://developer.kantata.com/kantata/specification/project-template-assignments/create%20project%20template%20assignment.md): This endpoint returns structured Project Template Assignment objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be inde
 - [GET /project_template_assignments/{id}](https://developer.kantata.com/kantata/specification/project-template-assignments/get%20project%20template%20assignment.md): This endpoint returns structured Project Template Assignment objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be inde
 - [PUT /project_template_assignments/{id}](https://developer.kantata.com/kantata/specification/project-template-assignments/update%20project%20template%20assignment.md): This endpoint returns structured Project Template Assignment objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be inde
 - [DELETE /project_template_assignments/{id}](https://developer.kantata.com/kantata/specification/project-template-assignments/delete%20project%20template%20assignment.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Project Template Expense Budgets

 - [GET /project_template_expense_budgets](https://developer.kantata.com/kantata/specification/project-template-expense-budgets/get%20project%20template%20expense%20budgets.md): This endpoint returns structured Project Template Expense Budget objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be
 - [POST /project_template_expense_budgets](https://developer.kantata.com/kantata/specification/project-template-expense-budgets/create%20project%20template%20expense%20budget.md): Adds an expense budget to a project template. **Bulk Create** This endpoint supports bulk creating up to 100 objects. In the request body, set the top-level key to its plural form and place the object
 - [GET /project_template_expense_budgets/{id}](https://developer.kantata.com/kantata/specification/project-template-expense-budgets/get%20project%20template%20expense%20budget.md): This endpoint returns structured Project Template Expense Budget objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be
 - [PUT /project_template_expense_budgets/{id}](https://developer.kantata.com/kantata/specification/project-template-expense-budgets/update%20project%20template%20expense%20budget.md): This endpoint returns structured Project Template Expense Budget objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be
 - [DELETE /project_template_expense_budgets/{id}](https://developer.kantata.com/kantata/specification/project-template-expense-budgets/delete%20project%20template%20expense%20budget.md): Removes an expense budget from a project template. The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Err
## Project Templates

 - [Project Template Stories (Tasks) - raw_json](https://developer.kantata.com/kantata/specification/project-templates/project-template-stories-(tasks)-raw_json.md): ##### Project Template Stories (Tasks) - raw_json A project template's tasks are all stored in an attribute located on the project template object called raw_json. It is a JSON hash of all the stories
 - [GET /project_templates](https://developer.kantata.com/kantata/specification/project-templates/get%20project%20templates.md): This endpoint returns structured Project Template 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 i
 - [POST /project_templates](https://developer.kantata.com/kantata/specification/project-templates/create%20project%20template.md): This endpoint returns structured Project Template 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 i
 - [GET /project_templates/{id}](https://developer.kantata.com/kantata/specification/project-templates/get%20project%20template.md): This endpoint returns structured Project Template 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 i
 - [PUT /project_templates/{id}](https://developer.kantata.com/kantata/specification/project-templates/update%20project%20template.md): This endpoint returns structured Project Template 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 i
 - [DELETE /project_templates/{id}](https://developer.kantata.com/kantata/specification/project-templates/delete%20project%20template.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Participations

 - [GET /participations](https://developer.kantata.com/kantata/specification/participations/get%20participations.md): The Participations index action only returns participations from projects that are visible to the requester. See the [Projects KB documentation](https://mavenlink.zendesk.com/hc/en-us/sections/2000221
 - [POST /participations](https://developer.kantata.com/kantata/specification/participations/create%20participation.md): Adds a user to a project (workspace). **Bulk Create** This endpoint supports bulk creating up to 100 objects. In the request body, set the top-level key to its plural form and place the objects in an
 - [GET /participations/{id}](https://developer.kantata.com/kantata/specification/participations/get%20participation.md): This endpoint returns structured Participation 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 t
 - [PUT /participations/{id}](https://developer.kantata.com/kantata/specification/participations/update%20participation.md): This endpoint returns structured Participation 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 t
 - [DELETE /participations/{id}](https://developer.kantata.com/kantata/specification/participations/delete%20participation.md): Removes a participant from a project and deletes their associated project data. The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata O
## Project Accounting Records

 - [GET /project_accounting_records](https://developer.kantata.com/kantata/specification/project-accounting-records/get%20project%20accounting%20records.md): Returns all project accounting records (`Baseline`, `Earned Value`, `Earned Value Forecasting`, `Forecasting`, and `Recognition`), unless filter parameters have been applied. This endpoint returns st
 - [POST /project_accounting_records](https://developer.kantata.com/kantata/specification/project-accounting-records/create%20project%20accounting%20record.md): Creates a single or multiple project accounting records. This endpoint returns structured Project Accounting Records objects. As with all Kantata OX API endpoints, the returned data will be referenced
 - [PUT /project_accounting_records/delete](https://developer.kantata.com/kantata/specification/project-accounting-records/soft%20delete%20project%20accounting%20record.md): Soft deletes a specified project accounting record. View deleted records by Fetching a list of Project Accounting Records with the `show_deleted` filter set to `true`. This endpoint returns structured
 - [GET /project_accounting_records/export_to_csv](https://developer.kantata.com/kantata/specification/project-accounting-records/export%20project%20accounting%20record%20to%20csv.md): Downloads a .csv file of all project accounting records. This endpoint returns structured Project Accounting Records objects. As with all Kantata OX API endpoints, the returned data will be referenced
 - [POST /project_accounting_records/import_csv](https://developer.kantata.com/kantata/specification/project-accounting-records/import%20project%20accounting%20records.md): Imports up to 5000 project accounting records with a [csv file](https://app.mavenlink.com/sample_import_project_accounting_records.csv) with a .txt or .csv extension. Each row/line is a record, and ea
 - [GET /project_accounting_records/{id}](https://developer.kantata.com/kantata/specification/project-accounting-records/get%20project%20accounting%20record.md): Returns a specified project accounting record. This endpoint returns structured Project Accounting Records objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted
## Status Reports

 - [GET /status_reports](https://developer.kantata.com/kantata/specification/status-reports/get%20status%20reports.md): This endpoint returns structured Status Report 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 t
 - [POST /status_reports](https://developer.kantata.com/kantata/specification/status-reports/create%20status%20report.md): This endpoint returns structured Status Report 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 t
 - [GET /status_reports/{id}](https://developer.kantata.com/kantata/specification/status-reports/get%20status%20report.md): This endpoint returns structured Status Report 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 t
 - [PUT /status_reports/{id}](https://developer.kantata.com/kantata/specification/status-reports/update%20status%20report.md): This endpoint returns structured Status Report 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 t
 - [DELETE /status_reports/{id}](https://developer.kantata.com/kantata/specification/status-reports/delete%20status%20report.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Workspace Allocations

 - [GET /workspace_allocations](https://developer.kantata.com/kantata/specification/workspace-allocations/get%20workspace%20allocations.md): This endpoint returns structured Workspace Allocation 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
 - [POST /workspace_allocations](https://developer.kantata.com/kantata/specification/workspace-allocations/create%20workspace%20allocation.md): Creates a workspace allocation for a resource. **Bulk Create** This endpoint supports bulk creating up to 200 objects. In the request body, set the top-level key to its plural form and place the objec
 - [PUT /workspace_allocations/split](https://developer.kantata.com/kantata/specification/workspace-allocations/split%20workspace%20allocation%20by%20date.md): Split an existing allocation into two on the specified date. This endpoint returns structured Workspace Allocation objects. As with all Kantata OX API endpoints, the returned data will be referenced i
 - [GET /workspace_allocations/{id}](https://developer.kantata.com/kantata/specification/workspace-allocations/get%20workspace%20allocation.md): This endpoint returns structured Workspace Allocation 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
 - [PUT /workspace_allocations/{id}](https://developer.kantata.com/kantata/specification/workspace-allocations/update%20workspace%20allocation.md): This endpoint returns structured Workspace Allocation 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
 - [DELETE /workspace_allocations/{id}](https://developer.kantata.com/kantata/specification/workspace-allocations/delete%20workspace%20allocation.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Workspace Baselines

 - [GET /workspace_baselines](https://developer.kantata.com/kantata/specification/workspace-baselines/get%20workspace%20baselines.md): Returns a list of Gantt workspace baselines associated with workspaces (projects) that are visible to the authenticated user. Visibility restrictions on projects are detailed in the [Workspaces API do
 - [POST /workspace_baselines](https://developer.kantata.com/kantata/specification/workspace-baselines/create%20workspace%20baseline.md): Creates a Gantt workspace baseline for a specified workspace (project). The baseline will contain aggregate statistics and certain data about each story (task). This endpoint returns structured Worksp
 - [GET /workspace_baselines/{id}](https://developer.kantata.com/kantata/specification/workspace-baselines/get%20workspace%20baseline.md): Returns a specified Gantt workspace baseline. This endpoint returns structured Workspace Baseline objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in
 - [PUT /workspace_baselines/{id}](https://developer.kantata.com/kantata/specification/workspace-baselines/update%20workspace%20baseline.md): Updates a specified Gantt workspace baseline. This endpoint returns structured Workspace Baseline objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in
 - [DELETE /workspace_baselines/{id}](https://developer.kantata.com/kantata/specification/workspace-baselines/delete%20workspace%20baseline.md): Deletes a specified Gantt workspace baseline. The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors)
## Workspace Groups

 - [GET /workspace_groups](https://developer.kantata.com/kantata/specification/workspace-groups/get%20workspace%20groups.md): This endpoint returns structured Workspace Group 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
 - [POST /workspace_groups](https://developer.kantata.com/kantata/specification/workspace-groups/create%20workspace%20group.md): This endpoint returns structured Workspace Group 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
 - [GET /workspace_groups/{id}](https://developer.kantata.com/kantata/specification/workspace-groups/get%20workspace%20group.md): This endpoint returns structured Workspace Group 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
 - [PUT /workspace_groups/{id}](https://developer.kantata.com/kantata/specification/workspace-groups/update%20workspace%20group.md): This endpoint returns structured Workspace Group 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
 - [DELETE /workspace_groups/{id}](https://developer.kantata.com/kantata/specification/workspace-groups/delete%20workspace%20group.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Workspace Invoice Preferences

 - [POST /workspace_invoice_preferences](https://developer.kantata.com/kantata/specification/workspace-invoice-preferences/create%20workspace%20invoice%20preferences.md): This endpoint returns structured Workspace Invoice Preference objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be ind
 - [GET /workspace_invoice_preferences/{id}](https://developer.kantata.com/kantata/specification/workspace-invoice-preferences/get%20workspace%20invoice%20preferences.md): This endpoint returns structured Workspace Invoice Preference objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be ind
 - [PUT /workspace_invoice_preferences/{id}](https://developer.kantata.com/kantata/specification/workspace-invoice-preferences/update%20workspace%20invoice%20preferences.md): This endpoint returns structured Workspace Invoice Preference objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be ind
## Workspace Resource Skills

 - [GET /workspace_resource_skills](https://developer.kantata.com/kantata/specification/workspace-resource-skills/get%20workspace%20resource%20skills.md): Returns a list of Workspace Resource Skills that represent the skills associated with workspace resources visible to the logged in user. This endpoint returns structured Workspace Resource Skill objec
 - [POST /workspace_resource_skills](https://developer.kantata.com/kantata/specification/workspace-resource-skills/create%20workspace%20resource%20skill.md): This endpoint returns structured Workspace Resource Skill 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
 - [GET /workspace_resource_skills/{id}](https://developer.kantata.com/kantata/specification/workspace-resource-skills/get%20workspace%20resource%20skill.md): This endpoint returns structured Workspace Resource Skill 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
 - [PUT /workspace_resource_skills/{id}](https://developer.kantata.com/kantata/specification/workspace-resource-skills/update%20workspace%20resource%20skill.md): This endpoint returns structured Workspace Resource Skill 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
 - [DELETE /workspace_resource_skills/{id}](https://developer.kantata.com/kantata/specification/workspace-resource-skills/delete%20workspace%20resource%20skill.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Workspace Resources

 - [Primary Project Role](https://developer.kantata.com/kantata/specification/workspace-resources/primary-project-role.md): ##### Primary Project Role A user's primary project role is defined by role_id on the user's Participation for the workspace if that is set. If role_id is not set on the user's participation, primary
 - [GET /workspace_resources](https://developer.kantata.com/kantata/specification/workspace-resources/get%20workspace%20resources.md): This endpoint returns structured Workspace Resource 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
 - [POST /workspace_resources](https://developer.kantata.com/kantata/specification/workspace-resources/create%20workspace%20resource.md): Adds a named or unnamed resource to a project (workspace). **Bulk Create** This endpoint supports bulk creating up to 200 objects. In the request body, set the top-level key to its plural form and pla
 - [POST /workspace_resources/allocations_matching_scheduled_hours](https://developer.kantata.com/kantata/specification/workspace-resources/create%20workspace%20resource%20allocations%20from%20scheduled%20hours.md): This will create allocations for workspace resources based on their scheduled hours. This endpoint is only usable for Account Administrators and users with `Users can edit allocations for unnamed reso
 - [GET /workspace_resources/{id}](https://developer.kantata.com/kantata/specification/workspace-resources/get%20workspace%20resource.md): This endpoint returns structured Workspace Resource 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
 - [PUT /workspace_resources/{id}](https://developer.kantata.com/kantata/specification/workspace-resources/update%20workspace%20resource.md): This endpoint returns structured Workspace Resource 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
 - [DELETE /workspace_resources/{id}](https://developer.kantata.com/kantata/specification/workspace-resources/delete%20workspace%20resource.md): This will delete a workspace resource and their assignments if the resource is deletable. A workspace resource is not deletable if it is the last resource for a user's primary role within a workspace.
 - [POST /workspace_resources/{id}/allocations_matching_scheduled_hours](https://developer.kantata.com/kantata/specification/workspace-resources/create%20workspace%20resource%20allocations%20from%20scheduled%20hours%20by%20id.md): This will create allocations for workspace resources based on their scheduled hours. This endpoint is only usable for Account Administrators and users with `Users can edit allocations for unnamed reso
## Workspace Status Changes

 - [GET /workspace_status_changes](https://developer.kantata.com/kantata/specification/workspace-status-changes/get%20workspace%20status%20changes.md): Returns all project status changes that are visible to the user for the passed project ID. This endpoint returns structured Workspace Status Change objects. As with all Kantata OX API endpoints, the r
 - [POST /workspace_status_changes](https://developer.kantata.com/kantata/specification/workspace-status-changes/create%20workspace%20status%20change.md): This endpoint returns structured Workspace Status Change 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
 - [GET /workspace_status_changes/{id}](https://developer.kantata.com/kantata/specification/workspace-status-changes/get%20workspace%20status%20change.md): Return the status change for the passed project status change ID. This endpoint returns structured Workspace Status Change objects. As with all Kantata OX API endpoints, the returned data will be refe
## Workspace Task Status Sets

 - [PUT /workspace_task_status_sets/bulk_update](https://developer.kantata.com/kantata/specification/workspace-task-status-sets/update%20workspace%20task%20status%20set.md): Updates the task status set for multiple projects. You must have permission to select task status sets to use the endpoint. If any specified workspaces cannot be updated, the entire request will fail
## Workspaces

 - [GET /workspaces](https://developer.kantata.com/kantata/specification/workspaces/get%20workspaces.md): Gets a list of projects. This endpoint has its own rate limit. See the [Knowledge Base](https://knowledge.kantata.com/hc/en-us/articles/9698066628123) for more information. #### Archived Projects By d
 - [POST /workspaces](https://developer.kantata.com/kantata/specification/workspaces/create%20workspace.md): Creates a new workspace (project). This endpoint has its own rate limit. See the [Knowledge Base](https://knowledge.kantata.com/hc/en-us/articles/9698066628123) for more information. **Bulk Create** T
 - [GET /workspaces/{id}](https://developer.kantata.com/kantata/specification/workspaces/get%20workspace.md): Gets a project by ID. By default, you will receive a 404 status if you try to retrieve an archived project. Use the `include_archived:true` filter to retrieve an archived project. Users with Project L
 - [PUT /workspaces/{id}](https://developer.kantata.com/kantata/specification/workspaces/update%20workspace.md): This endpoint returns structured Workspace 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 `
 - [DELETE /workspaces/{id}](https://developer.kantata.com/kantata/specification/workspaces/delete%20workspace.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
 - [PUT /workspaces/{id}/apply_template](https://developer.kantata.com/kantata/specification/workspaces/apply%20project%20template%20to%20workspace.md): Applies a template to an existing project. This endpoint returns structured Workspace objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `result
 - [POST /workspaces/{id}/invite](https://developer.kantata.com/kantata/specification/workspaces/create%20workspace%20invitation.md): Sends an invitation to a project. To add participants to a project, they must first be invited. Users that already exist in Kantata OX will automatically accept the invitation and be added to the proj
 - [GET /workspaces/{id}/permissions](https://developer.kantata.com/kantata/specification/workspaces/get%20my%20permissions%20in%20workspace.md): Gets less common project permissions for the authenticated user. This endpoint returns structured Workspace objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorte
 - [PUT /workspaces/{id}/toggle_expense_approvals](https://developer.kantata.com/kantata/specification/workspaces/update%20workspace%20expense%20approval%20setting.md): Turns the expense approval setting for a project on or off. If a `backfill_date` is specified, expenses until the specified date will be approved and the results of the approval will be emailed to the
 - [PUT /workspaces/{id}/toggle_time_approvals](https://developer.kantata.com/kantata/specification/workspaces/update%20workspace%20time%20approval%20setting.md): Turns the time approval setting for a project on or off. If you enable the time approval setting and specify a `backfill_date`, time entries until the specified date will be approved and the results o
 - [PUT /workspaces/{id}/unarchive_with_approvals](https://developer.kantata.com/kantata/specification/workspaces/unarchive%20workspace%20with%20approvals.md): Unarchives a project. If a time lock is set for the account and the project’s time approval setting is enabled, this endpoint will also approve all unsubmitted time entries on or before the time lock
## Activations

 - [GET /account_rate_cards_activations](https://developer.kantata.com/kantata/specification/activations/get%20activation%20status%20rate%20cards.md): This endpoint allows you to check whether the Rate Cards feature has been activated on the user's account. This endpoint is only accessible to users with Financial access (Project Lead or higher) on
 - [POST /account_rate_cards_activations](https://developer.kantata.com/kantata/specification/activations/activate%20rate%20cards.md): Activate Rate Cards on a user's account by submitting a rate card set version that belongs to the default Rate Card Set. Only an Account Administrator can activate rate cards on an account. The initi
## Rate Card Role (Rate for a Role)

 - [GET /rate_card_roles](https://developer.kantata.com/kantata/specification/rate-card-role-(rate-for-a-role)/get%20rate%20card%20roles.md): Returns the Rate Card Roles associated with all Rate Card Versions on Rate Cards that belong to the logged-in user's account. Rate Card Roles can only be accessed by an Administrator on the account. T
 - [POST /rate_card_roles](https://developer.kantata.com/kantata/specification/rate-card-role-(rate-for-a-role)/create%20rate%20card%20role.md): A Rate Card Role can only be created by an Administrator on the account. This endpoint returns structured Rate Card Role objects. As with all Kantata OX API endpoints, the returned data will be refere
 - [GET /rate_card_roles/{id}](https://developer.kantata.com/kantata/specification/rate-card-role-(rate-for-a-role)/get%20rate%20card%20role.md): A Rate Card Role can only be accessed by an Administrator on the account. This endpoint returns structured Rate Card Role objects. As with all Kantata OX API endpoints, the returned data will be refer
 - [PUT /rate_card_roles/{id}](https://developer.kantata.com/kantata/specification/rate-card-role-(rate-for-a-role)/update%20rate%20card%20role.md): A Rate Card Role can only be modified by an Administrator on the account. This endpoint returns structured Rate Card Role objects. As with all Kantata OX API endpoints, the returned data will be refer
 - [DELETE /rate_card_roles/{id}](https://developer.kantata.com/kantata/specification/rate-card-role-(rate-for-a-role)/delete%20rate%20card%20role.md): If a A Rate Card Role belongs to a Rate Card Version that is in use, it cannot be deleted. A Rate Card Role can only be deleted by an Administrator on the account. The response will contain no content
## Rate Card Set Version (Effective version by Date)

 - [GET /rate_card_set_versions](https://developer.kantata.com/kantata/specification/rate-card-set-version-(effective-version-by-date)/get%20rate%20card%20set%20versions.md): Rate Card Set Versions are only accessible to Administrators on the account. This endpoint returns structured Rate Card Set Version objects. As with all Kantata OX API endpoints, the returned data wil
 - [POST /rate_card_set_versions](https://developer.kantata.com/kantata/specification/rate-card-set-version-(effective-version-by-date)/create%20rate%20card%20set%20version.md): Rate Card Set Versions can only created by an Administrator on the account. Creating/Cloning a Rate Card Set Version on a Rate Card Set, does the following: - Creates/Clones a Rate Card Version for ea
 - [GET /rate_card_set_versions/{id}](https://developer.kantata.com/kantata/specification/rate-card-set-version-(effective-version-by-date)/get%20rate%20card%20set%20version.md): A Rate Card Set Version is only accessible to an Administrator on the account. This endpoint returns structured Rate Card Set Version objects. As with all Kantata OX API endpoints, the returned data w
 - [PUT /rate_card_set_versions/{id}](https://developer.kantata.com/kantata/specification/rate-card-set-version-(effective-version-by-date)/update%20rate%20card%20set%20version.md): A Rate Card Set Version can only be modified when the effective date is in the future, or when it is not yet published. This endpoint returns structured Rate Card Set Version objects. As with all Kant
 - [DELETE /rate_card_set_versions/{id}](https://developer.kantata.com/kantata/specification/rate-card-set-version-(effective-version-by-date)/delete%20rate%20card%20set%20version.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
 - [PUT /rate_card_set_versions/{id}/publish](https://developer.kantata.com/kantata/specification/rate-card-set-version-(effective-version-by-date)/publish%20rate%20card%20set%20version.md): Publishing a Rate Card Set Version means activating the version from the set effective date. A Rate Card Set Version can be published to any future date, but cannot be published on the same effective
## Rate Card Sets (Group of Rate Cards)

 - [GET /rate_card_sets](https://developer.kantata.com/kantata/specification/rate-card-sets-(group-of-rate-cards)/get%20rate%20card%20sets.md): Rate Card Sets are only accessible to users with Financial access (Project Lead or higher) on the account. An initial request to this endpoint, will generate an account default Rate Card Set and a cre
 - [POST /rate_card_sets](https://developer.kantata.com/kantata/specification/rate-card-sets-(group-of-rate-cards)/create%20rate%20card%20set.md): This endpoint returns structured Rate Card Set 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 t
 - [GET /rate_card_sets/{id}](https://developer.kantata.com/kantata/specification/rate-card-sets-(group-of-rate-cards)/get%20rate%20card%20set.md): A Rate Card Set can only be accessed by users with Financial access (Project Lead or higher) on the account. This endpoint returns structured Rate Card Set objects. As with all Kantata OX API endpoint
 - [PUT /rate_card_sets/{id}](https://developer.kantata.com/kantata/specification/rate-card-sets-(group-of-rate-cards)/update%20rate%20card%20set.md): This endpoint returns structured Rate Card Set 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 t
 - [DELETE /rate_card_sets/{id}](https://developer.kantata.com/kantata/specification/rate-card-sets-(group-of-rate-cards)/delete%20rate%20card%20set.md): A Rate Card Set cannot be deleted if: - The Rate Card Set is the account default. - A Rate Card belonging to the Rate Card Set is being used by a project. The response will contain no content and an
## Rate Card Table Rows

 - [GET /rate_card_set_versions/{rate_card_set_version_id}/rate_card_table_rows](https://developer.kantata.com/kantata/specification/rate-card-table-rows/get%20rate%20card%20table%20rows%20for%20set%20version.md): Returns all Rate Card Table Rows for a specified Rate Card Set Version.
 - [DELETE /rate_card_set_versions/{rate_card_set_version_id}/rate_card_table_rows/{role_id}](https://developer.kantata.com/kantata/specification/rate-card-table-rows/delete%20rate%20card%20table%20row.md): Deletes all Rate Card Roles for a specified Rate Card Set Version and Role.
 - [PUT /rate_card_set_versions/{rate_card_set_version_id}/rate_card_table_rows/{role_id}](https://developer.kantata.com/kantata/specification/rate-card-table-rows/create%20or%20update%20rate%20table%20row.md): Creates or updates a Rate Card Table Row for a specified Rate Card Set Version and Role.
## Rate Card Versions

 - [GET /rate_card_versions](https://developer.kantata.com/kantata/specification/rate-card-versions/get%20rate%20card%20versions.md): Rate Card Versions are only accessible by Administrators on the account. This endpoint returns structured Rate Card Version objects. As with all Kantata OX API endpoints, the returned data will be ref
 - [GET /rate_card_versions/{id}](https://developer.kantata.com/kantata/specification/rate-card-versions/get%20rate%20card%20version.md): Rate Card Versions are only accessible by Administrators on the account. This endpoint returns structured Rate Card Version objects. As with all Kantata OX API endpoints, the returned data will be ref
 - [PUT /rate_card_versions/{id}](https://developer.kantata.com/kantata/specification/rate-card-versions/update%20rate%20card%20version.md): Rate Card Versions can only be modified by Administrators on the account. This endpoint returns structured Rate Card Version objects. As with all Kantata OX API endpoints, the returned data will be re
## Rate Cards (Multiple Currencies)

 - [GET /rate_cards](https://developer.kantata.com/kantata/specification/rate-cards-(multiple-currencies)/get%20rate%20cards.md): Returns Rate Cards on every Rate Card Set belonging to the account of the user that is logged-in. This endpoint is only accessible to users with Financial access (Project Lead or higher) on the accoun
 - [POST /rate_cards](https://developer.kantata.com/kantata/specification/rate-cards-(multiple-currencies)/create%20rate%20card.md): Creating a Rate Card automatically creates a Rate Card Version and associates it with the specified Rate Card Set Version. If you are adding a Rate Card with a new currency on a custom Rate Card Set,
 - [GET /rate_cards/{id}](https://developer.kantata.com/kantata/specification/rate-cards-(multiple-currencies)/get%20rate%20card.md): This endpoint is only accessible to users with Financial access (Project Lead or higher) on the account. This endpoint returns structured Rate Card objects. As with all Kantata OX API endpoints, the r
 - [PUT /rate_cards/{id}](https://developer.kantata.com/kantata/specification/rate-cards-(multiple-currencies)/update%20rate%20card.md): A Rate Card can only be editied by an Administrator on the account. The currency of the Rate Card cannot be changed if it is already in use by a project. This endpoint returns structured Rate Card obj
 - [DELETE /rate_cards/{id}](https://developer.kantata.com/kantata/specification/rate-cards-(multiple-currencies)/delete%20rate%20card.md): When you delete a Rate Card, its Rate Card Versions and the Rate Card Roles associated with the Rate Card Versions will also be deleted. Once a Rate Card is deleted, neither the Rate Card nor its asso
## Recommendations

 - [GET /recommendations/estimate_scenario_resource](https://developer.kantata.com/kantata/specification/recommendations/get%20estimate%20scenario%20resource%20recommendations.md): Returns an ordered list of Recommendations (up to 1000) for an estimate scenario resource.
## Resource Requests

 - [GET /resource_requests](https://developer.kantata.com/kantata/specification/resource-requests/get%20resource%20requests.md): Returns resource requests visible to the logged in user by default. When `pending_requests_only` filter is set to true, the endpoint returns only pending resource requests. This endpoint returns struc
 - [POST /resource_requests](https://developer.kantata.com/kantata/specification/resource-requests/create%20resource%20request.md): This endpoint returns structured Resource Requests 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
 - [GET /resource_requests/{id}](https://developer.kantata.com/kantata/specification/resource-requests/get%20resource%20request.md): This endpoint returns structured Resource Requests 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
 - [PUT /resource_requests/{id}](https://developer.kantata.com/kantata/specification/resource-requests/update%20resource%20request.md): This endpoint returns structured Resource Requests 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
 - [PUT /resource_requests/{id}/update_approver](https://developer.kantata.com/kantata/specification/resource-requests/update%20resource%20request%20approver.md): This endpoint returns structured Resource Requests 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
## Holiday Calendar Associations

 - [GET /holiday_calendar_associations](https://developer.kantata.com/kantata/specification/holiday-calendar-associations/get%20holiday%20calendar%20associations.md): This endpoint returns structured Holiday Calendar Association objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be ind
 - [POST /holiday_calendar_associations](https://developer.kantata.com/kantata/specification/holiday-calendar-associations/create%20holiday%20calendar%20association.md): This endpoint returns structured Holiday Calendar Association objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be ind
 - [GET /holiday_calendar_associations/{id}](https://developer.kantata.com/kantata/specification/holiday-calendar-associations/get%20holiday%20calendar%20association.md): This endpoint returns structured Holiday Calendar Association objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be ind
 - [DELETE /holiday_calendar_associations/{id}](https://developer.kantata.com/kantata/specification/holiday-calendar-associations/delete%20holiday%20calendar%20association.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Holiday Calendar Memberships

 - [GET /holiday_calendar_memberships](https://developer.kantata.com/kantata/specification/holiday-calendar-memberships/get%20holiday%20calendar%20memberships.md): This endpoint returns structured Holiday Calendar Membership objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be inde
 - [POST /holiday_calendar_memberships](https://developer.kantata.com/kantata/specification/holiday-calendar-memberships/create%20holiday%20calendar%20membership.md): This endpoint returns structured Holiday Calendar Membership objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be inde
 - [GET /holiday_calendar_memberships/{id}](https://developer.kantata.com/kantata/specification/holiday-calendar-memberships/get%20holiday%20calendar%20membership.md): This endpoint returns structured Holiday Calendar Membership objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be inde
 - [PUT /holiday_calendar_memberships/{id}](https://developer.kantata.com/kantata/specification/holiday-calendar-memberships/update%20holiday%20calendar%20membership.md): This endpoint returns structured Holiday Calendar Membership objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array and will be inde
 - [DELETE /holiday_calendar_memberships/{id}](https://developer.kantata.com/kantata/specification/holiday-calendar-memberships/delete%20holiday%20calendar%20membership.md): Unlink the calendar from the user. The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining
## Holiday Calendars

 - [GET /holiday_calendars](https://developer.kantata.com/kantata/specification/holiday-calendars/get%20holiday%20calendars.md): This endpoint returns structured Holiday Calendar 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 i
 - [POST /holiday_calendars](https://developer.kantata.com/kantata/specification/holiday-calendars/create%20holiday%20calendar.md): This endpoint returns structured Holiday Calendar 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 i
 - [GET /holiday_calendars/{id}](https://developer.kantata.com/kantata/specification/holiday-calendars/get%20holiday%20calendar.md): This endpoint returns structured Holiday Calendar 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 i
 - [PUT /holiday_calendars/{id}](https://developer.kantata.com/kantata/specification/holiday-calendars/update%20holiday%20calendar.md): This endpoint returns structured Holiday Calendar 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 i
 - [DELETE /holiday_calendars/{id}](https://developer.kantata.com/kantata/specification/holiday-calendars/delete%20holiday%20calendar.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Holidays

 - [GET /holidays](https://developer.kantata.com/kantata/specification/holidays/get%20holidays.md): This endpoint returns structured Holiday 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 `ho
 - [POST /holidays](https://developer.kantata.com/kantata/specification/holidays/create%20holiday.md): This endpoint returns structured Holiday 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 `ho
 - [GET /holidays/{id}](https://developer.kantata.com/kantata/specification/holidays/get%20holiday.md): This endpoint returns structured Holiday 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 `ho
 - [PUT /holidays/{id}](https://developer.kantata.com/kantata/specification/holidays/update%20holiday.md): This endpoint returns structured Holiday 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 `ho
 - [DELETE /holidays/{id}](https://developer.kantata.com/kantata/specification/holidays/delete%20holiday.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Time Off Entries

 - [GET /time_off_entries](https://developer.kantata.com/kantata/specification/time-off-entries/get%20time%20off%20entries.md): Returns time off entries which are visible to the user. Items are visible to a user if they are on the same account. This endpoint returns structured Time Off Entry objects. As with all Kantata OX API
 - [POST /time_off_entries](https://developer.kantata.com/kantata/specification/time-off-entries/create%20time%20off%20entry.md): Creates a single or multiple time off entries for a user. Multiple time off entries can be created for the same day, in a single request or separate requests. Entries for the same day are combined int
 - [DELETE /time_off_entries](https://developer.kantata.com/kantata/specification/time-off-entries/delete%20time%20off%20entries.md): The IDs of the time off entries 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 time off entries can
 - [PUT /time_off_entries/{id}](https://developer.kantata.com/kantata/specification/time-off-entries/update%20time%20off%20entry.md): Update a Time Off Entry. Only the hours and external references can be modified. Time off hours cannot exceed the user's possible workday hours for that day. This endpoint returns structured Time Off
 - [DELETE /time_off_entries/{id}](https://developer.kantata.com/kantata/specification/time-off-entries/delete%20time%20off%20entry.md): This will delete the time off entry. The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explainin
## Workweek Memberships

 - [GET /workweek_memberships](https://developer.kantata.com/kantata/specification/workweek-memberships/get%20workweek%20memberships.md): The Workweek Memberships endpoint provides a list of all workweek memberships that belongs to the account of the user making the request. The response will contain an array of workweek membership obje
 - [POST /workweek_memberships](https://developer.kantata.com/kantata/specification/workweek-memberships/create%20workweek%20membership.md): This endpoint returns structured Workweek Membership 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 I
 - [PUT /workweek_memberships/standardize_to_default](https://developer.kantata.com/kantata/specification/workweek-memberships/update%20user%20workweek%20to%20default.md): Switches the specified user to the account default workweek, starting on the specified date. This endpoint returns structured Workweek Membership objects. As with all Kantata OX API endpoints, the ret
 - [GET /workweek_memberships/{id}](https://developer.kantata.com/kantata/specification/workweek-memberships/get%20workweek%20membership.md): This endpoint returns structured Workweek Membership 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 I
 - [PUT /workweek_memberships/{id}](https://developer.kantata.com/kantata/specification/workweek-memberships/update%20workweek%20membership.md): This endpoint returns structured Workweek Membership 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 I
 - [DELETE /workweek_memberships/{id}](https://developer.kantata.com/kantata/specification/workweek-memberships/delete%20workweek%20membership.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Workweeks

 - [GET /workweeks](https://developer.kantata.com/kantata/specification/workweeks/get%20workweeks.md): The Workweeks endpoint provides a list of every default Workweek that belongs to the Account of the User making the request. The response will contain an array of Workweek objects, sorted by their `st
 - [POST /workweeks](https://developer.kantata.com/kantata/specification/workweeks/create%20workweek.md): This endpoint returns structured Workweek 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 `w
 - [GET /workweeks/{id}](https://developer.kantata.com/kantata/specification/workweeks/get%20workweek.md): This endpoint returns structured Workweek 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 `w
 - [PUT /workweeks/{id}](https://developer.kantata.com/kantata/specification/workweeks/update%20workweek.md): This endpoint returns structured Workweek 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 `w
 - [DELETE /workweeks/{id}](https://developer.kantata.com/kantata/specification/workweeks/delete%20workweek.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Survey Answers (Legacy)

 - [GET /survey_answers](https://developer.kantata.com/kantata/specification/survey-answers-(legacy)/get%20survey%20answers.md): This endpoint returns structured Survey Answer 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 t
 - [POST /survey_answers](https://developer.kantata.com/kantata/specification/survey-answers-(legacy)/create%20survey%20answer.md): This endpoint returns structured Survey Answer 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 t
 - [PUT /survey_answers/{id}](https://developer.kantata.com/kantata/specification/survey-answers-(legacy)/update%20survey%20answer.md): This endpoint returns structured Survey Answer 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 t
 - [DELETE /survey_answers/{id}](https://developer.kantata.com/kantata/specification/survey-answers-(legacy)/delete%20survey%20answer.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Survey Questions (Legacy)

 - [GET /survey_questions](https://developer.kantata.com/kantata/specification/survey-questions-(legacy)/get%20survey%20questions.md): This endpoint returns structured Survey Question 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
 - [POST /survey_questions](https://developer.kantata.com/kantata/specification/survey-questions-(legacy)/create%20survey%20question.md): This endpoint returns structured Survey Question 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
 - [PUT /survey_questions/{id}](https://developer.kantata.com/kantata/specification/survey-questions-(legacy)/update%20survey%20question.md): This endpoint returns structured Survey Question 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
 - [DELETE /survey_questions/{id}](https://developer.kantata.com/kantata/specification/survey-questions-(legacy)/delete%20survey%20question.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Survey Templates (Legacy)

 - [GET /survey_templates](https://developer.kantata.com/kantata/specification/survey-templates-(legacy)/get%20survey%20templates.md): This endpoint returns structured Survey Template 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
 - [POST /survey_templates](https://developer.kantata.com/kantata/specification/survey-templates-(legacy)/create%20survey%20template.md): This endpoint returns structured Survey Template 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
 - [PUT /survey_templates/{id}](https://developer.kantata.com/kantata/specification/survey-templates-(legacy)/update%20survey%20template.md): This endpoint returns structured Survey Template 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
 - [DELETE /survey_templates/{id}](https://developer.kantata.com/kantata/specification/survey-templates-(legacy)/delete%20survey%20template.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Surveys Responses (Legacy)

 - [GET /survey_responses](https://developer.kantata.com/kantata/specification/surveys-responses-(legacy)/get%20survey%20responses.md): This endpoint returns structured Survey Response 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
 - [POST /survey_responses](https://developer.kantata.com/kantata/specification/surveys-responses-(legacy)/create%20survey%20response.md): This endpoint returns structured Survey Response 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
 - [PUT /survey_responses/{id}](https://developer.kantata.com/kantata/specification/surveys-responses-(legacy)/update%20survey%20response.md): This endpoint returns structured Survey Response 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
 - [DELETE /survey_responses/{id}](https://developer.kantata.com/kantata/specification/surveys-responses-(legacy)/delete%20survey%20response.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Assignments

 - [GET /assignments](https://developer.kantata.com/kantata/specification/assignments/get%20assignments.md): For Account Administrators, returns task assignments in all projects across an account. For non-Account Administrators, returns task assignments only in projects they are part of. This endpoint return
 - [POST /assignments](https://developer.kantata.com/kantata/specification/assignments/create%20assignment.md): This endpoint returns structured Assignment 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
 - [GET /assignments/{id}](https://developer.kantata.com/kantata/specification/assignments/get%20assignment.md): This endpoint returns structured Assignment 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
 - [PUT /assignments/{id}](https://developer.kantata.com/kantata/specification/assignments/update%20assignment.md): This endpoint returns structured Assignment 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
 - [DELETE /assignments/{id}](https://developer.kantata.com/kantata/specification/assignments/delete%20assignment.md): Unassigns a resource from a task. The assignment is soft deleted by setting the `current` field to `false`. The assignment is then considered inactive. Using this endpoint is the same as using the [up
## Daily Scheduled Hours (Story Allocation Days)

 - [GET /story_allocation_days](https://developer.kantata.com/kantata/specification/daily-scheduled-hours-(story-allocation-days)/get%20story%20allocation%20days.md): Returns all Daily Scheduled Hours that are visible to the requester, based on permissions. Filter results by specific projects, users, tasks, and more. **NOTES**: - The response includes Daily Schedul
 - [POST /story_allocation_days](https://developer.kantata.com/kantata/specification/daily-scheduled-hours-(story-allocation-days)/create%20story%20allocation%20day.md): This endpoint returns structured Daily Scheduled Hours (Story Allocation Day) objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array
 - [DELETE /story_allocation_days](https://developer.kantata.com/kantata/specification/daily-scheduled-hours-(story-allocation-days)/delete%20story%20allocation%20days.md): The IDs of the Daily Scheduled Hours to delete can be provided in the `ids` query parameter or via the request body. Only daily scheduled hours on your account can be deleted. Request body example: `
 - [GET /story_allocation_days/{id}](https://developer.kantata.com/kantata/specification/daily-scheduled-hours-(story-allocation-days)/get%20story%20allocation%20day.md): This endpoint returns structured Daily Scheduled Hours (Story Allocation Day) objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array
 - [PUT /story_allocation_days/{id}](https://developer.kantata.com/kantata/specification/daily-scheduled-hours-(story-allocation-days)/update%20story%20allocation%20day.md): This endpoint returns structured Daily Scheduled Hours (Story Allocation Day) objects. As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array
 - [DELETE /story_allocation_days/{id}](https://developer.kantata.com/kantata/specification/daily-scheduled-hours-(story-allocation-days)/delete%20story%20allocation%20day.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Followers

 - [GET /story_follows](https://developer.kantata.com/kantata/specification/followers/get%20story%20follows.md): By default, you will get all story follows that you are permitted to see. If you are an Administrator, you will see every story follow on your account. Otherwise you will see every story follow in pro
 - [POST /story_follows](https://developer.kantata.com/kantata/specification/followers/create%20story%20follow.md)
 - [GET /story_follows/{id}](https://developer.kantata.com/kantata/specification/followers/get%20story%20follow.md)
 - [DELETE /story_follows/{id}](https://developer.kantata.com/kantata/specification/followers/delete%20story%20follow.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Stories

 - [GET /stories](https://developer.kantata.com/kantata/specification/stories/get%20stories.md): This endpoint returns structured Story 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 `stor
 - [POST /stories](https://developer.kantata.com/kantata/specification/stories/create%20story.md): Creates a task (story) in a project (workspace). **Bulk Create** This endpoint supports bulk creating up to 300 objects. In the request body, set the top-level key to its plural form and place the obj
 - [GET /stories/{id}](https://developer.kantata.com/kantata/specification/stories/get%20story.md): This endpoint returns structured Story 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 `stor
 - [PUT /stories/{id}](https://developer.kantata.com/kantata/specification/stories/update%20story.md): This endpoint returns structured Story 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 `stor
 - [DELETE /stories/{id}](https://developer.kantata.com/kantata/specification/stories/delete%20story.md): Soft deletes a task (by setting a value for `deleted_at`). You can view soft deleted tasks by fetching a list of tasks with the `only_deleted` filter set to `true`. Note: Tasks are only permanently de
## Story Dependencies

 - [GET /story_dependencies](https://developer.kantata.com/kantata/specification/story-dependencies/get%20story%20dependencies.md): This endpoint returns structured Story Dependency 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 i
 - [GET /story_dependencies/{id}](https://developer.kantata.com/kantata/specification/story-dependencies/get%20story%20dependency.md): This endpoint returns structured Story Dependency 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 i
## Story State Changes

 - [GET /story_state_changes](https://developer.kantata.com/kantata/specification/story-state-changes/get%20story%20state%20changes.md): The story state changes endpoint provides a list of state changes for a specified story. story_id is a required parameter to retrieve story state changes for a specified story. This endpoint returns s
 - [GET /story_state_changes/{id}](https://developer.kantata.com/kantata/specification/story-state-changes/get%20story%20state%20change.md): This endpoint returns structured Story State Change 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
## Story Tasks

 - [GET /story_tasks](https://developer.kantata.com/kantata/specification/story-tasks/get%20story%20tasks.md): Returns all story tasks belonging to stories in projects that the user is partcipating in. This endpoint returns structured Story Task objects. As with all Kantata OX API endpoints, the returned data
 - [POST /story_tasks](https://developer.kantata.com/kantata/specification/story-tasks/create%20story%20task.md): This endpoint returns structured Story Task 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
 - [GET /story_tasks/{id}](https://developer.kantata.com/kantata/specification/story-tasks/get%20story%20task.md): This endpoint returns structured Story Task 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
 - [PUT /story_tasks/{id}](https://developer.kantata.com/kantata/specification/story-tasks/update%20story%20task.md): This endpoint returns structured Story Task 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
 - [DELETE /story_tasks/{id}](https://developer.kantata.com/kantata/specification/story-tasks/delete%20story%20task.md): The response will contain no content and an HTTP 204 status code if the request was successful, or a [standard Kantata OX error message](#section/Errors) explaining why the object could not be deleted
## Line Item Locks

 - [GET /line_item_locks](https://developer.kantata.com/kantata/specification/line-item-locks/get%20line%20item%20locks.md): This endpoint returns structured Line Item Lock 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
 - [POST /line_item_locks](https://developer.kantata.com/kantata/specification/line-item-locks/create%20line%20item%20lock.md): A line item lock will be created on your account at the specified lock date. On successful creation of a line item lock, a representation of it will be returned to you. If your account requires time t
 - [GET /line_item_locks/{id}](https://developer.kantata.com/kantata/specification/line-item-locks/get%20line%20item%20lock.md): This endpoint returns structured Line Item Lock 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
## Time Entries

 - [GET /time_entries](https://developer.kantata.com/kantata/specification/time-entries/get%20time%20entries.md): Returns all time entries visible to the requesting user, unless filter parameters have been applied. This endpoint returns structured Time Entry objects. As with all Kantata OX API endpoints, the retu
 - [POST /time_entries](https://developer.kantata.com/kantata/specification/time-entries/create%20time%20entry.md): Creates time entries for a user. **Bulk Create** This endpoint supports bulk creating up to 100 objects. In the request body, set the top-level key to its plural form and place the objects in an array
 - [DELETE /time_entries](https://developer.kantata.com/kantata/specification/time-entries/delete%20time%20entries.md): The IDs of the time entries 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 time entries cannot be d
 - [GET /time_entries/{id}](https://developer.kantata.com/kantata/specification/time-entries/get%20time%20entry.md): This endpoint returns structured Time Entry 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
 - [PUT /time_entries/{id}](https://developer.kantata.com/kantata/specification/time-entries/update%20time%20entry.md): This endpoint returns structured Time Entry 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
 - [DELETE /time_entries/{id}](https://developer.kantata.com/kantata/specification/time-entries/delete%20time%20entry.md): Deletes the time entry if it is deletable. A time entry cannot be destroyed if: - the time is locked before a certain date, - the time has been invoiced, or - a time adjustment is linked with it. The
## Timesheet Approvals

 - [POST /timesheet_approvals](https://developer.kantata.com/kantata/specification/timesheet-approvals/approve%20timesheet%20submissions.md): This endpoint allows you to approve multiple pending Timesheet Submissions at once. This endpoint returns structured Resolution objects. As with all Kantata OX API endpoints, the returned data will be
## Timesheet Cancellations

 - [POST /timesheet_cancellations](https://developer.kantata.com/kantata/specification/timesheet-cancellations/cancel%20timesheet%20submissions.md): This endpoint allows you to cancel multiple Timesheet Submissions at once. This endpoint returns structured Resolution objects. As with all Kantata OX API endpoints, the returned data will be referenc
## Timesheet Rejections

 - [POST /timesheet_rejections](https://developer.kantata.com/kantata/specification/timesheet-rejections/reject%20timesheet%20submissions.md): This endpoint allows you to reject multiple Timesheet Submissions at once. This endpoint returns structured Resolution objects. As with all Kantata OX API endpoints, the returned data will be referenc
## Timesheet Submissions

 - [GET /timesheet_submissions](https://developer.kantata.com/kantata/specification/timesheet-submissions/get%20timesheet%20submissions.md): This endpoint returns structured Timesheet Submission 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
 - [POST /timesheet_submissions](https://developer.kantata.com/kantata/specification/timesheet-submissions/create%20timesheet%20submission.md): Create a new TimesheetSubmission. **Note**: A TimesheetSubmission can be associated with only one project. This endpoint returns structured Timesheet Submission objects. As with all Kantata OX API end
 - [GET /timesheet_submissions/{id}](https://developer.kantata.com/kantata/specification/timesheet-submissions/get%20timesheet%20submission.md): This endpoint returns structured Timesheet Submission 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
 - [PUT /timesheet_submissions/{id}/approve](https://developer.kantata.com/kantata/specification/timesheet-submissions/approve%20timesheet%20submission.md): Approves a single Timesheet Submission. You must have [Time Approval permissions](https://knowledge.kantata.com/hc/en-us/articles/203740920) to use this endpoint. To approve multiple Timesheet Submiss
 - [PUT /timesheet_submissions/{id}/cancel](https://developer.kantata.com/kantata/specification/timesheet-submissions/cancel%20timesheet%20submission.md): Cancels a single Timesheet Submission. You must have [Time Approval permissions](https://knowledge.kantata.com/hc/en-us/articles/203740920) to use this endpoint. To cancel multiple Timesheet Submissio
 - [PUT /timesheet_submissions/{id}/reject](https://developer.kantata.com/kantata/specification/timesheet-submissions/reject%20timesheet%20submission.md): Rejects a single Timesheet Submission. You must have [Time Approval permissions](https://knowledge.kantata.com/hc/en-us/articles/203740920) to use this endpoint. To reject multiple Timesheet Submissio
