Sign Up

Secrets

List project secrets

GET
/secrets

Authorization

headerAuthorizationBearer <token>

Bearer project API key.

Scope: read:secrets

Query Parameters

limit?integer

Maximum number of items to return, 1–200 (default 100)

Formatint64
Range1 <= value <= 200
Default100
cursor?string

Opaque continuation token returned as next_cursor by a previous request

Response Body

The page of secrets

application/json
  1. response

GET /secrets response envelope.

next_cursor?|

The opaque continuation token, or null on the last page.

secrets*array<>

The secrets in this page.

curl -X GET 'https://example.com/secrets'
{  "next_cursor": "string",  "secrets": [    {      "allowed_domains": [        "string"      ],      "created_at": "2019-08-24T14:15:22Z",      "description": "string",      "name": "string",      "updated_at": "2019-08-24T14:15:22Z"    }  ]}

Get a secret's metadata

GET
/secrets/{name}

Authorization

headerAuthorizationBearer <token>

Bearer project API key.

Scope: read:secrets

Path Parameters

name*string

The secret name

Response Body

The secret metadata

application/json
  1. response

Secret metadata. The value is write-only.

allowed_domains*array<string>

The hosts the secret's value may be sent to. ["*"] means any host the platform has verified; an empty list means the secret is sent nowhere.

created_at*string

When the secret was created.

Formatdate-time
description?|

The user-facing description, or null when absent.

name*string

The secret name.

updated_at*string

When the secret was last updated.

Formatdate-time
curl -X GET 'https://example.com/secrets/string'
{  "allowed_domains": [    "string"  ],  "created_at": "2019-08-24T14:15:22Z",  "description": "string",  "name": "string",  "updated_at": "2019-08-24T14:15:22Z"}

Delete a secret

DELETE
/secrets/{name}

Refused while a sandbox or bucket volume still references the secret.

Authorization

headerAuthorizationBearer <token>

Bearer project API key.

Scope: delete:secrets

Path Parameters

name*string

The secret name

Response Body

Secret deleted

curl -X DELETE 'https://example.com/secrets/string'
Empty
PUT
/secrets/{name}

Values are encrypted at rest and are write-only.

Authorization

headerAuthorizationBearer <token>

Bearer project API key.

Scope: write:secrets

Path Parameters

name*string

The secret name

Header Parameters

If-None-Match?|

Set to * to create only when the secret is absent

Request Body

application/json
  1. body

A secret value and its metadata. Values are encrypted at rest and are write-only.

allowed_domains?array<string>

Required per-secret egress scope: hostnames or *. wildcards, or ["*"] for any verified host. Hostnames must be ASCII with at least two LDH labels (1..63 characters each, no leading/trailing hyphen; at most 253 characters total). IP literals and public-suffix wildcards are rejected. Entries are lowercased, one trailing dot is removed, and duplicates are removed in input order on create and update. Empty or omitted is rejected. Existing stored rows are not migrated.

description?|

An optional user-facing description.

value*string

The secret value (max 64 KiB). Write-only — never echoed back.

Response Body

The secret metadata, updated

application/json
  1. response

Secret metadata. The value is write-only.

allowed_domains*array<string>

The hosts the secret's value may be sent to. ["*"] means any host the platform has verified; an empty list means the secret is sent nowhere.

created_at*string

When the secret was created.

Formatdate-time
description?|

The user-facing description, or null when absent.

name*string

The secret name.

updated_at*string

When the secret was last updated.

Formatdate-time
curl -X PUT 'https://example.com/secrets/string' \  -H 'Content-Type: application/json' \  -d '{  "value": "string"}'
{  "allowed_domains": [    "string"  ],  "created_at": "2019-08-24T14:15:22Z",  "description": "string",  "name": "string",  "updated_at": "2019-08-24T14:15:22Z"}