APIClaw project management API
The project management API from APIClaw — 5 operation(s) for project management.
The project management API from APIClaw — 5 operation(s) for project management.
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/apiclaw:apiclaw-project-management-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: LiteLLM project management API
description: 'Proxy Server to call 100+ LLMs in the OpenAI format. **Customize Swagger Docs**
👉 ```LiteLLM Admin Panel on /ui```. Create, Edit Keys with SSO. Having issues? Try ```Fallback Login```
💸 ```LiteLLM Model Cost Map```.
🔎 ```LiteLLM Model Hub```. See available models on the proxy. **Docs**'
version: 1.102.1
tags:
- name: Project Management
paths:
/project/new:
post:
tags:
- Project Management
summary: New Project
description: 'Create a new project. Projects sit between teams and keys in the hierarchy.
Only admins or team admins can create projects.
# Parameters
- project_alias: *Optional[str]* - The name of the project.
- description: *Optional[str]* - Description of the project''s purpose and use case.
- team_id: *str* - The team id that this project belongs to. Required.
- models: *List* - The models the project has access to.
- budget_id: *Optional[str]* - The id for a budget (tpm/rpm/max budget) for the project.
### IF NO BUDGET ID - CREATE ONE WITH THESE PARAMS ###
- max_budget: *Optional[float]* - Max budget for project
- tpm_limit: *Optional[int]* - Max tpm limit for project
- rpm_limit: *Optional[int]* - Max rpm limit for project
- max_parallel_requests: *Optional[int]* - Max parallel requests for project
- soft_budget: *Optional[float]* - Get a slack alert when this soft budget is reached. Don''t block requests.
- model_max_budget: *Optional[dict]* - Max budget for a specific model. Example: {"gpt-4": 100.0, "gpt-3.5-turbo": 50.0}
- model_rpm_limit: *Optional[dict]* - RPM limits per model. Example: {"gpt-4": 1000, "gpt-3.5-turbo": 5000}
- model_tpm_limit: *Optional[dict]* - TPM limits per model. Example: {"gpt-4": 50000, "gpt-3.5-turbo": 100000}
- budget_duration: *Optional[str]* - Frequency of reseting project budget
- metadata: *Optional[dict]* - Metadata for project, store information for project. Example metadata - {"use_case_id": "SNOW-12345", "responsible_ai_id": "RAI-67890"}
- tags: *Optional[list]* - Tags for the project. Example: ["production", "api"]
- blocked: *bool* - Flag indicating if the project is blocked or not - will stop all calls from keys with this project_id.
- object_permission: Optional[LiteLLM_ObjectPermissionBase] - project-specific object permission. Example - {"vector_stores": ["vector_store_1", "vector_store_2"]}. IF null or {} then no object permission.
Example 1: Create new project **without** a budget_id, with model-specific limits
```bash
curl --location ''http://0.0.0.0:4000/project/new'' \
--header ''Authorization: Bearer sk-1234'' \
--header ''Content-Type: application/json'' \
--data ''{
"project_alias": "flight-search-assistant",
"description": "AI-powered flight search and booking assistant",
"team_id": "team-123",
"models": ["gpt-4", "gpt-3.5-turbo"],
"max_budget": 100,
"model_rpm_limit": {
"gpt-4": 1000,
"gpt-3.5-turbo": 5000
},
"model_tpm_limit": {
"gpt-4": 50000,
"gpt-3.5-turbo": 100000
},
"metadata": {
"use_case_id": "SNOW-12345",
"responsible_ai_id": "RAI-67890"
}
}''
```
Example 2: Create new project **with** a budget_id
```bash
curl --location ''http://0.0.0.0:4000/project/new'' \
--header ''Authorization: Bearer sk-1234'' \
--header ''Content-Type: application/json'' \
--data ''{
"project_alias": "hotel-recommendations",
"description": "Personalized hotel recommendation engine",
"team_id": "team-123",
"models": ["claude-3-sonnet"],
"budget_id": "428eeaa8-f3ac-4e85-a8fb-7dc8d7aa8689",
"metadata": {
"use_case_id": "SNOW-54321"
}
}''
```'
operationId: new_project_project_new_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NewProjectRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/NewProjectResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/project/update:
post:
tags:
- Project Management
summary: Update Project
description: 'Update a project
Parameters:
- project_id: *str* - The project id to update. Required.
- project_alias: *Optional[str]* - Updated name for the project
- description: *Optional[str]* - Updated description for the project
- team_id: *Optional[str]* - Updated team_id for the project
- metadata: *Optional[dict]* - Updated metadata for project
- models: *Optional[list]* - Updated list of models for the project
- blocked: *Optional[bool]* - Updated blocked status
- max_budget: *Optional[float]* - Updated max budget
- tpm_limit: *Optional[int]* - Updated tpm limit
- rpm_limit: *Optional[int]* - Updated rpm limit
- model_rpm_limit: *Optional[dict]* - Updated RPM limits per model
- model_tpm_limit: *Optional[dict]* - Updated TPM limits per model
- budget_duration: *Optional[str]* - Updated budget duration
- tags: *Optional[list]* - Updated list of tags for the project
- object_permission: Optional[LiteLLM_ObjectPermissionBase] - Updated object permission
Example:
```bash
curl --location ''http://0.0.0.0:4000/project/update'' \
--header ''Authorization: Bearer sk-1234'' \
--header ''Content-Type: application/json'' \
--data ''{
"project_id": "project-123",
"description": "Updated flight search system with enhanced capabilities",
"max_budget": 200,
"model_rpm_limit": {
"gpt-4": 2000,
"gpt-3.5-turbo": 10000
},
"metadata": {
"use_case_id": "SNOW-12345",
"status": "active"
}
}''
```'
operationId: update_project_project_update_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateProjectRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/LiteLLM_ProjectTable'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/project/delete:
delete:
tags:
- Project Management
summary: Delete Project
description: 'Delete projects
Parameters:
- project_ids: *List[str]* - List of project ids to delete
Example:
```bash
curl --location --request DELETE ''http://0.0.0.0:4000/project/delete'' \
--header ''Authorization: Bearer sk-1234'' \
--header ''Content-Type: application/json'' \
--data ''{
"project_ids": ["project-123", "project-456"]
}''
```'
operationId: delete_project_project_delete_delete
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteProjectRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
items:
$ref: '#/components/schemas/LiteLLM_ProjectTable'
type: array
title: Response Delete Project Project Delete Delete
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- APIKeyHeader: []
/project/info:
get:
tags:
- Project Management
summary: Project Info
description: 'Get information about a specific project
Parameters:
- project_id: *str* - The project id to fetch info for
Example:
```bash
curl --location ''http://0.0.0.0:4000/project/info?project_id=project-123'' \
--header ''Authorization: Bearer sk-1234''
```'
operationId: project_info_project_info_get
security:
- APIKeyHeader: []
parameters:
- name: project_id
in: query
required: true
schema:
type: string
title: Project Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/LiteLLM_ProjectTable'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/project/list:
get:
tags:
- Project Management
summary: List Projects
description: 'List all projects that the user has access to
Example:
```bash
curl --location ''http://0.0.0.0:4000/project/list'' \
--header ''Authorization: Bearer sk-1234''
```'
operationId: list_projects_project_list_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
items:
$ref: '#/components/schemas/LiteLLM_ProjectTable'
type: array
title: Response List Projects Project List Get
security:
- APIKeyHeader: []
components:
schemas:
LiteLLM_ObjectPermissionTable:
properties:
object_permission_id:
type: string
title: Object Permission Id
mcp_servers:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Mcp Servers
default: []
mcp_access_groups:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Mcp Access Groups
default: []
mcp_tool_permissions:
anyOf:
- additionalProperties:
items:
type: string
type: array
type: object
- type: 'null'
title: Mcp Tool Permissions
vector_stores:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Vector Stores
default: []
agents:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Agents
default: []
agent_access_groups:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Agent Access Groups
default: []
models:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Models
default: []
mcp_toolsets:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Mcp Toolsets
blocked_tools:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Blocked Tools
default: []
search_tools:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Search Tools
default: []
mcp_tool_search_enabled:
anyOf:
- type: boolean
- type: 'null'
title: Mcp Tool Search Enabled
skills:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Skills
type: object
required:
- object_permission_id
title: LiteLLM_ObjectPermissionTable
description: Represents a LiteLLM_ObjectPermissionTable record
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
NewProjectRequest:
properties:
budget_id:
anyOf:
- type: string
- type: 'null'
title: Budget Id
soft_budget:
anyOf:
- type: number
- type: 'null'
title: Soft Budget
max_budget:
anyOf:
- type: number
- type: 'null'
title: Max Budget
max_parallel_requests:
anyOf:
- type: integer
- type: 'null'
title: Max Parallel Requests
tpm_limit:
anyOf:
- type: integer
- type: 'null'
title: Tpm Limit
rpm_limit:
anyOf:
- type: integer
- type: 'null'
title: Rpm Limit
model_max_budget:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Model Max Budget
budget_duration:
anyOf:
- type: string
- type: 'null'
title: Budget Duration
allowed_models:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Allowed Models
project_id:
anyOf:
- type: string
- type: 'null'
title: Project Id
project_alias:
anyOf:
- type: string
- type: 'null'
title: Project Alias
description:
anyOf:
- type: string
- type: 'null'
title: Description
team_id:
type: string
title: Team Id
metadata:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Metadata
tags:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Tags
guardrails:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Guardrails
policies:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Policies
models:
items:
type: string
type: array
title: Models
default: []
model_rpm_limit:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Model Rpm Limit
model_tpm_limit:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Model Tpm Limit
model_itpm_limit:
anyOf:
- additionalProperties:
type: integer
type: object
- type: 'null'
title: Model Itpm Limit
model_otpm_limit:
anyOf:
- additionalProperties:
type: integer
type: object
- type: 'null'
title: Model Otpm Limit
blocked:
type: boolean
title: Blocked
default: false
object_permission:
anyOf:
- $ref: '#/components/schemas/LiteLLM_ObjectPermissionBase'
- type: 'null'
type: object
required:
- team_id
title: NewProjectRequest
description: Request model for POST /project/new
DeleteProjectRequest:
properties:
project_ids:
items:
type: string
type: array
title: Project Ids
type: object
required:
- project_ids
title: DeleteProjectRequest
description: Request model for DELETE /project/delete
UpdateProjectRequest:
properties:
budget_id:
anyOf:
- type: string
- type: 'null'
title: Budget Id
soft_budget:
anyOf:
- type: number
- type: 'null'
title: Soft Budget
max_budget:
anyOf:
- type: number
- type: 'null'
title: Max Budget
max_parallel_requests:
anyOf:
- type: integer
- type: 'null'
title: Max Parallel Requests
tpm_limit:
anyOf:
- type: integer
- type: 'null'
title: Tpm Limit
rpm_limit:
anyOf:
- type: integer
- type: 'null'
title: Rpm Limit
model_max_budget:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Model Max Budget
budget_duration:
anyOf:
- type: string
- type: 'null'
title: Budget Duration
allowed_models:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Allowed Models
project_id:
type: string
title: Project Id
project_alias:
anyOf:
- type: string
- type: 'null'
title: Project Alias
description:
anyOf:
- type: string
- type: 'null'
title: Description
team_id:
anyOf:
- type: string
- type: 'null'
title: Team Id
metadata:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Metadata
tags:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Tags
guardrails:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Guardrails
policies:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Policies
models:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Models
model_rpm_limit:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Model Rpm Limit
model_tpm_limit:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Model Tpm Limit
model_itpm_limit:
anyOf:
- additionalProperties:
type: integer
type: object
- type: 'null'
title: Model Itpm Limit
model_otpm_limit:
anyOf:
- additionalProperties:
type: integer
type: object
- type: 'null'
title: Model Otpm Limit
blocked:
anyOf:
- type: boolean
- type: 'null'
title: Blocked
object_permission:
anyOf:
- $ref: '#/components/schemas/LiteLLM_ObjectPermissionBase'
- type: 'null'
type: object
required:
- project_id
title: UpdateProjectRequest
description: Request model for POST /project/update
LiteLLM_ProjectTable:
properties:
project_id:
type: string
title: Project Id
project_alias:
anyOf:
- type: string
- type: 'null'
title: Project Alias
description:
anyOf:
- type: string
- type: 'null'
title: Description
team_id:
anyOf:
- type: string
- type: 'null'
title: Team Id
budget_id:
anyOf:
- type: string
- type: 'null'
title: Budget Id
metadata:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Metadata
models:
items:
type: string
type: array
title: Models
default: []
spend:
type: number
title: Spend
default: 0.0
model_spend:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Model Spend
model_rpm_limit:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Model Rpm Limit
model_tpm_limit:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Model Tpm Limit
blocked:
type: boolean
title: Blocked
default: false
object_permission_id:
anyOf:
- type: string
- type: 'null'
title: Object Permission Id
created_by:
anyOf:
- type: string
- type: 'null'
title: Created By
updated_by:
anyOf:
- type: string
- type: 'null'
title: Updated By
created_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Created At
updated_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Updated At
litellm_budget_table:
anyOf:
- $ref: '#/components/schemas/LiteLLM_BudgetTable'
- type: 'null'
object_permission:
anyOf:
- $ref: '#/components/schemas/LiteLLM_ObjectPermissionTable'
- type: 'null'
type: object
required:
- project_id
title: LiteLLM_ProjectTable
description: Database model representation for project
LiteLLM_BudgetTable:
properties:
budget_id:
anyOf:
- type: string
- type: 'null'
title: Budget Id
soft_budget:
anyOf:
- type: number
- type: 'null'
title: Soft Budget
max_budget:
anyOf:
- type: number
- type: 'null'
title: Max Budget
max_parallel_requests:
anyOf:
- type: integer
- type: 'null'
title: Max Parallel Requests
tpm_limit:
anyOf:
- type: integer
- type: 'null'
title: Tpm Limit
rpm_limit:
anyOf:
- type: integer
- type: 'null'
title: Rpm Limit
model_max_budget:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Model Max Budget
budget_duration:
anyOf:
- type: string
- type: 'null'
title: Budget Duration
allowed_models:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Allowed Models
type: object
title: LiteLLM_BudgetTable
description: 'Represents user-controllable params for a LiteLLM_BudgetTable record.
Budget-write paths use `model_fields.keys()` on this class as an allowlist
for user input. Keep server-managed fields (e.g. `budget_reset_at`) on
`LiteLLM_BudgetTableFull` so they aren''t user-settable.'
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
LiteLLM_ObjectPermissionBase:
properties:
mcp_servers:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Mcp Servers
mcp_access_groups:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Mcp Access Groups
mcp_tool_permissions:
anyOf:
- additionalProperties:
items:
type: string
type: array
type: object
- type: 'null'
title: Mcp Tool Permissions
mcp_toolsets:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Mcp Toolsets
blocked_tools:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Blocked Tools
vector_stores:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Vector Stores
agents:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Agents
agent_access_groups:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Agent Access Groups
models:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Models
search_tools:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Search Tools
mcp_tool_search_enabled:
anyOf:
- type: boolean
- type: 'null'
title: Mcp Tool Search Enabled
skills:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Skills
type: object
title: LiteLLM_ObjectPermissionBase
NewProjectResponse:
properties:
project_id:
type: string
title: Project Id
project_alias:
anyOf:
- type: string
- type: 'null'
title: Project Alias
description:
anyOf:
- type: string
- type: 'null'
title: Description
team_id:
anyOf:
- type: string
- type: 'null'
title: Team Id
budget_id:
anyOf:
- type: string
- type: 'null'
title: Budget Id
metadata:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Metadata
models:
items:
type: string
type: array
title: Models
default: []
spend:
type: number
title: Spend
default: 0.0
model_spend:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Model Spend
model_rpm_limit:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Model Rpm Limit
model_tpm_limit:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Model Tpm Limit
blocked:
type: boolean
title: Blocked
default: false
object_permission_id:
anyOf:
- type: string
- type: 'null'
title: Object Permission Id
created_by:
anyOf:
- type: string
- type: 'null'
title: Created By
updated_by:
anyOf:
- type: string
- type: 'null'
title: Updated By
created_at:
type: string
format: date-time
title: Created At
updated_at:
type: string
format: date-time
title: Updated At
litellm_budget_table:
anyOf:
- $ref: '#/components/schemas/LiteLLM_BudgetTable'
- type: 'null'
object_permission:
anyOf:
- $ref: '#/components/schemas/LiteLLM_ObjectPermissionTable'
- type: 'null'
type: object
required:
- project_id
- created_at
- updated_at
title: NewProjectResponse
description: Response model for POST /project/new
securitySchemes:
APIKeyHeader:
type: apiKey
description: Bearer token
in: header
name: x-litellm-api-key