Rotageek Budget API
The Budget API from Rotageek — 1 operation(s) for budget.
The Budget API from Rotageek — 1 operation(s) for budget.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/rotageek:rotageek-budget-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a 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:
title: Rotageek API v1 Budget API
description: Hello World!
contact:
name: Rotageek
email: office@rotageek.com
version: '1.0'
security:
- Bearer: []
tags:
- name: Budget
paths:
/api/v1/budget/{locationId}/{type}:
get:
tags:
- Budget
summary: Retrieve paginated budget record list for location
description: Retrieves a paginated budget record list for location filtered by parameters
operationId: Budget_GetBudgets
parameters:
- name: locationId
in: path
description: Target location id
required: true
schema:
type: string
- name: type
in: path
description: Type of budget record to be retrieved i.e. Money or Hours
required: true
schema:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.BudgetType'
- name: from
in: query
description: Start date from which records are to be fetched.
schema:
type: string
format: date-time
- name: Sort
in: query
description: 'Sorting field for pages sorting. Default: budget start date'
schema:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.BudgetRecordSortField'
- name: To
in: query
description: 'End date from which records be fetched. Default: no end date filtering'
schema:
type: string
format: date-time
- name: TaskIds
in: query
description: List of task ids to filter budget query by i.e. the budget record needs to be associated with all task ids specified in this filter.
schema:
type: array
items:
type: string
- name: Page
in: query
description: 'Zero based page number. Default: 0'
schema:
maximum: 32767
minimum: 0
type: integer
format: int32
- name: PageSize
in: query
description: 'Number of records per page (1-50). Default: 30'
schema:
maximum: 50
minimum: 1
type: integer
format: int32
- name: Order
in: query
description: 'Sorting order. Default: Ascending'
schema:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.SortOrder'
responses:
'200':
description: Paginated budget records
content:
text/plain:
schema:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.ListWrapperModel_1__Rotageek.AspNetCore.PublicApi.Models.BudgetModel__Rotageek.AspNetCore.PublicApi__Version_2026.10.9.7962__Culture_neutral__PublicKeyToken_null'
application/json:
schema:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.ListWrapperModel_1__Rotageek.AspNetCore.PublicApi.Models.BudgetModel__Rotageek.AspNetCore.PublicApi__Version_2026.10.9.7962__Culture_neutral__PublicKeyToken_null'
text/json:
schema:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.ListWrapperModel_1__Rotageek.AspNetCore.PublicApi.Models.BudgetModel__Rotageek.AspNetCore.PublicApi__Version_2026.10.9.7962__Culture_neutral__PublicKeyToken_null'
'400':
description: Request parameters are invalid
'401':
description: Access to resource denied
'404':
description: Location not found
'500':
description: Internal Server Error
put:
tags:
- Budget
summary: Add (or update - if an exact match exists) budget records
description: Add or update money or hours budget records for location
operationId: Budget_AddOrUpdate
parameters:
- name: locationId
in: path
description: Target location id
required: true
schema:
type: string
- name: type
in: path
description: Type of budget record to be saved i.e. Money or Hours
required: true
schema:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.BudgetType'
requestBody:
description: Budget data to be saved
content:
application/json-patch+json:
schema:
type: array
items:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.BudgetModel'
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.BudgetModel'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.BudgetModel'
application/*+json:
schema:
type: array
items:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.BudgetModel'
responses:
'200':
description: List of budget records that were successfully saved
content:
text/plain:
schema:
type: array
items:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.BudgetModel'
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.BudgetModel'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.BudgetModel'
'400':
description: Request parameters are invalid
'401':
description: Access to resource denied
'404':
description: Location not found
'500':
description: Internal Server Error
components:
schemas:
Rotageek.AspNetCore.PublicApi.Models.BudgetModel:
type: object
properties:
start:
type: string
description: Start of date range for budget figure
format: date-time
end:
type: string
description: End of date range for budget figure
format: date-time
value:
type: number
description: Value of the budget figure
format: double
taskIds:
type:
- array
- 'null'
items:
type: string
description: List of task id(s) associated with this budget entry
additionalProperties: false
description: Container for budget figures for a specific date range
Rotageek.AspNetCore.PublicApi.Models.BudgetRecordSortField:
enum:
- Start
- End
- Value
type: string
description: Describes possible fields for budget list ordering
Rotageek.AspNetCore.PublicApi.Models.PaginationModel:
type: object
properties:
pageNumber:
type: integer
description: Current number of the requested page (zero based)
format: int32
pageSizeRequested:
type: integer
description: Number of items that were requested
format: int32
itemsCount:
type: integer
description: Number of items fetched
format: int32
hasMore:
type: boolean
description: Flag informing that there are more records then was fetched with this request
additionalProperties: false
description: Container object for pagination information
Rotageek.AspNetCore.PublicApi.Models.SortOrder:
enum:
- Ascending
- Descending
type: string
description: Describes items sort order
Rotageek.AspNetCore.PublicApi.Models.BudgetType:
enum:
- Money
- Hours
type: string
description: Describes the variations of budget figures supported
? Rotageek.AspNetCore.PublicApi.Models.ListWrapperModel_1__Rotageek.AspNetCore.PublicApi.Models.BudgetModel__Rotageek.AspNetCore.PublicApi__Version_2026.10.9.7962__Culture_neutral__PublicKeyToken_null
: type: object
properties:
items:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.BudgetModel'
description: Collection of items returned from the request
pagination:
$ref: '#/components/schemas/Rotageek.AspNetCore.PublicApi.Models.PaginationModel'
additionalProperties: false
description: Container for pagination information and items collection
securitySchemes:
Bearer:
type: http
description: Paste the JWT access token returned by POST /api/v1/auth. Swagger adds the 'Bearer ' prefix automatically.
scheme: bearer
bearerFormat: JWT
oauth2:
type: oauth2
description: OAuth2 Password Grant
flows:
password:
tokenUrl: /api/v1/auth
scopes: {}