Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/mavenlink-project-template-expense-budgets-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
version: 1.0.0
title: Kantata OX API Documentation Project Template Expense…
description: Kantata OX's API provides access to the majority of Kantata OX's data model.
termsOfService: https://www.kantata.com/terms-of-use
contact:
name: Kantata OX Support
url: https://knowledge.kantata.com/hc/en-us
license:
name: COPYRIGHT © 2026 Kantata, Inc.
url: https://www.kantata.com/terms-of-use
x-logo:
url: https://theme.zdassets.com/theme_assets/56104/04e93064d309f75d054b8cee885d1ea51e9be8f7.png
backgroundColor: '#FFFFFF'
altText: Kantata OX API Documentation
href: https://developer.kantata.com
servers:
- url: https://api.mavenlink.com/api/v1
tags:
- name: Project Template Expense Budgets
description: 'Project Template Expense Budgets are expense budgets configured in a
project template that are added to a project when the template is applied.'
paths:
/project_template_expense_budgets:
get:
summary: Fetching a list of Project Template Expense Budgets
description: '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 indexed by ID in the `project_template_expense_budgets` top-level JSON key.
Please see our Response Format section for more information.'
operationId: Get Project Template Expense Budgets
tags:
- Project Template Expense Budgets
parameters:
- in: query
name: created_after
description: Filter for records created after a specified datetime. The datetime must be in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format.
schema:
type: string
format: date-time
- in: query
name: created_before
description: Filter for records created before a specified datetime. The datetime must be in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format.
schema:
type: string
format: date-time
- in: query
name: include
description: 'Any of the below associations can be included in your request by providing the `include` param, e.g. `include=association1,association2`.
- `project_template` (ProjectTemplate) - Retrieves the template the expense budget is on. The response will include `project_template_id`,
which references the data in the `project_templates` top-level key.'
schema:
type: string
- in: query
name: only
description: 'Allows you to request one or more resources directly by ID. Multiple IDs can be supplied
in a comma separated list, like `GET /api/v1/workspaces.json?only=5,6,7`.'
schema:
type: string
- in: query
name: order
description: 'Supply `order` with the name of a valid sort field for the endpoint and a direction.
Valid values: `created_at:asc`, `created_at:desc`, `title:asc`, and `title:desc`.'
schema:
type: string
default: created_at:desc
- in: query
name: page
schema:
type: integer
format: int32
default: 1
- in: query
name: per_page
schema:
type: integer
format: int32
default: 20
maximum: 200
- in: query
name: project_template_id
description: Filter by project template ID.
schema:
type: integer
format: int32
- in: query
name: updated_after
description: Filter for records updated after a specified datetime. The datetime must be in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format.
schema:
type: string
format: date-time
- in: query
name: updated_before
description: Filter for records updated before a specified datetime. The datetime must be in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format.
schema:
type: string
format: date-time
responses:
'200':
description: A list of Project Template Expense Budgets have been retrieved.
content:
application/json:
schema:
type: object
properties:
count:
type: integer
format: int32
meta:
type: object
properties:
count:
type: integer
format: int32
page_count:
type: integer
format: int32
page_number:
type: integer
format: int32
page_size:
type: integer
format: int32
results:
type: array
items:
type: object
properties:
key:
type: string
id:
type: string
project_template_expense_budgets:
type: object
additionalProperties:
$ref: '#/components/schemas/ProjectTemplateExpenseBudget'
project_templates:
type: object
additionalProperties:
$ref: '#/components/schemas/ProjectTemplate'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'401':
description: Unauthorized request
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'403':
description: Forbidden request
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'404':
description: Page Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'503':
description: Service is unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
post:
summary: Creating a new Project Template Expense Budget
description: '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 objects in an array. Example:
```
{
"project_template_expense_budgets": [
{
"project_template_id": 123,
"title": "Expense",
"billable": true,
"burns_budget": true,
"fixed_fee": false,
"cost_per_unit_in_subunits": 10000,
"markup_type": "percentage",
"markup_percentage": 10,
"quantity": 1
},
{
"project_template_id": 123,
"title": "Expense 2",
"billable": true,
"burns_budget": true,
"fixed_fee": false,
"cost_per_unit_in_subunits": 20000,
"markup_type": "percentage",
"markup_percentage": 10,
"quantity": 1
}
]
}
```
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 indexed by ID in the `project_template_expense_budgets` top-level JSON key.
Please see our Response Format section for more information.'
operationId: Create Project Template Expense Budget
tags:
- Project Template Expense Budgets
parameters:
- in: query
name: include
description: 'Any of the below associations can be included in your request by providing the `include` param, e.g. `include=association1,association2`.
- `project_template` (ProjectTemplate) - Retrieves the template the expense budget is on. The response will include `project_template_id`,
which references the data in the `project_templates` top-level key.'
schema:
type: string
responses:
'200':
description: Project Template Expense Budget has been created.
content:
application/json:
schema:
type: object
properties:
count:
type: integer
format: int32
meta:
type: object
properties:
count:
type: integer
format: int32
page_count:
type: integer
format: int32
page_number:
type: integer
format: int32
page_size:
type: integer
format: int32
results:
type: array
items:
type: object
properties:
key:
type: string
id:
type: string
project_template_expense_budgets:
type: object
additionalProperties:
$ref: '#/components/schemas/ProjectTemplateExpenseBudget'
project_templates:
type: object
additionalProperties:
$ref: '#/components/schemas/ProjectTemplate'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'401':
description: Unauthorized request
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'403':
description: Forbidden request
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'404':
description: Page Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'503':
description: Service is unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
requestBody:
content:
application/json:
schema:
type: object
properties:
project_template_expense_budget:
type: object
properties:
project_template_id:
type: integer
format: int32
description: The ID of the template to add the expense budget to.
title:
type: string
description: The name of the expense budget.
description:
type: string
description: The description of the expense budget.
billable:
type: boolean
description: Whether the expense will be billed to the client.
burns_budget:
type: boolean
description: Whether the expense budget impacts the project margin.
fixed_fee:
type: boolean
description: Whether the expense will be billed as a fixed cost.
cost_per_unit_in_subunits:
type: integer
format: int32
description: The cost, in the subunits of the currency (e.g. cents for USD).
markup_type:
type: string
description: The markup type. Possible values are `percentage` and `flat_fee`.
markup_per_unit_in_subunits:
type: integer
format: int32
description: The markup per unit, in the subunits of the currency (e.g. cents for USD).
markup_percentage:
type: number
format: float
description: If the `markup_type` is `percentage`, this is the markup percentage to apply to the expenses.
quantity:
type: integer
format: int32
description: The number of expected units for the expense budget.
relative_expected_by_date:
type: integer
format: int32
description: 'When the expenses are expected to be logged, relative to the project’s start date.
You can provide a negative value to indicate expenses are expected before the
project’s start date.'
required:
- project_template_id
- title
- billable
- burns_budget
- fixed_fee
required: true
/project_template_expense_budgets/{id}:
get:
summary: Fetching a single Project Template Expense Budget
description: '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 indexed by ID in the `project_template_expense_budgets` top-level JSON key.
Please see our Response Format section for more information.'
operationId: Get Project Template Expense Budget
tags:
- Project Template Expense Budgets
parameters:
- in: path
name: id
required: true
description: The ID of the Model.
schema:
type: integer
- in: query
name: include
description: 'Any of the below associations can be included in your request by providing the `include` param, e.g. `include=association1,association2`.
- `project_template` (ProjectTemplate) - Retrieves the template the expense budget is on. The response will include `project_template_id`,
which references the data in the `project_templates` top-level key.'
schema:
type: string
responses:
'200':
description: The Project Template Expense Budget has been retrieved.
content:
application/json:
schema:
type: object
properties:
count:
type: integer
format: int32
meta:
type: object
properties:
count:
type: integer
format: int32
page_count:
type: integer
format: int32
page_number:
type: integer
format: int32
page_size:
type: integer
format: int32
results:
type: array
items:
type: object
properties:
key:
type: string
id:
type: string
project_template_expense_budgets:
type: object
additionalProperties:
$ref: '#/components/schemas/ProjectTemplateExpenseBudget'
project_templates:
type: object
additionalProperties:
$ref: '#/components/schemas/ProjectTemplate'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'401':
description: Unauthorized request
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'403':
description: Forbidden request
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'404':
description: Page Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'503':
description: Service is unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
put:
summary: Updating an existing Project Template Expense Budget
description: '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 indexed by ID in the `project_template_expense_budgets` top-level JSON key.
Please see our Response Format section for more information.'
operationId: Update Project Template Expense Budget
tags:
- Project Template Expense Budgets
parameters:
- in: path
name: id
required: true
description: The ID of the Model.
schema:
type: integer
- in: query
name: include
description: 'Any of the below associations can be included in your request by providing the `include` param, e.g. `include=association1,association2`.
- `project_template` (ProjectTemplate) - Retrieves the template the expense budget is on. The response will include `project_template_id`,
which references the data in the `project_templates` top-level key.'
schema:
type: string
responses:
'200':
description: Project Template Expense Budget has been updated.
content:
application/json:
schema:
type: object
properties:
count:
type: integer
format: int32
meta:
type: object
properties:
count:
type: integer
format: int32
page_count:
type: integer
format: int32
page_number:
type: integer
format: int32
page_size:
type: integer
format: int32
results:
type: array
items:
type: object
properties:
key:
type: string
id:
type: string
project_template_expense_budgets:
type: object
additionalProperties:
$ref: '#/components/schemas/ProjectTemplateExpenseBudget'
project_templates:
type: object
additionalProperties:
$ref: '#/components/schemas/ProjectTemplate'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'401':
description: Unauthorized request
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'403':
description: Forbidden request
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'404':
description: Page Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'503':
description: Service is unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
requestBody:
content:
application/json:
schema:
type: object
properties:
project_template_expense_budget:
type: object
properties:
title:
type: string
description: The name of the expense budget.
billable:
type: boolean
description: Whether the expense will be billed to the client.
burns_budget:
type: boolean
description: Whether the expense budget impacts the project margin.
fixed_fee:
type: boolean
description: Whether the expense will be billed as a fixed cost.
description:
type: string
description: The description of the expense budget.
cost_per_unit_in_subunits:
type: integer
format: int32
description: The cost, in the subunits of the currency (e.g. cents for USD).
markup_type:
type: string
description: The markup type. Possible values are `percentage` and `flat_fee`.
markup_per_unit_in_subunits:
type: integer
format: int32
description: The markup per unit, in the subunits of the currency (e.g. cents for USD).
markup_percentage:
type: number
format: float
description: If the `markup_type` is `percentage`, this is the markup percentage to apply to the expenses.
quantity:
type: integer
format: int32
description: The number of expected units for the expense budget.
relative_expected_by_date:
type: integer
format: int32
description: 'When the expenses are expected to be logged, relative to the project’s start date.
You can provide a negative value to indicate expenses are expected before the
project’s start date.'
required: true
delete:
summary: Deleting an existing Project Template Expense Budget
description: '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 explaining why the object could not be deleted.'
operationId: Delete Project Template Expense Budget
tags:
- Project Template Expense Budgets
parameters:
- in: path
name: id
required: true
description: The ID of the Model.
schema:
type: integer
responses:
'204':
description: Project Template Expense Budget has been deleted.
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'401':
description: Unauthorized request
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'403':
description: Forbidden request
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'404':
description: Page Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
'503':
description: Service is unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
components:
schemas:
Error:
type: object
properties:
type:
type: string
message:
type: string
ProjectTemplate:
title: Project Template
description: "Project Templates are sets of tasks and attributes that can be applied to new or existing projects.\n A single template can be used on any number of projects."
type: object
properties:
budget:
type: integer
format: int32
description: The estimated overall budget of the project associated with the template.
created_at:
type: string
format: date-time
currency:
type: string
description: The currency of the project template.
description:
type: string
description: A description of the project template (this does not map over to the project description when applied).
duration:
type: integer
format: int32
description: The estimated number of days that the project will take to complete.
is_budgeted:
type: boolean
description: The project template has financial attributes including overall budget, task budgets, and task time estimates.
item_count:
type: integer
format: int32
description: The number of tasks in the project template.
permissions:
type: object
properties:
can_edit_project_template:
type: boolean
description: Whether the current user can edit the project template.
project_template_additional_tab_ids:
type: array
items:
type: string
description: '`project_template_additional_tab_ids` will only be included in the response if `project_template_additional_tabs` is in the list of included associations. See <a href=''#section/Includes''>include</a> section for usage.'
project_template_assignment_ids:
type: array
items:
type: string
description: '`project_template_assignment_ids` will only be included in the response if `project_template_assignments` is in the list of included associations. See <a href=''#section/Includes''>include</a> section for usage.'
raw_json:
type: string
description: 'A json hash that contains all the project templates tasks.
Only returned when requested through the optional_fields param.'
shared:
type: boolean
description: (Deprecated in favor of sharing) The project template is shared with users on the account, other than the creator.
sharing:
type: string
description: The project template sharing settings. A template can be private, shared, or editable.
title:
type: string
description: The title of the project template.
updated_at:
type: string
format: date-time
user_id:
type: string
description: '`user_id` will only be included in the response if `user` is in the list of included associations. See <a href=''#section/Includes''>include</a> section for usage.'
Errors:
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/Error'
ProjectTemplateExpenseBudget:
title: Project Template Expense Budget
description: 'Project Template Expense Budgets are expense budgets configured in a project
template that are added to a project when the template is applied.'
type: object
properties:
billable:
type: boolean
description: Whether the expense will be billed to the client.
burns_budget:
type: boolean
description: Whether the expense budget affects the project margin.
cost_per_unit_in_subunits:
type: integer
format: int32
description: The cost per unit, in the subunits of the currency (e.g. cents for USD).
created_at:
type: string
format: date-time
description: When the expense budget on the template was created.
description:
type: string
description: The description of the expense budget.
fixed_fee:
type: boolean
description: Whether the expense will be billed as a fixed cost.
markup_per_unit_in_subunits:
type: integer
format: int32
description: The markup per unit, in the subunits of the currency (e.g. cents for USD).
markup_percentage:
type: integer
format: int32
description: If the `markup_type` is `percentage`, this is the percentage markup for the expense budget.
markup_type:
type: string
description: The type of markup for the expense budget. Possible values are `flat_fee` and `percentage`.
project_template_id:
type: integer
format: int32
description: The ID of the project template the expense budget is on.
quantity:
type: integer
format: int32
description: The number of expected units for the expense budget.
relative_expected_by_date:
type: integer
format: int32
description: When the expenses are expected to be logged, relative to the project’s start date.
title:
type: string
description: The title of the expense budget.
updated_at:
type: string
format: date-time
description: When the expense budget on the template was last updated.
securitySchemes:
BearerToken:
type: apiKey
name: Bearer
in: header
OauthSecurity:
type: oauth2
flows:
authorizationCode:
scopes: {}
authorizationUrl: https://app.mavenlink.com/oauth/authorize
tokenUrl: https://app.mavenlink.com/oauth/token
x-tagGroups:
- name: '# Subscribed Events'
tags:
- Event Types
- Events
- name: Account Locations
tags:
- Account Locations
- name: Account Settings & Members
tags:
- Access Group Memberships
- Account Colors
- Account Invitations
- Account Memberships
- Backup Approver Associations
- Billable Utilizations
- Cost Rates
- Custom Branding
- Organization Memberships
- Organizations
- Roles
- Skill Categories
- Skill Memberships
- Skills
- Task Status Sets
- Task Statuses
- User Group Memberships
- Users
- name: Currencies
tags:
- Curren
# --- truncated at 32 KB (34 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mavenlink/refs/heads/main/openapi/mavenlink-project-template-expense-budgets-api-openapi.yml