Mavenlink Project Template Expense Budgets API

Project Template Expense Budgets are expense budgets configured in a project template that are added to a project when the template is applied.

Operations 5

GET /project_template_expense_budgets Fetching a list of Project Template Expense Budgets #
POST /project_template_expense_budgets Creating a new Project Template Expense Budget #
GET /project_template_expense_budgets/{id} Fetching a single Project Template Expense Budget #
PUT /project_template_expense_budgets/{id} Updating an existing Project Template Expense Budget #
DELETE /project_template_expense_budgets/{id} Deleting an existing Project Template Expense Budget #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/mavenlink-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 Specification

mavenlink-project-template-expense-budgets-api-openapi.yml Raw ↑
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