CapyDB/ docs
ReferenceAPI

K V

Key-value stores and rate limiting - CapyDB Knight/Valkyrie ("K/V"). One store per project, in its own KV cell; Upstash-REST and RESP compatible.

GET
/v1/kv

Authorization

AuthorizationBearer <token>

Org or project-scoped API key, format capy_live_...; Clerk session tokens also accepted.

In: header

Query Parameters

organization_id?string

Scopes the listing to one organization. Required for platform-admin callers, who have no implicit organization.

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/kv"
{  "kv_stores": [    {      "id": "string",      "project_id": "string",      "organization_id": "string",      "host_id": "string",      "state": "provisioning",      "mem_max_mb": 0,      "maxmemory_mb": 0,      "maxmemory_policy": "string",      "persistence": "rdb",      "public_host": "string",      "token": "string",      "token_prefix": "string",      "last_error": "string",      "created_at": "2019-08-24T14:15:22Z",      "updated_at": "2019-08-24T14:15:22Z",      "credentials": {        "redis_host": "string",        "redis_port": 0,        "redis_url": "string",        "rest_url": "string",        "rest_token": "string",        "token_required": true      }    }  ]}
GET
/v1/projects/{projectID}/kv

Authorization

AuthorizationBearer <token>

Org or project-scoped API key, format capy_live_...; Clerk session tokens also accepted.

In: header

Path Parameters

projectID*string

Project id.

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/projects/string/kv"
{  "id": "string",  "project_id": "string",  "organization_id": "string",  "host_id": "string",  "state": "provisioning",  "mem_max_mb": 0,  "maxmemory_mb": 0,  "maxmemory_policy": "string",  "persistence": "rdb",  "public_host": "string",  "token": "string",  "token_prefix": "string",  "last_error": "string",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z",  "credentials": {    "redis_host": "string",    "redis_port": 0,    "redis_url": "string",    "rest_url": "string",    "rest_token": "string",    "token_required": true  }}
POST
/v1/projects/{projectID}/kv

Authorization

AuthorizationBearer <token>

Org or project-scoped API key, format capy_live_...; Clerk session tokens also accepted.

In: header

Path Parameters

projectID*string

Project id.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/projects/string/kv"
{  "job": {    "attempts": 0,    "claimed_at": "2019-08-24T14:15:22Z",    "claimed_by": "string",    "host_id": "string",    "instance_id": "string",    "completed_at": "2019-08-24T14:15:22Z",    "created_at": "2019-08-24T14:15:22Z",    "error": "string",    "id": "string",    "last_exit_code": 0,    "last_stderr": "string",    "last_stdout": "string",    "locked_resource": "string",    "max_attempts": 0,    "organization_id": "string",    "preview_database_id": "string",    "project_id": "string",    "result": null,    "retry_classification": "string",    "started_at": "2019-08-24T14:15:22Z",    "state": "pending",    "type": "project.apply_plan",    "updated_at": "2019-08-24T14:15:22Z"  },  "kv_store": {    "id": "string",    "project_id": "string",    "organization_id": "string",    "host_id": "string",    "state": "provisioning",    "mem_max_mb": 0,    "maxmemory_mb": 0,    "maxmemory_policy": "string",    "persistence": "rdb",    "public_host": "string",    "token": "string",    "token_prefix": "string",    "last_error": "string",    "created_at": "2019-08-24T14:15:22Z",    "updated_at": "2019-08-24T14:15:22Z",    "credentials": {      "redis_host": "string",      "redis_port": 0,      "redis_url": "string",      "rest_url": "string",      "rest_token": "string",      "token_required": true    }  }}
DELETE
/v1/projects/{projectID}/kv

Authorization

AuthorizationBearer <token>

Org or project-scoped API key, format capy_live_...; Clerk session tokens also accepted.

In: header

Path Parameters

projectID*string

Project id.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X DELETE "https://example.com/v1/projects/string/kv"
{  "job": {    "attempts": 0,    "claimed_at": "2019-08-24T14:15:22Z",    "claimed_by": "string",    "host_id": "string",    "instance_id": "string",    "completed_at": "2019-08-24T14:15:22Z",    "created_at": "2019-08-24T14:15:22Z",    "error": "string",    "id": "string",    "last_exit_code": 0,    "last_stderr": "string",    "last_stdout": "string",    "locked_resource": "string",    "max_attempts": 0,    "organization_id": "string",    "preview_database_id": "string",    "project_id": "string",    "result": null,    "retry_classification": "string",    "started_at": "2019-08-24T14:15:22Z",    "state": "pending",    "type": "project.apply_plan",    "updated_at": "2019-08-24T14:15:22Z"  }}
GET
/v1/projects/{projectID}/kv/credentials

Authorization

AuthorizationBearer <token>

Org or project-scoped API key, format capy_live_...; Clerk session tokens also accepted.

In: header

Path Parameters

projectID*string

Project id.

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/projects/string/kv/credentials"
{  "redis_host": "string",  "redis_port": 0,  "redis_url": "string",  "rest_url": "string",  "rest_token": "string",  "token_required": true}
POST
/v1/projects/{projectID}/kv/rotate-token

Authorization

AuthorizationBearer <token>

Org or project-scoped API key, format capy_live_...; Clerk session tokens also accepted.

In: header

Path Parameters

projectID*string

Project id.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/projects/string/kv/rotate-token"
{  "kv_store": {    "id": "string",    "project_id": "string",    "organization_id": "string",    "host_id": "string",    "state": "provisioning",    "mem_max_mb": 0,    "maxmemory_mb": 0,    "maxmemory_policy": "string",    "persistence": "rdb",    "public_host": "string",    "token": "string",    "token_prefix": "string",    "last_error": "string",    "created_at": "2019-08-24T14:15:22Z",    "updated_at": "2019-08-24T14:15:22Z",    "credentials": {      "redis_host": "string",      "redis_port": 0,      "redis_url": "string",      "rest_url": "string",      "rest_token": "string",      "token_required": true    }  }}
POST
/v1/projects/{projectID}/kv/flush

Authorization

AuthorizationBearer <token>

Org or project-scoped API key, format capy_live_...; Clerk session tokens also accepted.

In: header

Path Parameters

projectID*string

Project id.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/projects/string/kv/flush"
{  "job": {    "attempts": 0,    "claimed_at": "2019-08-24T14:15:22Z",    "claimed_by": "string",    "host_id": "string",    "instance_id": "string",    "completed_at": "2019-08-24T14:15:22Z",    "created_at": "2019-08-24T14:15:22Z",    "error": "string",    "id": "string",    "last_exit_code": 0,    "last_stderr": "string",    "last_stdout": "string",    "locked_resource": "string",    "max_attempts": 0,    "organization_id": "string",    "preview_database_id": "string",    "project_id": "string",    "result": null,    "retry_classification": "string",    "started_at": "2019-08-24T14:15:22Z",    "state": "pending",    "type": "project.apply_plan",    "updated_at": "2019-08-24T14:15:22Z"  }}