{"files":{"SKILL.md":"---\nname: convex-management-api\ndescription: \"Convex Management API skill. Use when working with Convex Management for teams, projects, deployments. Covers 34 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Convex Management API\nAPI version: 1.0.0\n\n## Auth\nBearer bearer | Bearer bearer | Bearer bearer | Bearer bearer\n\n## Base URL\nhttps://api.convex.dev/v1\n\n## Setup\n1. Set Authorization header with Bearer token\n2. GET /list_personal_access_tokens -- list personal access tokens\n3. POST /teams/{team_id}/create_project -- create first create_project\n\n## Endpoints\n34 endpoints across 7 groups. See references/api-spec.lap for full details.\n\n### Teams\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /teams/{team_id}/create_project | Create project |\n| GET | /teams/{team_id}/list_projects | List projects |\n| GET | /teams/{team_id_or_slug}/projects/{project_slug}/deployment | Get deployment in project by slug |\n| GET | /teams/{team_id_or_slug}/projects/{project_slug} | Get project by slug |\n| GET | /teams/{team_id}/list_deployment_classes | List deployment classes |\n| GET | /teams/{team_id}/list_deployment_regions | List deployment regions |\n| GET | /teams/{team_id}/list_deployments | List deployments for team |\n| GET | /teams/{team_id}/list_local_deployments | List local deployments |\n| GET | /teams/{team_id}/list_members | List team members |\n| POST | /teams/create_team | Create a team |\n| POST | /teams/{team_id}/create_access_token | Create a team access token |\n| POST | /teams/{team_id}/invite_team_member |  |\n\n### Projects\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /projects/{project_id}/list_deployments | List deployments |\n| GET | /projects/{project_id}/deployment | Get deployment in project by id |\n| POST | /projects/{project_id}/delete | Delete project |\n| GET | /projects/{project_id} | Get project by ID |\n| POST | /projects/{project_id}/create_deployment | Create deployment |\n| POST | /projects/{project_id}/create_preview_deploy_key | Create preview deploy key |\n| GET | /projects/{project_id}/list_preview_deploy_keys | List preview deploy keys |\n| POST | /projects/{project_id}/delete_preview_deploy_key | Delete preview deploy key |\n\n### Deployments\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /deployments/{deployment_name}/delete | Delete deployment |\n| GET | /deployments/{deployment_name} | Get deployment |\n| PATCH | /deployments/{deployment_name} | Update deployment |\n| POST | /deployments/{deployment_name}/transfer | Transfer deployment |\n| POST | /deployments/{deployment_name}/create_deploy_key | Create deploy key |\n| GET | /deployments/{deployment_name}/list_deploy_keys | List deploy keys |\n| POST | /deployments/{deployment_name}/delete_deploy_key | Delete deploy key |\n| POST | /deployments/{deployment_name}/create_custom_domain | Create custom domain |\n| POST | /deployments/{deployment_name}/delete_custom_domain | Delete custom domain |\n| GET | /deployments/{deployment_name}/custom_domains | List custom domains |\n\n### List_personal_access_tokens\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /list_personal_access_tokens | List personal access tokens |\n\n### Create_personal_access_token\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /create_personal_access_token | Create personal access token |\n\n### Delete_personal_access_token\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /delete_personal_access_token | Delete personal access token |\n\n### Token_details\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /token_details | Get token details |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Create a create_project?\" -> POST /teams/{team_id}/create_project\n- \"List all list_projects?\" -> GET /teams/{team_id}/list_projects\n- \"List all list_deployments?\" -> GET /projects/{project_id}/list_deployments\n- \"List all deployment?\" -> GET /projects/{project_id}/deployment\n- \"Create a delete?\" -> POST /projects/{project_id}/delete\n- \"Get project details?\" -> GET /projects/{project_id}\n- \"Create a create_deployment?\" -> POST /projects/{project_id}/create_deployment\n- \"Get deployment details?\" -> GET /deployments/{deployment_name}\n- \"Partially update a deployment?\" -> PATCH /deployments/{deployment_name}\n- \"Create a transfer?\" -> POST /deployments/{deployment_name}/transfer\n- \"List all list_deployment_classes?\" -> GET /teams/{team_id}/list_deployment_classes\n- \"List all list_deployment_regions?\" -> GET /teams/{team_id}/list_deployment_regions\n- \"Search list_deployments?\" -> GET /teams/{team_id}/list_deployments\n- \"List all list_local_deployments?\" -> GET /teams/{team_id}/list_local_deployments\n- \"Create a create_deploy_key?\" -> POST /deployments/{deployment_name}/create_deploy_key\n- \"List all list_deploy_keys?\" -> GET /deployments/{deployment_name}/list_deploy_keys\n- \"Create a delete_deploy_key?\" -> POST /deployments/{deployment_name}/delete_deploy_key\n- \"Create a create_preview_deploy_key?\" -> POST /projects/{project_id}/create_preview_deploy_key\n- \"List all list_preview_deploy_keys?\" -> GET /projects/{project_id}/list_preview_deploy_keys\n- \"Create a delete_preview_deploy_key?\" -> POST /projects/{project_id}/delete_preview_deploy_key\n- \"List all list_personal_access_tokens?\" -> GET /list_personal_access_tokens\n- \"Create a create_personal_access_token?\" -> POST /create_personal_access_token\n- \"Create a delete_personal_access_token?\" -> POST /delete_personal_access_token\n- \"List all token_details?\" -> GET /token_details\n- \"Create a create_custom_domain?\" -> POST /deployments/{deployment_name}/create_custom_domain\n- \"Create a delete_custom_domain?\" -> POST /deployments/{deployment_name}/delete_custom_domain\n- \"List all custom_domains?\" -> GET /deployments/{deployment_name}/custom_domains\n- \"List all list_members?\" -> GET /teams/{team_id}/list_members\n- \"Create a create_team?\" -> POST /teams/create_team\n- \"Create a create_access_token?\" -> POST /teams/{team_id}/create_access_token\n- \"Create a invite_team_member?\" -> POST /teams/{team_id}/invite_team_member\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Paginated endpoints accept limit/offset or cursor parameters\n- Create/update endpoints return the modified resource on success\n- Error responses include status codes and descriptions in the spec\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Convex Management API\n@base https://api.convex.dev/v1\n@version 1.0.0\n@auth Bearer bearer | Bearer bearer | Bearer bearer\n@endpoints 31\n@hint download_for_search\n@toc teams(12), projects(8), deployments(10), token_details(1)\n\n@group teams\n@endpoint POST /teams/{team_id}/create_project\n@desc Create project\n@required {team_id: int(int64) # Team ID, projectName: str}\n@optional {deploymentClass: str # When creating a deployment, the class to use for the deployment. If not provided, the default deployment class for your team will be used., deploymentRegion: any, deploymentType: any}\n@returns(200) {deploymentName: str?, deploymentUrl: str?, projectId: int(int64)}\n\n@endpoint GET /teams/{team_id}/list_projects\n@desc List projects\n@required {team_id: int(int64) # Team ID}\n@returns(200)\n\n@endgroup\n\n@group projects\n@endpoint GET /projects/{project_id}/list_deployments\n@desc List deployments\n@required {project_id: int(int64) # Project ID}\n@optional {includeLocal: bool # If true, include local deployments in the response (filtered to only show local deployments created by the requesting team member)., isDefault: bool # If true, only include default deployments. If false, only include non-default deployments., deploymentType: any # Only include deployments of the given deployment type.}\n@returns(200)\n\n@endpoint GET /projects/{project_id}/deployment\n@desc Get deployment in project by id\n@required {project_id: int(int64) # Project ID}\n@optional {reference: any # The reference of the deployment to retrieve., defaultProd: bool # If true, retrieve the default production deployment., defaultDev: bool # If true, retrieve the default dev deployment for the calling user.}\n@returns(200)\n\n@endgroup\n\n@group teams\n@endpoint GET /teams/{team_id_or_slug}/projects/{project_slug}/deployment\n@desc Get deployment in project by slug\n@required {team_id_or_slug: str # Team ID or slug, project_slug: str # Project slug}\n@optional {reference: any # The reference of the deployment to retrieve., defaultProd: bool # If true, retrieve the default production deployment., defaultDev: bool # If true, retrieve the default dev deployment for the calling user.}\n@returns(200)\n\n@endgroup\n\n@group projects\n@endpoint POST /projects/{project_id}/delete\n@desc Delete project\n@required {project_id: int(int64) # Project ID}\n@returns(200)\n\n@endpoint GET /projects/{project_id}\n@desc Get project by ID\n@required {project_id: int(int64) # Project ID}\n@returns(200) {createTime: int(int64), id: int(int64), name: str, slug: str, teamId: int(int64), teamSlug: str}\n\n@endgroup\n\n@group teams\n@endpoint GET /teams/{team_id_or_slug}/projects/{project_slug}\n@desc Get project by slug\n@required {team_id_or_slug: str # Team ID or slug, project_slug: str # Project slug}\n@returns(200) {createTime: int(int64), id: int(int64), name: str, slug: str, teamId: int(int64), teamSlug: str}\n\n@endgroup\n\n@group projects\n@endpoint POST /projects/{project_id}/create_deployment\n@desc Create deployment\n@required {project_id: int(int64) # Project ID, type: str(dev/prod/preview/custom)}\n@optional {class: str # The class to use for this deployment. If not provided, the default deployment class for your team will be used., isDefault: bool # When creating a prod deployment, whether the deployment is the default production deployment for the project (i.e. the one used by default when running `npx convex deploy`). When creating a dev deployment, whether the deployment is the default development deployment for the member that creates it (i.e. the one used by default when running `npx convex dev`). This option can’t be set on other types of deployments. If not provided, defaults to `true` when creating a dev or prod deployment without providing a reference (and defaults to `false` otherwise)., reference: str # An identifier that uniquely identifies this deployment within the project. By providing a reference, you can create multiple dev and prod deployments in the project. If you don’t provide a reference, the endpoint will create the default production deployment for the project, or the default development deployment for the member that creates it (i.e. the deployment used by default when running `npx convex deploy` or `npx convex dev` respectively). When not providing a reference, a reference will be automatically generated., region: any}\n@returns(200)\n\n@endgroup\n\n@group deployments\n@endpoint POST /deployments/{deployment_name}/delete\n@desc Delete deployment\n@required {deployment_name: any # Deployment Name}\n@returns(200)\n\n@endpoint GET /deployments/{deployment_name}\n@desc Get deployment\n@required {deployment_name: str # Deployment Name}\n@returns(200)\n\n@endpoint PATCH /deployments/{deployment_name}\n@desc Update deployment\n@required {deployment_name: str # Deployment Name}\n@optional {dashboardEditConfirmation: bool # Controls whether the dashboard requires a confirmation before allowing edits during a browser session for this deployment. If set to `null`, the setting is reset to the default behavior (true for prod deployments, false for dev and preview deployments). If set to `true` or `false`, the setting is explicitly overridden., expiresAt: int(int64) # Timestamp in milliseconds when this deployment will be deleted. Preview deployments have this set by default unless overridden. Must be at least 30 minutes in the future and cannot exceed the team's preview deployment retention days entitlement from now. Set to `null` to clear the expiration., reference: str # The reference of the deployment. When provided, must match the following rules:   - be unique across deployment references in the project   - 3 to 100 characters (included)   - only lowercase letters, numbers, \"-\"\" and \"/\"   - not follow the deployment name format [a-z]+-[a-z]+-[0-9]+ (e.g.     \"happy-capybara-123\")   - not start with \"local-\"\"   - not be one of the following reserved keywords: \"prod\", \"dev\",     \"cloud\", \"local\", \"default\", \"name\", \"new\", \"existing\",     \"deployment\", \"preview\", sendLogsToClient: bool # Whether to send function logs to the client. If set to `null`, the setting is reset to the deployment-type default (true for dev/preview, false for prod). If set to `true` or `false`, the setting is explicitly overridden.}\n@returns(200)\n\n@endpoint POST /deployments/{deployment_name}/transfer\n@desc Transfer deployment\n@required {deployment_name: str # Deployment Name, destinationProjectId: int(int64)}\n@returns(204)\n\n@endgroup\n\n@group teams\n@endpoint GET /teams/{team_id}/list_deployment_classes\n@desc List deployment classes\n@required {team_id: any # Team ID}\n@returns(200) {items: [map]}\n\n@endpoint GET /teams/{team_id}/list_deployment_regions\n@desc List deployment regions\n@required {team_id: any # Team ID}\n@returns(200) {items: [map]}\n\n@endpoint GET /teams/{team_id}/list_deployments\n@desc List deployments for team\n@required {team_id: int(int64) # Team ID}\n@optional {cursor: str # Cursor for pagination, limit: int(int64) # Max results per page (default: 100, max: 100), sortBy: str # Sort field: createTime, lastDeployTime, reference, sortOrder: str # Sort order: asc, desc, deploymentType: str # Filter by type: dev, prod, preview, custom, q: str # Search by deployment name or reference, projectId: int(int64) # Filter by project ID, creator: int(int64) # Filter by creator member ID, isDefault: bool # Filter by default deployment status}\n@returns(200) {items: [any], pagination: map{hasMore: bool, nextCursor: str?}}\n\n@endpoint GET /teams/{team_id}/list_local_deployments\n@desc List local deployments\n@required {team_id: int(int64) # Team ID}\n@returns(200) {items: [any]}\n\n@endgroup\n\n@group deployments\n@endpoint POST /deployments/{deployment_name}/create_deploy_key\n@desc Create deploy key\n@required {deployment_name: any # Deployment name, name: str # Name for the deploy key.}\n@returns(200) {deployKey: str}\n\n@endpoint GET /deployments/{deployment_name}/list_deploy_keys\n@desc List deploy keys\n@required {deployment_name: any # Deployment name}\n@returns(200)\n\n@endpoint POST /deployments/{deployment_name}/delete_deploy_key\n@desc Delete deploy key\n@required {deployment_name: any # Deployment name, id: str # The token to delete. This can be the secret value of the token or the token's unique name.}\n@returns(200)\n\n@endgroup\n\n@group projects\n@endpoint POST /projects/{project_id}/create_preview_deploy_key\n@desc Create preview deploy key\n@required {project_id: int(int64) # Project ID, name: str # Name for the preview deploy key.}\n@returns(200) {previewDeployKey: str}\n\n@endpoint GET /projects/{project_id}/list_preview_deploy_keys\n@desc List preview deploy keys\n@required {project_id: int(int64) # Project ID}\n@optional {includeManaged: bool # If true, include managed preview deploy keys (e.g., created by external integrations like Vercel) in the response. Defaults to false.}\n@returns(200) {items: [map]}\n\n@endpoint POST /projects/{project_id}/delete_preview_deploy_key\n@desc Delete preview deploy key\n@required {project_id: int(int64) # Project ID, id: str # The token to delete. This can be the secret value of the token or the token's unique name.}\n@returns(200)\n\n@endgroup\n\n@group token_details\n@endpoint GET /token_details\n@desc Get token details\n@returns(200)\n\n@endgroup\n\n@group deployments\n@endpoint POST /deployments/{deployment_name}/create_custom_domain\n@desc Create custom domain\n@required {deployment_name: any # Deployment name, domain: str # The custom domain name to delete., requestDestination: str(convexCloud/convexSite)}\n@returns(200)\n\n@endpoint POST /deployments/{deployment_name}/delete_custom_domain\n@desc Delete custom domain\n@required {deployment_name: any # Deployment name, domain: str # The custom domain name to delete., requestDestination: str(convexCloud/convexSite)}\n@returns(200)\n\n@endpoint GET /deployments/{deployment_name}/custom_domains\n@desc List custom domains\n@required {deployment_name: any # Deployment name}\n@returns(200) {domains: [map]}\n\n@endgroup\n\n@group teams\n@endpoint GET /teams/{team_id}/list_members\n@desc List team members\n@required {team_id: any # Team ID}\n@returns(200) {items: [map]}\n\n@endpoint POST /teams/create_team\n@desc Create a team\n@required {defaultRegion: str(aws-us-east-1/aws-eu-west-1), name: str}\n@returns(201) {creator: any, defaultRegion: any, id: int(int64), managedBy: any, managedByUrl: str?, name: str, referralCode: str, referredBy: any, slug: str, ssoLoginId: str?, suspended: bool} # Team created successfully\n@errors {403: Caller is not authorized to create teams}\n\n@endpoint POST /teams/{team_id}/create_access_token\n@desc Create a team access token\n@required {team_id: any}\n@returns(201) {accessToken: str, tokenType: str} # Team access token created successfully\n@errors {403: Caller is not authorized to create team access tokens}\n\n@endpoint POST /teams/{team_id}/invite_team_member\n@required {team_id: any, email: str, role: str(admin/developer)}\n@returns(200)\n\n@endgroup\n\n@end\n"}}