MechaMental
Api reference

Secrets

List Secrets

GET
/v1/orgs/{org_id}/workspaces/{workspace_id}/secrets

Path Parameters

org_id*Org Id

Organization ID

workspace_id*Workspace Id

Workspace ID

Query Parameters

secret_type?|

Filter by secret type

status?|

Filter by status

include_expired?Include Expired

Include expired secrets

Defaulttrue
environment_id?|

Filter by environment ID

namespace_id?|

Filter by namespace ID (returns namespace-scoped secrets)

limit?Limit

Maximum number of items to return (1-200)

Default50
Range1 <= value <= 200
cursor?|

Cursor for pagination (from previous response's next_cursor)

Header Parameters

authorization?string|null

Response Body

application/json

application/json

curl -X GET "https://loading/v1/orgs/string/workspaces/string/secrets"
{
  "total": 0,
  "has_more": false,
  "next_cursor": "string",
  "secrets": [
    {
      "secret_id": "string",
      "scope": "string",
      "workspace_id": "string",
      "organization_id": "string",
      "namespace_id": "string",
      "environment_id": "string",
      "name": "string",
      "secret_type": "string",
      "status": "string",
      "description": "string",
      "vault_version": 0,
      "expires_at": "string",
      "rotation_reminder_days": 0,
      "last_rotated_at": "string",
      "last_accessed_at": "string",
      "access_count": 0,
      "created_by": "string",
      "created_at": "string",
      "updated_at": "string",
      "is_expired": false,
      "needs_rotation": false
    }
  ]
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Create Secret

POST
/v1/orgs/{org_id}/workspaces/{workspace_id}/secrets

Path Parameters

org_id*Org Id

Organization ID

workspace_id*Workspace Id

Workspace ID

Header Parameters

authorization?string|null

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://loading/v1/orgs/string/workspaces/string/secrets" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "secret_type": "token",    "value": {}  }'
{
  "secret_id": "string",
  "scope": "string",
  "workspace_id": "string",
  "organization_id": "string",
  "namespace_id": "string",
  "environment_id": "string",
  "name": "string",
  "secret_type": "string",
  "status": "string",
  "description": "string",
  "vault_version": 0,
  "expires_at": "string",
  "rotation_reminder_days": 0,
  "last_rotated_at": "string",
  "last_accessed_at": "string",
  "access_count": 0,
  "created_by": "string",
  "created_at": "string",
  "updated_at": "string",
  "is_expired": false,
  "needs_rotation": false
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Get Expiring Secrets

GET
/v1/orgs/{org_id}/workspaces/{workspace_id}/secrets/expiring

Path Parameters

org_id*Org Id

Organization ID

workspace_id*Workspace Id

Workspace ID

Query Parameters

within_days?Within Days

Days until expiration

Default30
Range1 <= value <= 365
limit?Limit

Maximum number of items to return (1-200)

Default50
Range1 <= value <= 200
cursor?|

Cursor for pagination (from previous response's next_cursor)

Header Parameters

authorization?string|null

Response Body

application/json

application/json

curl -X GET "https://loading/v1/orgs/string/workspaces/string/secrets/expiring"
{
  "total": 0,
  "has_more": false,
  "next_cursor": "string",
  "secrets": [
    {
      "secret_id": "string",
      "scope": "string",
      "workspace_id": "string",
      "organization_id": "string",
      "namespace_id": "string",
      "environment_id": "string",
      "name": "string",
      "secret_type": "string",
      "status": "string",
      "description": "string",
      "vault_version": 0,
      "expires_at": "string",
      "rotation_reminder_days": 0,
      "last_rotated_at": "string",
      "last_accessed_at": "string",
      "access_count": 0,
      "created_by": "string",
      "created_at": "string",
      "updated_at": "string",
      "is_expired": false,
      "needs_rotation": false
    }
  ]
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Get Secret By Name

GET
/v1/orgs/{org_id}/workspaces/{workspace_id}/secrets/by-name/{name}

Path Parameters

org_id*Org Id

Organization ID

name*Name

Secret name

workspace_id*Workspace Id

Workspace ID

Query Parameters

include_value?Include Value

Include the actual secret value

Defaultfalse

Header Parameters

authorization?string|null

Response Body

application/json

application/json

curl -X GET "https://loading/v1/orgs/string/workspaces/string/secrets/by-name/string"
{
  "secret_id": "string",
  "scope": "string",
  "workspace_id": "string",
  "organization_id": "string",
  "namespace_id": "string",
  "environment_id": "string",
  "name": "string",
  "secret_type": "string",
  "status": "string",
  "description": "string",
  "vault_version": 0,
  "expires_at": "string",
  "rotation_reminder_days": 0,
  "last_rotated_at": "string",
  "last_accessed_at": "string",
  "access_count": 0,
  "created_by": "string",
  "created_at": "string",
  "updated_at": "string",
  "is_expired": false,
  "needs_rotation": false
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Get Secret

GET
/v1/orgs/{org_id}/workspaces/{workspace_id}/secrets/{secret_id}

Path Parameters

org_id*Org Id

Organization ID

secret_id*Secret Id

Secret ID

workspace_id*Workspace Id

Workspace ID

Query Parameters

include_value?Include Value

Include the actual secret value

Defaultfalse

Header Parameters

authorization?string|null

Response Body

application/json

application/json

curl -X GET "https://loading/v1/orgs/string/workspaces/string/secrets/string"
{
  "secret_id": "string",
  "scope": "string",
  "workspace_id": "string",
  "organization_id": "string",
  "namespace_id": "string",
  "environment_id": "string",
  "name": "string",
  "secret_type": "string",
  "status": "string",
  "description": "string",
  "vault_version": 0,
  "expires_at": "string",
  "rotation_reminder_days": 0,
  "last_rotated_at": "string",
  "last_accessed_at": "string",
  "access_count": 0,
  "created_by": "string",
  "created_at": "string",
  "updated_at": "string",
  "is_expired": false,
  "needs_rotation": false
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Update Secret Metadata

PATCH
/v1/orgs/{org_id}/workspaces/{workspace_id}/secrets/{secret_id}

Path Parameters

org_id*Org Id

Organization ID

secret_id*Secret Id

Secret ID

workspace_id*Workspace Id

Workspace ID

Header Parameters

authorization?string|null

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X PATCH "https://loading/v1/orgs/string/workspaces/string/secrets/string" \  -H "Content-Type: application/json" \  -d '{}'
{
  "secret_id": "string",
  "scope": "string",
  "workspace_id": "string",
  "organization_id": "string",
  "namespace_id": "string",
  "environment_id": "string",
  "name": "string",
  "secret_type": "string",
  "status": "string",
  "description": "string",
  "vault_version": 0,
  "expires_at": "string",
  "rotation_reminder_days": 0,
  "last_rotated_at": "string",
  "last_accessed_at": "string",
  "access_count": 0,
  "created_by": "string",
  "created_at": "string",
  "updated_at": "string",
  "is_expired": false,
  "needs_rotation": false
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Delete Secret

DELETE
/v1/orgs/{org_id}/workspaces/{workspace_id}/secrets/{secret_id}

Path Parameters

org_id*Org Id

Organization ID

secret_id*Secret Id

Secret ID

workspace_id*Workspace Id

Workspace ID

Query Parameters

permanent?Permanent

Permanently destroy (cannot be recovered)

Defaultfalse

Header Parameters

authorization?string|null

Response Body

application/json

curl -X DELETE "https://loading/v1/orgs/string/workspaces/string/secrets/string"
Empty
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Rotate Secret

POST
/v1/orgs/{org_id}/workspaces/{workspace_id}/secrets/{secret_id}/rotate

Path Parameters

org_id*Org Id

Organization ID

secret_id*Secret Id

Secret ID

workspace_id*Workspace Id

Workspace ID

Header Parameters

authorization?string|null

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://loading/v1/orgs/string/workspaces/string/secrets/string/rotate" \  -H "Content-Type: application/json" \  -d '{    "value": {}  }'
{
  "secret_id": "string",
  "scope": "string",
  "workspace_id": "string",
  "organization_id": "string",
  "namespace_id": "string",
  "environment_id": "string",
  "name": "string",
  "secret_type": "string",
  "status": "string",
  "description": "string",
  "vault_version": 0,
  "expires_at": "string",
  "rotation_reminder_days": 0,
  "last_rotated_at": "string",
  "last_accessed_at": "string",
  "access_count": 0,
  "created_by": "string",
  "created_at": "string",
  "updated_at": "string",
  "is_expired": false,
  "needs_rotation": false
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Get Secret Versions

GET
/v1/orgs/{org_id}/workspaces/{workspace_id}/secrets/{secret_id}/versions

Path Parameters

org_id*Org Id

Organization ID

secret_id*Secret Id

Secret ID

workspace_id*Workspace Id

Workspace ID

Header Parameters

authorization?string|null

Response Body

application/json

application/json

curl -X GET "https://loading/v1/orgs/string/workspaces/string/secrets/string/versions"
{
  "secret_id": "string",
  "current_version": 0,
  "versions": [
    {
      "version": 0,
      "created_at": "string",
      "value": {}
    }
  ]
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Get Secret Version

GET
/v1/orgs/{org_id}/workspaces/{workspace_id}/secrets/{secret_id}/versions/{version}

Path Parameters

org_id*Org Id

Organization ID

secret_id*Secret Id

Secret ID

version*Version

Version number

Range1 <= value
workspace_id*Workspace Id

Workspace ID

Header Parameters

authorization?string|null

Response Body

application/json

application/json

curl -X GET "https://loading/v1/orgs/string/workspaces/string/secrets/string/versions/1"
{
  "secret_id": "string",
  "scope": "string",
  "workspace_id": "string",
  "organization_id": "string",
  "namespace_id": "string",
  "environment_id": "string",
  "name": "string",
  "secret_type": "string",
  "status": "string",
  "description": "string",
  "vault_version": 0,
  "expires_at": "string",
  "rotation_reminder_days": 0,
  "last_rotated_at": "string",
  "last_accessed_at": "string",
  "access_count": 0,
  "created_by": "string",
  "created_at": "string",
  "updated_at": "string",
  "is_expired": false,
  "needs_rotation": false,
  "value": {}
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}

Get Secret Count

GET
/v1/orgs/{org_id}/workspaces/{workspace_id}/secrets/count

Path Parameters

org_id*Org Id

Organization ID

workspace_id*Workspace Id

Workspace ID

Header Parameters

authorization?string|null

Response Body

application/json

application/json

curl -X GET "https://loading/v1/orgs/string/workspaces/string/secrets/count"
{}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string",
      "input": null,
      "ctx": {}
    }
  ]
}