---
title: "Create a secret"
method: POST
path: "/api/orgs/{org}/secrets"
tags: ["Secrets"]
---

# Create a secret

`POST /api/orgs/{org}/secrets`

Creates an AgentSecretGrant resource that registers a secret reference
with the specified permissions and grant target.

## Path parameters

- `org` string, required

## Request body

- object
  - `name` string, required — Secret name
  - `grantedTo` string — Agent or system the secret is granted to
  - `permissions` string[]
  - `data` object — Optional secret data (key-value pairs)

## Response `201`

Secret created

- ApplyResult
  - `resource` KradleResource — A Kradle (Kubernetes-style) resource object
    - `apiVersion` string, required
    - `kind` string, required — Resource kind (e.g. Repository, AgentStack)
    - `metadata` object, required
      - `name` string, required
      - `namespace` string
      - `labels` object
      - `annotations` object
      - `creationTimestamp` string, date-time
    - `spec` object — Resource spec (kind-specific fields)
    - `status` object — Resource status (set by controller)
  - `created` boolean — True if created, false if updated
  - `name` string — Resource name

## Other responses

- `400` — Bad request — invalid input or malformed JSON
- `500` — Internal server error

---

[API](https://skmtc.dev/a5c-ai/apis/kradle-api.md) · [All operations](https://skmtc.dev/a5c-ai/apis/kradle-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/a5c-ai/kradle-api/revisions/b5eadb2ecd8b/schema)
