infisical-api — скилл для Claude Code: работа с REST API Infisical
Скилл учит агента дёргать REST API Infisical: секреты, проекты, окружения, машинные идентичности. Пригодится, когда нужно править секреты из кода, а не руками в вебе.
npx skills add Infisical/ai-skills --skill infisical-api -a claude-codeЧто делает infisical-api
Скилл описывает, как агенту работать с REST API Infisical. Внутри — справочники по аутентификации, эндпоинтам секретов, проектам и идентичностям, пагинации и лимитам. Агент получает готовые curl-примеры: логин через Universal Auth, список секретов, создание, чтение, обновление и удаление.
Главное правило, которое скилл вбивает агенту в голову: сначала аутентификация по машинной идентичности, потом всё остальное. Токен живёт expiresIn секунд, для долгих операций нужна логика обновления. Секреты — только через /api/v4/secrets, старые версии v1/v2/v3 устарели, как и /api/v1/workspace. Регион выбирается доменом: us.infisical.com или eu.infisical.com, для self-hosted — свой.
Учтите: /api/v4/secrets не поддерживает пагинацию, offset и limit он игнорирует и отдаёт всё по указанному пути. Сужать выборку придётся через secretPath, recursive, tagSlugs или metadataFilter. Лимиты действуют и на self-hosted: по умолчанию 60 чтений в минуту, 200 записей, 60 операций с секретами и 60 аутентификаций на IP, админ может их поменять. При 429 скилл велит смотреть на заголовок retry-after — там секунды, а не метка времени. Для массовых правок лучше батч, а не цикл по одному секрету.
Какие задачи решает
- получить Bearer-токен через Universal Auth и не гадать с форматом запроса
- создать, обновить или удалить секрет из скрипта, а не через веб-интерфейс
- выгрузить все секреты проекта с учётом вложенных папок
- разобраться, почему список секретов игнорирует offset и limit
- пережить 429 и правильно прочитать retry-after
Примеры запросов агенту
- залогинься в Infisical через Universal Auth и покажи токен
- создай секрет MY_SECRET в окружении dev проекта PROJECT_ID
- выведи все секреты проекта рекурсивно, включая подпапки
Как установить infisical-api
1Через Skills CLI (Vercel)
npx skills add Infisical/ai-skills --skill infisical-api -a claude-code2Вручную: положить файлы
~/.claude/skills/infisical-api/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/infisical-api/
1Через Skills CLI (Vercel)
npx skills add Infisical/ai-skills --skill infisical-api -a codex2Вручную: положить файлы
.agents/skills/infisical-api/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add Infisical/ai-skills --skill infisical-api -a cursor2Вручную: положить файлы
.cursor/skills/infisical-api/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install Infisical/ai-skills infisical-api2Вручную: положить файлы
.github/skills/infisical-api/SKILL.md1Через Skills CLI (Vercel)
npx skills add Infisical/ai-skills --skill infisical-api -a gemini-cli2Командой платформы
gemini skills install https://github.com/Infisical/ai-skills --path skills/infisical-apiВручную: положить файлы
.devin/skills/infisical-api/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add Infisical/ai-skills --skill infisical-api -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о infisical-api
Как установить infisical-api в Claude?
Выполните npx skills add Infisical/ai-skills --skill infisical-api -a claude-code. Скилл окажется в ~/.claude/skills/infisical-api/SKILL.md.
Что делает infisical-api?
Даёт агенту инструкции по REST API Infisical: аутентификация машинной идентичности, CRUD секретов, проекты, окружения, идентичности, пагинация и лимиты.
Подходит ли скилл для работы с CLI или SDK Infisical?
Нет, он только про REST API. Для CLI, SDK и интеграций с платформами есть отдельный скилл infisical-setup, для KMS — infisical-kms, для сертификатов — infisical-pki.
Исходный текст
SKILL.md · MIT
---
name: infisical-api
description: Interact with the Infisical REST API to manage secrets, projects, environments, machine identities, and more. Supports secret CRUD operations, machine identity authentication, pagination, and rate limiting on cloud deployments. Not for the CLI/SDKs (infisical-setup), KMS crypto endpoints (infisical-kms), certificate endpoints (infisical-pki), or human SSO login (infisical-sso).
triggers:
- infisical API
- REST endpoint
- API authentication
- bearer token
- list secrets API
- create secret API
- get secret
- update secret
- delete secret
- machine identity
- universal auth
- project endpoints
- secret operations
---
# Infisical API Skill
This skill provides guidance for working with the Infisical REST API. Use it when you need to:
- Authenticate via machine identity Universal Auth
- List, get, create, update, or delete secrets
- Manage projects, environments, and members
- Work with machine identities and identity auth methods
- Handle pagination and understand rate limits
- Choose the correct API version and region
## Not this skill
| If the user wants... | Use |
|----------------------|-----|
| The CLI, an SDK, or a platform integration | `infisical-setup` |
| Terraform/HCL | `infisical-terraform` |
| **Human** login via SAML/OIDC/LDAP | `infisical-sso` |
| Roles, permissions, and approval policies | `infisical-access-control` |
| The KMS encrypt/decrypt/sign endpoints | `infisical-kms` |
| Certificate endpoints | `infisical-pki` |
| Secret sync / rotation / App Connection endpoints | the matching product skill |
This skill covers the core secrets, projects, and identities API. Product-specific endpoints are
documented in their own skills, where the surrounding concepts live.
## Guiding Principles
1. **Always authenticate via machine identity Universal Auth first** — use the Universal Auth login endpoint to obtain a Bearer token before making other API calls
2. **Use /api/v4/secrets for secret operations** — v1/v2/v3 secret endpoints are deprecated
3. **Use /api/v1/projects, not /api/v1/workspace** — workspace endpoints are deprecated
4. **`/api/v4/secrets` is not paginated** — it returns every secret at the requested path in one response and ignores `offset`/`limit`. Scope results with `secretPath`, `recursive`, `tagSlugs`, or `metadataFilter` instead. Pagination exists on other collection endpoints (identities, memberships, certificates), which return `{ <resource>: [...], totalCount: n }`
5. **Region selection** — US region: us.infisical.com, EU region: eu.infisical.com
6. **Service tokens are deprecated** — use machine identities instead
7. **Rate limits apply to self-hosted too** — they are not cloud-only. Instance defaults are 60 reads/min, 200 writes/min, 60 secrets-ops/min, 60 auth/min per IP; self-hosted admins can change them, and cloud limits vary by plan. On a 429, honor the `retry-after` header (seconds remaining, not a timestamp)
8. **Batch over loop** — use `POST/PATCH/DELETE /api/v4/secrets/batch` rather than per-secret calls; batch delete takes `secrets: [{ secretKey }]`
## Reference Files
- [Authentication](./references/authentication.md) — Universal Auth login, auth endpoints, token patterns, deprecated service tokens
- [Secrets Endpoints](./references/secrets-endpoints.md) — CRUD operations on secrets using /api/v4/secrets
- [Projects and Identities](./references/projects-and-identities.md) — project management, environments, members, identities, groups, folders
- [Pagination and Rate Limits](./references/pagination-and-rate-limits.md) — offset/limit pagination, cloud rate limits, content-type requirements
## Quick Start
### 1. Authenticate with Universal Auth
```bash
curl -X POST https://us.infisical.com/api/v1/auth/universal-auth/login \
-H "Content-Type: application/json" \
-d '{
"clientId": "YOUR_CLIENT_ID",
"clientSecret": "YOUR_CLIENT_SECRET"
}'
```
Response:
```json
{
"accessToken": "eyJ...",
"expiresIn": 3600,
"accessTokenMaxTTL": 86400,
"tokenType": "Bearer"
}
```
### 2. Use the Token for Subsequent Requests
```bash
curl -X GET 'https://us.infisical.com/api/v4/secrets?projectId=PROJECT_ID&environment=dev' \
-H "Authorization: Bearer eyJ..."
```
## Common Workflows
### List All Secrets in a Project
Returns every secret at the path — there is no pagination on this endpoint.
```bash
curl -X GET 'https://us.infisical.com/api/v4/secrets?projectId=PROJECT_ID&environment=dev' \
-H "Authorization: Bearer TOKEN"
```
Add `recursive=true` to include subfolders:
```bash
curl -X GET 'https://us.infisical.com/api/v4/secrets?projectId=PROJECT_ID&environment=dev&secretPath=/&recursive=true' \
-H "Authorization: Bearer TOKEN"
```
Response is `{ "secrets": [...], "imports": [...] }` — no `total`, `offset`, or `limit` keys.
### Create a New Secret
```bash
curl -X POST 'https://us.infisical.com/api/v4/secrets/MY_SECRET' \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{
"projectId": "PROJECT_ID",
"environment": "dev",
"secretPath": "/",
"secretValue": "super-secret-value",
"type": "shared"
}'
```
### Get a Specific Secret
```bash
curl -X GET 'https://us.infisical.com/api/v4/secrets/MY_SECRET?projectId=PROJECT_ID&environment=dev&secretPath=/' \
-H "Authorization: Bearer TOKEN"
```
### Update a Secret
```bash
curl -X PATCH 'https://us.infisical.com/api/v4/secrets/MY_SECRET' \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{
"projectId": "PROJECT_ID",
"environment": "dev",
"secretPath": "/",
"secretValue": "new-value"
}'
```
### Delete a Secret
```bash
curl -X DELETE 'https://us.infisical.com/api/v4/secrets/MY_SECRET?projectId=PROJECT_ID&environment=dev&secretPath=/' \
-H "Authorization: Bearer TOKEN"
```
## Important Notes
- Include `Content-Type: application/json` on any request that carries a JSON body
- Tokens expire after `expiresIn` seconds; implement refresh logic for long-running operations
- For self-hosted deployments, replace `us.infisical.com` with your custom domain
- Secret operations support all 13 machine identity auth methods (Universal, Token, Kubernetes, GCP, AliCloud, AWS, Azure, TLS Cert, OCI, OIDC, JWT, LDAP, SPIFFE)
- `viewSecretValue` defaults to `true`; set it to `false` when you only need key names
- The `recursive` parameter on list secrets includes secrets in all subdirectories
- Beyond CRUD, `/api/v4/secrets` also exposes `/move`, `/duplicate`, `/batch` (POST, PATCH, DELETE), `/id/:secretId`, and secret-reference tree endpoints
© Infisical · MIT · Infisical/ai-skills