Skip to content

Grizzly Key Management Platform 0.1.0

Grizzly Key Management Platform


Assets


GET /assets/{id}

Input parameters

Parameter In Type Default Nullable Description
id path string No

DELETE /assets/{id}

Input parameters

Parameter In Type Default Nullable Description
id path string No

PATCH /assets/{id}

Input parameters

Parameter In Type Default Nullable Description
id path string No

Request body

{
    "data": {},
    "parents": [
        "string"
    ],
    "parentMode": "string",
    "context": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true,
            "description": "Asset metadata to set"
        },
        "parents": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "Parent ids to apply"
        },
        "parentMode": {
            "type": "string",
            "description": "How to apply parents: 'replace' (default) | 'add' | 'remove'"
        },
        "context": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true,
            "description": "Activity context"
        }
    }
}

GET /assets/{id}/family

Input parameters

Parameter In Type Default Nullable Description
accountId query string No Filter family members to those with activity from this account
id path string No Asset ID
keyringId query string No Filter family members to those with activity using this keyring
maxDepth query integer No Maximum depth to traverse (default: 5, max: 10)

Responses

{
    "asset": {
        "id": "string",
        "createdAt": "string",
        "data": {},
        "parents": [
            {
                "assetId": "string",
                "createdAt": "string"
            }
        ],
        "activities": [
            {}
        ]
    },
    "ancestors": [
        {
            "id": "string",
            "createdAt": "string",
            "data": {},
            "parentCount": 0,
            "activityCount": 0,
            "hierarchyLevel": 0,
            "parents": [
                {
                    "assetId": "string",
                    "createdAt": "string"
                }
            ]
        }
    ],
    "descendants": [
        {
            "id": "string",
            "createdAt": "string",
            "data": {},
            "parentCount": 0,
            "activityCount": 0,
            "hierarchyLevel": 0,
            "parents": [
                {
                    "assetId": "string",
                    "createdAt": "string"
                }
            ]
        }
    ],
    "summary": {
        "totalAncestors": 0,
        "totalDescendants": 0,
        "totalFamily": 0,
        "maxAncestorDepth": 0,
        "maxDescendantDepth": 0,
        "hasCycles": true
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "asset": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string",
                    "description": "Asset ID"
                },
                "createdAt": {
                    "type": "string",
                    "description": "Created timestamp"
                },
                "data": {
                    "type": "object",
                    "properties": {},
                    "required": [],
                    "additionalProperties": true,
                    "description": "Asset data"
                },
                "parents": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "assetId": {
                                "type": "string"
                            },
                            "createdAt": {
                                "type": "string"
                            }
                        }
                    }
                },
                "activities": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {}
                    }
                }
            }
        },
        "ancestors": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "description": "Asset ID"
                    },
                    "createdAt": {
                        "type": "string",
                        "description": "Created timestamp"
                    },
                    "data": {
                        "type": "object",
                        "properties": {},
                        "required": [],
                        "additionalProperties": true,
                        "description": "Asset data"
                    },
                    "parentCount": {
                        "type": "integer",
                        "description": "Number of parent assets"
                    },
                    "activityCount": {
                        "type": "integer",
                        "description": "Number of activities"
                    },
                    "hierarchyLevel": {
                        "type": "integer",
                        "description": "Depth level: -1=parent, -2=grandparent, etc."
                    },
                    "parents": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "assetId": {
                                    "type": "string",
                                    "description": "Parent asset ID"
                                },
                                "createdAt": {
                                    "type": "string",
                                    "description": "When relationship was created"
                                }
                            }
                        },
                        "description": "Parent relationships for graph edges"
                    }
                }
            }
        },
        "descendants": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "description": "Asset ID"
                    },
                    "createdAt": {
                        "type": "string",
                        "description": "Created timestamp"
                    },
                    "data": {
                        "type": "object",
                        "properties": {},
                        "required": [],
                        "additionalProperties": true,
                        "description": "Asset data"
                    },
                    "parentCount": {
                        "type": "integer",
                        "description": "Number of parent assets"
                    },
                    "activityCount": {
                        "type": "integer",
                        "description": "Number of activities"
                    },
                    "hierarchyLevel": {
                        "type": "integer",
                        "description": "Depth level: 1=child, 2=grandchild, etc."
                    },
                    "parents": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "assetId": {
                                    "type": "string",
                                    "description": "Parent asset ID"
                                },
                                "createdAt": {
                                    "type": "string",
                                    "description": "When relationship was created"
                                }
                            }
                        },
                        "description": "Parent relationships for graph edges"
                    }
                }
            }
        },
        "summary": {
            "type": "object",
            "properties": {
                "totalAncestors": {
                    "type": "integer",
                    "description": "Total number of ancestors"
                },
                "totalDescendants": {
                    "type": "integer",
                    "description": "Total number of descendants"
                },
                "totalFamily": {
                    "type": "integer",
                    "description": "Total family size (including main asset)"
                },
                "maxAncestorDepth": {
                    "type": "integer",
                    "description": "Maximum depth of ancestor tree"
                },
                "maxDescendantDepth": {
                    "type": "integer",
                    "description": "Maximum depth of descendant tree"
                },
                "hasCycles": {
                    "type": "boolean",
                    "description": "True if circular references were detected"
                }
            },
            "description": "Family tree metadata"
        }
    }
}

GET /assets/{id}/activities

Input parameters

Parameter In Type Default Nullable Description
cursor query string No Pagination cursor
id path string No Asset ID
limit query integer No Items per page

Responses

{
    "data": [
        {
            "id": "string",
            "assetId": "string",
            "action": "string",
            "actionValid": true,
            "createdAt": "string",
            "context": {},
            "data": {}
        }
    ],
    "pagination": {
        "limit": 10.12,
        "count": 10.12,
        "hasMore": true,
        "nextCursor": "string"
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "assetId": {
                        "type": "string"
                    },
                    "action": {
                        "type": "string"
                    },
                    "actionValid": {
                        "type": "boolean"
                    },
                    "createdAt": {
                        "type": "string"
                    },
                    "context": {
                        "type": "object",
                        "properties": {},
                        "required": [],
                        "additionalProperties": true
                    },
                    "data": {
                        "type": "object",
                        "properties": {},
                        "required": [],
                        "additionalProperties": true
                    }
                }
            }
        },
        "pagination": {
            "type": "object",
            "properties": {
                "limit": {
                    "type": "number"
                },
                "count": {
                    "type": "number"
                },
                "hasMore": {
                    "type": "boolean"
                },
                "nextCursor": {
                    "type": "string"
                }
            },
            "required": [
                "limit",
                "count",
                "hasMore"
            ],
            "additionalProperties": true
        }
    }
}

POST /assets/search

Input parameters

Parameter In Type Default Nullable Description
cursor query string No Pagination cursor
limit query integer No Items per page

Request body

{
    "apikeyId": "string",
    "accountId": "string",
    "keyringId": "string",
    "parents": [
        "string"
    ],
    "everParentedBy": "string",
    "start": 0,
    "end": 0,
    "data": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "apikeyId": {
            "type": "string",
            "description": "The API Key ID"
        },
        "accountId": {
            "type": "string",
            "description": "The Account ID ID"
        },
        "keyringId": {
            "type": "string",
            "description": "The KeyRing ID"
        },
        "parents": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "CURRENT state: assets whose parent set right now contains any of these ids (reads asset_parents). See \"everParentedBy\" for the HISTORY equivalent — the two look like a cardinality convenience but read different tables."
        },
        "everParentedBy": {
            "type": "string",
            "description": "HISTORY, not state: assets that were EVER attached to or detached from this parent id, including edges that no longer exist (reads asset_activity.context.parentId). An asset removed from a parent's set appears here but not in \"parents\"."
        },
        "start": {
            "type": "integer",
            "description": "The start time"
        },
        "end": {
            "type": "integer",
            "description": "The end time"
        },
        "data": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        }
    }
}

Responses

{
    "data": [
        {
            "id": "string",
            "createdAt": "string",
            "data": {}
        }
    ],
    "pagination": {
        "limit": 10.12,
        "count": 10.12,
        "hasMore": true,
        "nextCursor": "string"
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string",
                        "description": "Asset ID"
                    },
                    "createdAt": {
                        "type": "string",
                        "description": "Created Timestamp"
                    },
                    "data": {
                        "type": "object",
                        "properties": {},
                        "required": [],
                        "additionalProperties": true,
                        "description": "Data stored on the Asset"
                    }
                }
            }
        },
        "pagination": {
            "type": "object",
            "properties": {
                "limit": {
                    "type": "number"
                },
                "count": {
                    "type": "number"
                },
                "hasMore": {
                    "type": "boolean"
                },
                "nextCursor": {
                    "type": "string"
                }
            },
            "required": [
                "limit",
                "count",
                "hasMore"
            ],
            "additionalProperties": true
        }
    }
}

POST /dashboard/assets/search

Search assets

Description

Search for assets with filters and pagination

Input parameters

Parameter In Type Default Nullable Description
cursor query string No Pagination cursor
limit query integer No Items per page

Request body

{
    "apikeyId": "string",
    "accountId": "string",
    "keyringId": "string",
    "parents": [
        "string"
    ],
    "everParentedBy": "string",
    "start": 0,
    "end": 0,
    "data": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "apikeyId": {
            "type": "string",
            "description": "The API Key ID"
        },
        "accountId": {
            "type": "string",
            "description": "The Account ID ID"
        },
        "keyringId": {
            "type": "string",
            "description": "The KeyRing ID"
        },
        "parents": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "CURRENT state: assets whose parent set right now contains any of these ids. See \"everParentedBy\" for the HISTORY equivalent — the two look like a cardinality convenience but read different tables."
        },
        "everParentedBy": {
            "type": "string",
            "description": "HISTORY, not state: assets that were EVER attached to or detached from this parent id, including edges that no longer exist. An asset removed from a parent's set appears here but not in \"parents\"."
        },
        "start": {
            "type": "integer",
            "description": "The start time"
        },
        "end": {
            "type": "integer",
            "description": "The end time"
        },
        "data": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        }
    }
}

Responses

{
    "data": [
        {}
    ],
    "pagination": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {},
                "additionalProperties": true
            }
        },
        "pagination": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    },
    "additionalProperties": true
}

GET /dashboard/assets/{id}

Get asset

Description

Returns an asset by ID with parents and activities

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

{
    "id": "string",
    "createdAt": "string",
    "data": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        },
        "createdAt": {
            "type": "string"
        },
        "data": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    },
    "additionalProperties": true
}

GET /dashboard/assets/{id}/family

Get asset family

Description

Returns the complete family tree of an asset including ancestors and descendants

Input parameters

Parameter In Type Default Nullable Description
accountId query string No Filter family members to those with activity from this account
id path string No
keyringId query string No Filter family members to those with activity using this keyring
maxDepth query number No Maximum depth to traverse (default: 5)

Responses

{
    "asset": {},
    "ancestors": [
        {}
    ],
    "descendants": [
        {}
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "asset": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "ancestors": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {},
                "additionalProperties": true
            }
        },
        "descendants": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {},
                "additionalProperties": true
            }
        }
    },
    "additionalProperties": true
}

GET /dashboard/assets/{id}/anchors

Get asset signing anchors

Description

Returns an asset's append-only signing provenance anchors

Input parameters

Parameter In Type Default Nullable Description
cursor query string No Pagination cursor
id path string No
limit query integer No Items per page

Responses

{
    "data": [
        {}
    ],
    "pagination": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {},
                "additionalProperties": true
            }
        },
        "pagination": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    },
    "additionalProperties": true
}

GET /dashboard/assets/{id}/activities

Get asset activities

Description

Returns an asset's activity trail (works for deleted assets — retained audit history)

Input parameters

Parameter In Type Default Nullable Description
cursor query string No Pagination cursor
id path string No
limit query integer No Items per page

Responses

{
    "data": [
        {}
    ],
    "pagination": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {},
                "additionalProperties": true
            }
        },
        "pagination": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    },
    "additionalProperties": true
}

KeyRings


GET /ks/hash/{hash}

Input parameters

Parameter In Type Default Nullable Description
hash path string No

Responses

{
    "ringId": "string",
    "keyId": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "ringId": {
            "type": "string"
        },
        "keyId": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

GET /ks/assets/{assetId}/anchors

Input parameters

Parameter In Type Default Nullable Description
assetId path string No
cursor query string No Cursor for pagination
limit query number No Maximum number of anchors to return (default: 100, max: 10000)

Responses

{
    "data": [
        {
            "id": "string",
            "assetId": "string",
            "ringId": "string",
            "signedAssetHash": "string",
            "signKeyId": "string",
            "rootSignKeyId": "string",
            "ts": 10.12,
            "createdAt": 10.12
        }
    ],
    "pagination": {
        "limit": 10.12,
        "count": 10.12,
        "hasMore": true,
        "nextCursor": "string",
        "totalCount": 10.12
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "assetId": {
                        "type": "string"
                    },
                    "ringId": {
                        "type": "string"
                    },
                    "signedAssetHash": {
                        "type": "string"
                    },
                    "signKeyId": {
                        "type": "string"
                    },
                    "rootSignKeyId": {
                        "type": "string"
                    },
                    "ts": {
                        "type": "number"
                    },
                    "createdAt": {
                        "type": "number"
                    }
                }
            }
        },
        "pagination": {
            "type": "object",
            "properties": {
                "limit": {
                    "type": "number"
                },
                "count": {
                    "type": "number"
                },
                "hasMore": {
                    "type": "boolean"
                },
                "nextCursor": {
                    "type": "string"
                },
                "totalCount": {
                    "type": "number"
                }
            },
            "required": [
                "limit",
                "count",
                "hasMore"
            ],
            "additionalProperties": true
        }
    }
}

GET /ks/header/{header}

Input parameters

Parameter In Type Default Nullable Description
header path string No

Responses

{
    "valid": true,
    "version": 0,
    "hasSignedAsset": true,
    "hash": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "valid": {
            "type": "boolean"
        },
        "version": {
            "type": "integer"
        },
        "hasSignedAsset": {
            "type": "boolean"
        },
        "hash": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

POST /ks/decrypt

Request body

{
    "hash": "string",
    "header": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "hash": {
            "type": "string"
        },
        "header": {
            "type": "string"
        }
    }
}

Responses

{
    "ringId": "string",
    "ringname": "string",
    "key": {
        "type": "aes256",
        "id": "string",
        "props": {},
        "keyData": {
            "encrypted": {
                "key": {
                    "value": "string",
                    "encoding": null
                }
            },
            "iv": "string"
        }
    },
    "asset": {
        "valid": true,
        "id": "string",
        "message": "string",
        "data": {}
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "ringId": {
            "type": "string",
            "description": "The KeyRing ID"
        },
        "ringname": {
            "type": "string",
            "description": "The KeyRing name"
        },
        "key": {
            "$ref": "#/components/schemas/ks.key"
        },
        "asset": {
            "$ref": "#/components/schemas/ks.signedasset"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

{
    "ringId": "string",
    "ringname": "string",
    "key": {
        "type": "aes256",
        "id": "string",
        "props": {},
        "keyData": {
            "encrypted": {
                "key": {
                    "value": "string",
                    "encoding": null
                }
            },
            "iv": "string"
        }
    },
    "asset": {
        "valid": true,
        "id": "string",
        "message": "string",
        "data": {}
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "ringId": {
            "type": "string",
            "description": "The KeyRing ID"
        },
        "ringname": {
            "type": "string",
            "description": "The KeyRing name"
        },
        "key": {
            "$ref": "#/components/schemas/ks.key"
        },
        "asset": {
            "$ref": "#/components/schemas/ks.signedasset"
        }
    }
}

POST /ks/encrypt

Request body

{
    "ringname": "string",
    "asset": {
        "parents": [
            "string"
        ],
        "assetId": "string",
        "data": {}
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "ringname": {
            "type": "string",
            "description": "The Keyring name"
        },
        "asset": {
            "type": "object",
            "properties": {
                "parents": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Optional. Assign Assets as Parents"
                },
                "assetId": {
                    "type": "string",
                    "description": "If provided, this is the Asset that will be updated. Pass this along for updating existing Assets."
                },
                "data": {
                    "type": "object",
                    "properties": {},
                    "required": [],
                    "additionalProperties": true
                }
            },
            "required": [],
            "additionalProperties": true,
            "description": "The Asset data"
        }
    },
    "required": [
        "ringname"
    ]
}

Responses

{
    "key": {
        "type": "aes256",
        "id": "string",
        "props": {},
        "keyData": {
            "encrypted": {
                "key": {
                    "value": "string",
                    "encoding": null
                }
            },
            "iv": "string"
        }
    },
    "ringId": "string",
    "hash": "string",
    "header": "string",
    "asset": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "key": {
            "$ref": "#/components/schemas/ks.key",
            "description": "The Key to use for encryption"
        },
        "ringId": {
            "type": "string",
            "description": "The KeyRing ID"
        },
        "hash": {
            "type": "string",
            "description": "The unique hash"
        },
        "header": {
            "type": "string",
            "description": "The full header"
        },
        "asset": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true,
            "description": "Asset information if one was created"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

POST /ks/rotate

Request body

{
    "ringname": "string",
    "algo": "aes256"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "ringname": {
            "type": "string",
            "description": "The Keyring name"
        },
        "algo": {
            "type": "string",
            "enum": [
                "aes256"
            ],
            "description": "The Algorithm to use"
        }
    },
    "required": [
        "ringname"
    ]
}

Responses

{
    "key": {
        "type": "aes256",
        "id": "string",
        "props": {},
        "keyData": {
            "encrypted": {
                "key": {
                    "value": "string",
                    "encoding": null
                }
            },
            "iv": "string"
        }
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "key": {
            "$ref": "#/components/schemas/ks.key"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

POST /ks/keyrings

Request body

{
    "name": "string",
    "algo": "aes256",
    "publicKey": "string",
    "props": {},
    "keyProps": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "name": {
            "type": "string",
            "description": "The KeyRing name"
        },
        "algo": {
            "type": "string",
            "enum": [
                "aes256"
            ],
            "description": "The Algorithm"
        },
        "publicKey": {
            "type": "string",
            "description": "The Public Key"
        },
        "props": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "keyProps": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        }
    },
    "required": [
        "name"
    ]
}

Responses

{
    "ring": {
        "id": "string",
        "name": "string",
        "displayName": "string",
        "activeKey": "string",
        "activeAlgorithm": null,
        "createdAt": "string",
        "updatedAt": "string",
        "props": {},
        "publicKey": "string"
    },
    "key": {
        "type": "aes256",
        "id": "string",
        "props": {},
        "keyData": {
            "encrypted": {
                "key": {
                    "value": "string",
                    "encoding": null
                }
            },
            "iv": "string"
        }
    },
    "privateKey": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "ring": {
            "$ref": "#/components/schemas/ks.keyring",
            "description": "KeyRing details"
        },
        "key": {
            "$ref": "#/components/schemas/ks.key",
            "description": "The currently Active Key"
        },
        "privateKey": {
            "type": "string",
            "description": "A base64 encoded Private Key. This will only be returned if a Public Key was not provided"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

GET /ks/keyrings

Input parameters

Parameter In Type Default Nullable Description
cursor query string No Cursor for pagination
limit query number No Maximum number of keyrings to return (default: 100, max: 10000)
sortBy query string No Column to sort by: name or createdAt (default: createdAt)
sortOrder query string No Sort direction: asc or desc (default: asc)

Responses

{
    "data": [
        {
            "id": "string",
            "name": "string",
            "displayName": "string",
            "activeKey": "string",
            "activeAlgorithm": null,
            "createdAt": "string",
            "updatedAt": "string",
            "props": {},
            "publicKey": "string"
        }
    ],
    "pagination": {
        "limit": 10.12,
        "count": 10.12,
        "hasMore": true,
        "nextCursor": "string"
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "$ref": "#/components/schemas/ks.keyring"
            }
        },
        "pagination": {
            "type": "object",
            "properties": {
                "limit": {
                    "type": "number"
                },
                "count": {
                    "type": "number"
                },
                "hasMore": {
                    "type": "boolean"
                },
                "nextCursor": {
                    "type": "string"
                }
            },
            "required": [
                "limit",
                "count",
                "hasMore"
            ],
            "additionalProperties": true
        }
    }
}

GET /ks/keyrings/{ringname}

Input parameters

Parameter In Type Default Nullable Description
id query string No If set to 'true', the provided KeyRing name will be treated as the KeyRing ID
ringname path string No The KeyRing name

Responses

{
    "ring": {
        "id": "string",
        "name": "string",
        "displayName": "string",
        "activeKey": "string",
        "activeAlgorithm": null,
        "createdAt": "string",
        "updatedAt": "string",
        "props": {},
        "publicKey": "string"
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "ring": {
            "$ref": "#/components/schemas/ks.keyring"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

GET /ks/config

Input parameters

Parameter In Type Default Nullable Description
ringname query string No The KeyRing name

Responses

{
    "config": {
        "props": {},
        "key": {
            "props": {}
        },
        "algos": {
            "aes256": {
                "maxEncryptCount": 0
            }
        },
        "signing": {
            "mode": null,
            "required": true
        }
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "config": {
            "$ref": "#/components/schemas/ks.keyringconfig"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

PUT /ks/config

Request body

{
    "ringname": "string",
    "config": {
        "props": {},
        "key": {
            "props": {}
        },
        "algos": {
            "aes256": {
                "maxEncryptCount": 0
            }
        },
        "signing": {
            "mode": null,
            "required": true
        }
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "ringname": {
            "type": "string",
            "description": "The KeyRing name"
        },
        "config": {
            "$ref": "#/components/schemas/ks.keyringconfig"
        }
    },
    "required": [
        "ringname",
        "config"
    ]
}

Responses

{
    "config": {
        "props": {},
        "key": {
            "props": {}
        },
        "algos": {
            "aes256": {
                "maxEncryptCount": 0
            }
        },
        "signing": {
            "mode": null,
            "required": true
        }
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "config": {
            "$ref": "#/components/schemas/ks.keyringconfig"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

DELETE /ks/keyrings/{name}

Input parameters

Parameter In Type Default Nullable Description
name path string No The KeyRing name

Responses

{
    "name": "string",
    "id": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        },
        "id": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

GET /ks/keyrings/{ringname}/keys

Input parameters

Parameter In Type Default Nullable Description
cursor query string No Cursor for pagination
id query string No If set to 'true' will treat the ringname as the KeyRing ID
limit query number No Maximum number of keys to return (default: 100, max: 10000)
ringname path string No The KeyRing name

Responses

{
    "data": [
        {
            "type": null,
            "props": {},
            "id": "string"
        }
    ],
    "pagination": {
        "limit": 10.12,
        "count": 10.12,
        "hasMore": true,
        "nextCursor": "string",
        "totalCount": 10.12
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "type": {
                        "enum": [
                            "aes256"
                        ]
                    },
                    "props": {
                        "type": "object",
                        "properties": {},
                        "required": [],
                        "additionalProperties": true
                    },
                    "id": {
                        "type": "string"
                    }
                }
            }
        },
        "pagination": {
            "type": "object",
            "properties": {
                "limit": {
                    "type": "number"
                },
                "count": {
                    "type": "number"
                },
                "hasMore": {
                    "type": "boolean"
                },
                "nextCursor": {
                    "type": "string"
                },
                "totalCount": {
                    "type": "number"
                }
            },
            "required": [
                "limit",
                "count",
                "hasMore"
            ],
            "additionalProperties": true
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

GET /ks/keyrings/{ringname}/keys/{keyId}

Input parameters

Parameter In Type Default Nullable Description
id query string No If set to 'true', the provided KeyRing name will be treated as the KeyRing ID
keyId path string No The Key ID
ringname path string No The KeyRing name

Responses

{
    "type": "aes256",
    "id": "string",
    "props": {},
    "keyData": {
        "encrypted": {
            "key": {
                "value": "string",
                "encoding": null
            }
        },
        "iv": "string"
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "type": {
            "$ref": "#/components/schemas/ks.algorithm",
            "description": "The Algorithm"
        },
        "id": {
            "type": "string",
            "description": "The Key ID"
        },
        "props": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true,
            "description": "Any unique data stored on the Key"
        },
        "keyData": {
            "$ref": "#/components/schemas/ks.keydataencrypted",
            "description": "The encrypted Key Data"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

Endpoints


GET /auth/sso/{id}/login

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses


GET /auth/sso/{id}/callback

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses


POST /auth/sso/{id}/callback

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses


GET /auth/sso/{id}/metadata

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses


GET /dashboard/sso/{id}/login

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses


GET /dashboard/sso/{id}/metadata

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

Users


POST /auth/validate

Request body

{
    "apikey": "string",
    "activity": {},
    "requiredFlags": {},
    "trustedServiceCtx": {
        "user": {
            "userId": "string",
            "username": "string"
        },
        "options": {
            "suppressActivity": true
        }
    },
    "denialReason": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "apikey": {
            "type": "string"
        },
        "activity": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "requiredFlags": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "trustedServiceCtx": {
            "$ref": "#/components/schemas/auth.validate.trustedservicectx"
        },
        "denialReason": {
            "type": "string"
        }
    },
    "required": [
        "apikey"
    ]
}

Responses

{
    "valid": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "valid": {
            "type": "boolean"
        }
    },
    "additionalProperties": true
}

POST /auth/user/invite

Request body

{
    "email": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "email": {
            "type": "string"
        }
    },
    "required": [
        "email"
    ]
}

Responses

{
    "loginUrl": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "loginUrl": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

GET /auth/user/invite-validate

Input parameters

Parameter In Type Default Nullable Description
token query string No

Responses

{
    "state": null,
    "email": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "state": {
            "enum": [
                "success"
            ]
        },
        "email": {
            "type": "string"
        }
    }
}

{
    "state": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "state": {
            "enum": [
                "expired",
                "invalid"
            ]
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

POST /auth/user/invite-complete

Request body

{
    "token": "string",
    "username": "string",
    "firstName": "string",
    "lastName": "string",
    "password": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "token": {
            "type": "string"
        },
        "username": {
            "type": "string"
        },
        "firstName": {
            "type": "string"
        },
        "lastName": {
            "type": "string"
        },
        "password": {
            "type": "string"
        }
    },
    "required": [
        "token",
        "username",
        "firstName",
        "lastName",
        "password"
    ]
}

Responses

{
    "user": {
        "id": "string",
        "username": "string",
        "firstName": "string",
        "lastName": "string",
        "displayName": "string",
        "keys": [
            "string"
        ],
        "email": "string",
        "props": {}
    },
    "accesstoken": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "user": {
            "$ref": "#/components/schemas/auth.user"
        },
        "accesstoken": {
            "type": "string"
        }
    }
}

{
    "state": null,
    "results": {
        "isValid": true,
        "details": {
            "minLength": 10.12,
            "newPasswordLength": 10.12,
            "minUppercase": 10.12,
            "newPasswordUppercase": 10.12,
            "minLowercase": 10.12,
            "newPasswordLowercase": 10.12,
            "minSpecialChar": 10.12,
            "newPasswordSpecialChar": 10.12,
            "minNumber": 10.12,
            "newPasswordNumber": 10.12
        }
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "state": {
            "enum": [
                "malformed-password"
            ]
        },
        "results": {
            "$ref": "#/components/schemas/auth.password.validation"
        }
    }
}

{
    "state": null
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "state": {
            "enum": [
                "invalid",
                "expired"
            ]
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

GET /auth/user/invites

Responses

{
    "data": [
        {
            "id": "string",
            "email": "string",
            "createdAt": 10.12,
            "expiresAt": 10.12,
            "status": "string",
            "attempts": 10.12
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "email": {
                        "type": "string"
                    },
                    "createdAt": {
                        "type": "number"
                    },
                    "expiresAt": {
                        "type": "number"
                    },
                    "status": {
                        "type": "string"
                    },
                    "attempts": {
                        "type": "number"
                    }
                },
                "additionalProperties": true
            }
        }
    }
}

DELETE /auth/user/invites/{id}

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

Schema of the response body
{
    "type": "object",
    "properties": {}
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

POST /auth/basic/login

Input parameters

Parameter In Type Default Nullable Description
email query string No

Request body

{
    "username": "string",
    "password": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "username": {
            "type": "string"
        },
        "password": {
            "type": "string"
        }
    },
    "required": [
        "username",
        "password"
    ]
}

Responses

{
    "user": {
        "id": "string",
        "username": "string",
        "firstName": "string",
        "lastName": "string",
        "displayName": "string",
        "keys": [
            "string"
        ],
        "email": "string",
        "props": {}
    },
    "accesstoken": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "user": {
            "$ref": "#/components/schemas/auth.user"
        },
        "accesstoken": {
            "type": "string",
            "description": "The Access Token sent with every request as a Bearer token."
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

GET /auth/basic/refresh

Responses

{
    "user": {
        "id": "string",
        "username": "string",
        "firstName": "string",
        "lastName": "string",
        "displayName": "string",
        "keys": [
            "string"
        ],
        "email": "string",
        "props": {}
    },
    "accessToken": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "user": {
            "$ref": "#/components/schemas/auth.user"
        },
        "accessToken": {
            "type": "string"
        }
    }
}

POST /auth/basic/logout


GET /auth/whoami

Responses

{
    "user": {
        "id": "string",
        "username": "string",
        "firstName": "string",
        "lastName": "string",
        "displayName": "string",
        "keys": [
            "string"
        ],
        "email": "string",
        "props": {}
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "user": {
            "$ref": "#/components/schemas/auth.user"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

POST /auth/basic/reset-password-start

Request body

{
    "email": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "email": {
            "type": "string"
        }
    },
    "required": [
        "email"
    ]
}

Responses

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

POST /auth/basic/reset-password-complete

Request body

{
    "token": "string",
    "password": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "token": {
            "type": "string"
        },
        "password": {
            "type": "string"
        }
    },
    "required": [
        "token",
        "password"
    ]
}

Responses

Schema of the response body
{
    "type": "object",
    "properties": {}
}

{
    "state": null,
    "password": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "state": {
            "enum": [
                "malformed-password"
            ]
        },
        "password": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

GET /auth/users/{username}

Input parameters

Parameter In Type Default Nullable Description
email query string No
username path string No The username or email if email is set to true

Responses

{
    "id": "string",
    "username": "string",
    "firstName": "string",
    "lastName": "string",
    "displayName": "string",
    "keys": [
        "string"
    ],
    "email": "string",
    "props": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string",
            "description": "The User ID"
        },
        "username": {
            "type": "string",
            "description": "The unique user name"
        },
        "firstName": {
            "type": "string",
            "description": "The User's first name"
        },
        "lastName": {
            "type": "string",
            "description": "The User's last name"
        },
        "displayName": {
            "type": "string",
            "description": "The User's display name"
        },
        "keys": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "A list of all API Key IDs owned by the user"
        },
        "email": {
            "type": "string",
            "description": "The User's email"
        },
        "props": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true,
            "description": "Any unique props stored on the User"
        }
    }
}
Schema of the response body
{
    "type": "object",
    "properties": {}
}

PATCH /auth/users/{username}

Input parameters

Parameter In Type Default Nullable Description
username path string No

Request body

{
    "email": "string",
    "firstName": "string",
    "lastName": "string",
    "props": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "email": {
            "type": "string"
        },
        "firstName": {
            "type": "string"
        },
        "lastName": {
            "type": "string"
        },
        "props": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        }
    }
}

Responses

{
    "id": "string",
    "username": "string",
    "firstName": "string",
    "lastName": "string",
    "displayName": "string",
    "keys": [
        "string"
    ],
    "email": "string",
    "props": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string",
            "description": "The User ID"
        },
        "username": {
            "type": "string",
            "description": "The unique user name"
        },
        "firstName": {
            "type": "string",
            "description": "The User's first name"
        },
        "lastName": {
            "type": "string",
            "description": "The User's last name"
        },
        "displayName": {
            "type": "string",
            "description": "The User's display name"
        },
        "keys": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "A list of all API Key IDs owned by the user"
        },
        "email": {
            "type": "string",
            "description": "The User's email"
        },
        "props": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true,
            "description": "Any unique props stored on the User"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

DELETE /auth/users/{username}

Input parameters

Parameter In Type Default Nullable Description
id query string No 'true' = treats username as a User ID, otherwise use the User name
username path string No

Responses

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

GET /auth/users

Input parameters

Parameter In Type Default Nullable Description
cursor query string No Cursor for next page
limit query integer No Page size (max 10000, default 100)

Responses

{
    "data": [
        {
            "id": "string",
            "username": "string",
            "firstName": "string",
            "lastName": "string",
            "displayName": "string",
            "keys": [
                "string"
            ],
            "email": "string",
            "props": {}
        }
    ],
    "pagination": {
        "limit": 0,
        "count": 0,
        "hasMore": true,
        "nextCursor": "string"
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "$ref": "#/components/schemas/auth.user"
            }
        },
        "pagination": {
            "type": "object",
            "properties": {
                "limit": {
                    "type": "integer"
                },
                "count": {
                    "type": "integer"
                },
                "hasMore": {
                    "type": "boolean"
                },
                "nextCursor": {
                    "type": "string"
                }
            },
            "required": [
                "limit",
                "count",
                "hasMore"
            ]
        }
    }
}

POST /auth/users

Request body

{
    "username": "string",
    "email": "string",
    "displayName": "string",
    "firstName": "string",
    "lastName": "string",
    "props": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "username": {
            "type": "string"
        },
        "email": {
            "type": "string"
        },
        "displayName": {
            "type": "string"
        },
        "firstName": {
            "type": "string"
        },
        "lastName": {
            "type": "string"
        },
        "props": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        }
    },
    "required": [
        "username",
        "email",
        "firstName",
        "lastName"
    ]
}

Responses

{
    "user": {
        "id": "string",
        "username": "string",
        "firstName": "string",
        "lastName": "string",
        "displayName": "string",
        "keys": [
            "string"
        ],
        "email": "string",
        "props": {}
    },
    "password": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "user": {
            "$ref": "#/components/schemas/auth.user"
        },
        "password": {
            "type": "string"
        }
    }
}

{
    "message": "string",
    "errors": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        },
        "errors": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        }
    }
}

GET /dashboard/users

List users

Description

Returns a list of all users

Responses

{
    "data": [
        {}
    ],
    "pagination": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {},
                "additionalProperties": true
            }
        },
        "pagination": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    },
    "additionalProperties": true
}

POST /dashboard/users

Create user

Description

Creates a new user

Request body

{
    "username": "string",
    "email": "string",
    "firstName": "string",
    "lastName": "string",
    "displayName": "string",
    "props": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "username": {
            "type": "string"
        },
        "email": {
            "type": "string"
        },
        "firstName": {
            "type": "string"
        },
        "lastName": {
            "type": "string"
        },
        "displayName": {
            "type": "string"
        },
        "props": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    }
}

Responses

{
    "user": {
        "id": "string",
        "username": "string",
        "email": "string",
        "firstName": "string",
        "lastName": "string",
        "displayName": "string"
    },
    "password": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "user": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "firstName": {
                    "type": "string"
                },
                "lastName": {
                    "type": "string"
                },
                "displayName": {
                    "type": "string"
                }
            },
            "additionalProperties": true
        },
        "password": {
            "type": "string"
        }
    },
    "additionalProperties": true
}

GET /dashboard/users/{id}

Get user

Description

Returns a user by ID

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

{
    "id": "string",
    "username": "string",
    "email": "string",
    "firstName": "string",
    "lastName": "string",
    "displayName": "string",
    "keys": [
        "string"
    ],
    "props": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        },
        "username": {
            "type": "string"
        },
        "email": {
            "type": "string"
        },
        "firstName": {
            "type": "string"
        },
        "lastName": {
            "type": "string"
        },
        "displayName": {
            "type": "string"
        },
        "keys": {
            "type": "array",
            "items": {
                "type": "string"
            }
        },
        "props": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    },
    "additionalProperties": true
}

PATCH /dashboard/users/{id}

Update user

Description

Updates an existing user

Input parameters

Parameter In Type Default Nullable Description
id path string No

Request body

{
    "firstName": "string",
    "lastName": "string",
    "email": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "firstName": {
            "type": "string"
        },
        "lastName": {
            "type": "string"
        },
        "email": {
            "type": "string"
        }
    }
}

Responses

{
    "success": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "success": {
            "type": "boolean"
        }
    }
}

DELETE /dashboard/users/{id}

Delete user

Description

Deletes a user

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

{
    "success": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "success": {
            "type": "boolean"
        }
    }
}

POST /dashboard/dev/change-password

Change password (dev)

Description

Development endpoint to change password

Request body

{
    "userId": "string",
    "newPassword": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "userId": {
            "type": "string"
        },
        "newPassword": {
            "type": "string"
        }
    }
}

Responses

{
    "success": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "success": {
            "type": "boolean"
        }
    }
}

POST /dashboard/user/invite

Invite user

Description

Sends an invitation email to a new user

Request body

{
    "email": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "email": {
            "type": "string"
        }
    }
}

Responses

Schema of the response body
{
    "type": "object",
    "properties": {}
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

GET /dashboard/user/invite-validate

Validate invite token

Description

Validates the invite token from the magic link

Input parameters

Parameter In Type Default Nullable Description
token query string No

Responses

{
    "state": "string",
    "email": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "state": {
            "type": "string"
        },
        "email": {
            "type": "string"
        }
    }
}

{
    "state": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "state": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

POST /dashboard/user/invite-complete

Complete invite

Description

Creates the user account after invitation

Request body

{
    "token": "string",
    "username": "string",
    "firstName": "string",
    "lastName": "string",
    "password": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "token": {
            "type": "string"
        },
        "username": {
            "type": "string"
        },
        "firstName": {
            "type": "string"
        },
        "lastName": {
            "type": "string"
        },
        "password": {
            "type": "string"
        }
    }
}

Responses

{
    "user": {},
    "accesstoken": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "user": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "accesstoken": {
            "type": "string"
        }
    }
}

{
    "state": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "state": {
            "type": "string"
        }
    }
}

{
    "state": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "state": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

GET /dashboard/user/invites

List user invites

Description

Returns all pending and expired invite tokens

Responses

{
    "data": [
        {
            "id": "string",
            "email": "string",
            "createdAt": 10.12,
            "expiresAt": 10.12,
            "status": "string",
            "attempts": 10.12
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "email": {
                        "type": "string"
                    },
                    "createdAt": {
                        "type": "number"
                    },
                    "expiresAt": {
                        "type": "number"
                    },
                    "status": {
                        "type": "string"
                    },
                    "attempts": {
                        "type": "number"
                    }
                },
                "additionalProperties": true
            }
        }
    }
}

DELETE /dashboard/user/invites/{id}

Revoke user invite

Description

Revokes a pending or expired invite by its id

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

Schema of the response body
{
    "type": "object",
    "properties": {}
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

POST /dashboard/basic/reset-password-start

Start password reset

Description

Initiates the password reset flow

Request body

{
    "email": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "email": {
            "type": "string"
        }
    }
}

Responses

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

POST /dashboard/basic/reset-password-complete

Complete password reset

Description

Finalises password reset using the token from email

Request body

{
    "token": "string",
    "password": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "token": {
            "type": "string"
        },
        "password": {
            "type": "string"
        }
    }
}

Responses

Schema of the response body
{
    "type": "object",
    "properties": {}
}

{
    "state": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "state": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

Service


POST /auth/service/handshake

Request body

{
    "serviceName": "string",
    "sKey": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "serviceName": {
            "type": "string"
        },
        "sKey": {
            "type": "string"
        }
    },
    "required": [
        "serviceName",
        "sKey"
    ]
}

Responses

{
    "apiKey": "string",
    "keyid": "string",
    "expiresAt": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "apiKey": {
            "type": "string"
        },
        "keyid": {
            "type": "string"
        },
        "expiresAt": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

Accounts


POST /auth/accounts

Request body

{
    "uid": "string",
    "notes": "string",
    "props": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "uid": {
            "type": "string"
        },
        "notes": {
            "type": "string"
        },
        "props": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        }
    },
    "required": [
        "uid"
    ]
}

Responses

{
    "id": "string",
    "uid": "string",
    "notes": "string",
    "status": "string",
    "props": {},
    "createdAt": "string",
    "updatedAt": "string",
    "apiKeyCount": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        },
        "uid": {
            "type": "string",
            "description": "The Account UID"
        },
        "notes": {
            "type": "string"
        },
        "status": {
            "type": "string",
            "description": "Account status: 'active' or 'deactivated'"
        },
        "props": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "createdAt": {
            "type": "string"
        },
        "updatedAt": {
            "type": "string"
        },
        "apiKeyCount": {
            "type": "integer",
            "description": "Number of API keys for this account (only present when includeKeyCounts=true)",
            "nullable": true
        }
    }
}

GET /auth/accounts

Input parameters

Parameter In Type Default Nullable Description
cursor query string No Cursor for next page
includeDeactivated query boolean No When true, deactivated accounts are included
limit query integer No Page size (max 10000, default 100)

Responses

{
    "data": [
        {
            "id": "string",
            "uid": "string",
            "notes": "string",
            "status": "string",
            "props": {},
            "createdAt": "string",
            "updatedAt": "string",
            "apiKeyCount": 0
        }
    ],
    "pagination": {
        "limit": 0,
        "count": 0,
        "hasMore": true,
        "nextCursor": "string"
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "$ref": "#/components/schemas/auth.account"
            }
        },
        "pagination": {
            "type": "object",
            "properties": {
                "limit": {
                    "type": "integer"
                },
                "count": {
                    "type": "integer"
                },
                "hasMore": {
                    "type": "boolean"
                },
                "nextCursor": {
                    "type": "string"
                }
            },
            "required": [
                "limit",
                "count",
                "hasMore"
            ]
        }
    }
}

GET /auth/accounts/{id}

Input parameters

Parameter In Type Default Nullable Description
id path string No
includeDeactivated query boolean No When true, a deactivated account is returned instead of 404
uid query string No If set to 'true', treat the id as a uid

Responses

{
    "id": "string",
    "uid": "string",
    "notes": "string",
    "status": "string",
    "props": {},
    "createdAt": "string",
    "updatedAt": "string",
    "apiKeyCount": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        },
        "uid": {
            "type": "string",
            "description": "The Account UID"
        },
        "notes": {
            "type": "string"
        },
        "status": {
            "type": "string",
            "description": "Account status: 'active' or 'deactivated'"
        },
        "props": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "createdAt": {
            "type": "string"
        },
        "updatedAt": {
            "type": "string"
        },
        "apiKeyCount": {
            "type": "integer",
            "description": "Number of API keys for this account (only present when includeKeyCounts=true)",
            "nullable": true
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

PATCH /auth/accounts/{id}

Input parameters

Parameter In Type Default Nullable Description
id path string No

Request body

{
    "uid": "string",
    "notes": "string",
    "props": {},
    "status": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "uid": {
            "type": "string"
        },
        "notes": {
            "type": "string"
        },
        "props": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "status": {
            "type": "string"
        }
    }
}

Responses

{
    "id": "string",
    "uid": "string",
    "notes": "string",
    "status": "string",
    "props": {},
    "createdAt": "string",
    "updatedAt": "string",
    "apiKeyCount": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        },
        "uid": {
            "type": "string",
            "description": "The Account UID"
        },
        "notes": {
            "type": "string"
        },
        "status": {
            "type": "string",
            "description": "Account status: 'active' or 'deactivated'"
        },
        "props": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "createdAt": {
            "type": "string"
        },
        "updatedAt": {
            "type": "string"
        },
        "apiKeyCount": {
            "type": "integer",
            "description": "Number of API keys for this account (only present when includeKeyCounts=true)",
            "nullable": true
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

DELETE /auth/accounts/{id}

Input parameters

Parameter In Type Default Nullable Description
id path string No
uid query string No If set to "true", treat id as the uid

Responses

{
    "id": "string",
    "uid": "string",
    "notes": "string",
    "status": "string",
    "props": {},
    "createdAt": "string",
    "updatedAt": "string",
    "apiKeyCount": 0
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        },
        "uid": {
            "type": "string",
            "description": "The Account UID"
        },
        "notes": {
            "type": "string"
        },
        "status": {
            "type": "string",
            "description": "Account status: 'active' or 'deactivated'"
        },
        "props": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "createdAt": {
            "type": "string"
        },
        "updatedAt": {
            "type": "string"
        },
        "apiKeyCount": {
            "type": "integer",
            "description": "Number of API keys for this account (only present when includeKeyCounts=true)",
            "nullable": true
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

GET /auth/accounts/{accountId}/apikeys

Input parameters

Parameter In Type Default Nullable Description
accountId path string No
cursor query string No Cursor for next page
limit query integer No Page size (max 10000, default 100)
uid query string No If set to "true", treat id as the uid

Responses

{
    "data": [
        {
            "keyid": "string",
            "active": true,
            "accountId": "string",
            "references": {
                "accountId": "string"
            },
            "flags": [
                "string"
            ],
            "maxUses": 0,
            "countedActions": [
                "string"
            ],
            "autoDisableOnLimit": true,
            "currentUses": 0,
            "validFrom": "string",
            "validUntil": "string",
            "props": {},
            "createdAt": "string",
            "updatedAt": "string"
        }
    ],
    "pagination": {
        "limit": 0,
        "count": 0,
        "hasMore": true,
        "nextCursor": "string"
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "$ref": "#/components/schemas/auth.safeapikey"
            }
        },
        "pagination": {
            "type": "object",
            "properties": {
                "limit": {
                    "type": "integer"
                },
                "count": {
                    "type": "integer"
                },
                "hasMore": {
                    "type": "boolean"
                },
                "nextCursor": {
                    "type": "string"
                }
            },
            "required": [
                "limit",
                "count",
                "hasMore"
            ]
        }
    }
}

GET /dashboard/accounts

List accounts

Description

Returns a list of all accounts

Input parameters

Parameter In Type Default Nullable Description
cursor query string No Pagination cursor
includeDeactivated query boolean No When true, deactivated accounts are included
limit query integer No Page size

Responses

{
    "data": [
        {}
    ],
    "pagination": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {},
                "additionalProperties": true
            }
        },
        "pagination": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    },
    "additionalProperties": true
}

POST /dashboard/accounts

Create account

Description

Creates a new account

Request body

{
    "uid": "string",
    "props": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "uid": {
            "type": "string"
        },
        "props": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    }
}

Responses

{
    "id": "string",
    "uid": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        },
        "uid": {
            "type": "string"
        }
    }
}

GET /dashboard/accounts/{id}

Get account

Description

Returns an account by ID

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

{
    "id": "string",
    "uid": "string",
    "createdAt": "string",
    "updatedAt": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        },
        "uid": {
            "type": "string"
        },
        "createdAt": {
            "type": "string"
        },
        "updatedAt": {
            "type": "string"
        }
    },
    "additionalProperties": true
}

PATCH /dashboard/accounts/{id}

Update account

Description

Updates an existing account

Input parameters

Parameter In Type Default Nullable Description
id path string No

Request body

{
    "props": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "props": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    }
}

Responses

{
    "success": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "success": {
            "type": "boolean"
        }
    }
}

DELETE /dashboard/accounts/{id}

Delete account

Description

Deletes an account

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

{
    "success": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "success": {
            "type": "boolean"
        }
    }
}

POST /dashboard/search/accounts

Search accounts

Description

Search accounts by uid/notes text, keyring access, and more

Input parameters

Parameter In Type Default Nullable Description
cursor query string No Pagination cursor
limit query integer No Page size

Request body

{
    "uid": "string",
    "notes": "string",
    "keyringName": "string",
    "keyringId": "string",
    "includeKeyCounts": true,
    "includeDeactivated": true,
    "sortBy": "string",
    "sortOrder": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "uid": {
            "type": "string",
            "description": "Substring match against uid (case-insensitive)"
        },
        "notes": {
            "type": "string",
            "description": "Substring match against notes (case-insensitive)"
        },
        "keyringName": {
            "type": "string",
            "description": "Filter by keyring name"
        },
        "keyringId": {
            "type": "string",
            "description": "Filter by keyring ID"
        },
        "includeKeyCounts": {
            "type": "boolean",
            "description": "Include apiKeyCount in results"
        },
        "includeDeactivated": {
            "type": "boolean",
            "description": "When true, deactivated accounts are included"
        },
        "sortBy": {
            "type": "string",
            "description": "Column to sort by: uid, createdAt, or updatedAt (default: createdAt)"
        },
        "sortOrder": {
            "type": "string",
            "description": "Sort direction: asc or desc (default: asc)"
        }
    }
}

Responses

{
    "data": [
        {}
    ],
    "pagination": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {},
                "additionalProperties": true
            }
        },
        "pagination": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    },
    "additionalProperties": true
}

GET /dashboard/accounts/{id}/apikeys

Get account API keys

Description

Returns all API keys for an account

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

{
    "data": [
        {}
    ],
    "pagination": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {},
                "additionalProperties": true
            }
        },
        "pagination": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    },
    "additionalProperties": true
}

API Keys


GET /auth/apikey

Input parameters

Parameter In Type Default Nullable Description
cursor query string No Cursor for next page
limit query integer No Page size (max 10000, default 100)

Responses

{
    "data": [
        {
            "keyid": "string",
            "active": true,
            "accountId": "string",
            "references": {
                "accountId": "string"
            },
            "flags": [
                "string"
            ],
            "maxUses": 0,
            "countedActions": [
                "string"
            ],
            "autoDisableOnLimit": true,
            "currentUses": 0,
            "validFrom": "string",
            "validUntil": "string",
            "props": {},
            "createdAt": "string",
            "updatedAt": "string"
        }
    ],
    "pagination": {
        "limit": 0,
        "count": 0,
        "hasMore": true,
        "nextCursor": "string"
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "$ref": "#/components/schemas/auth.safeapikey"
            }
        },
        "pagination": {
            "type": "object",
            "properties": {
                "limit": {
                    "type": "integer"
                },
                "count": {
                    "type": "integer"
                },
                "hasMore": {
                    "type": "boolean"
                },
                "nextCursor": {
                    "type": "string"
                }
            },
            "required": [
                "limit",
                "count",
                "hasMore"
            ]
        }
    }
}

POST /auth/apikey

Input parameters

Parameter In Type Default Nullable Description
uid query string No If set to 'true', will treat the accountId field as the Account UID

Request body

{
    "accountId": "string",
    "flags": [
        "string"
    ],
    "maxUses": 0,
    "countedActions": [
        "string"
    ],
    "autoDisableOnLimit": true,
    "validFrom": "string",
    "validUntil": "string",
    "props": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "accountId": {
            "type": "string"
        },
        "flags": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "The entitlements granted to this API Key, as a list of names (e.g. `[\"keyring.finance.decrypt\"]`)."
        },
        "maxUses": {
            "type": "integer",
            "nullable": true,
            "description": "The max number of uses; null for no limit"
        },
        "countedActions": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "nullable": true,
            "description": "A string array of activity that count toward maxUses. Any other activities not listed here will not count toward the maxCount."
        },
        "autoDisableOnLimit": {
            "type": "boolean",
            "description": "If set, will disable the API Key when the limits are hit"
        },
        "validFrom": {
            "type": "string",
            "nullable": true,
            "description": "ISO-8601 timestamp of the time when the API Key becomes valid; null for immediately"
        },
        "validUntil": {
            "type": "string",
            "nullable": true,
            "description": "ISO-8601 timestamp that describes when the API Key will expire; null for never"
        },
        "props": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        }
    },
    "required": [
        "accountId",
        "flags"
    ]
}

Responses

{
    "key": "string",
    "keyid": "string",
    "active": true,
    "accountId": "string",
    "references": {
        "accountId": "string"
    },
    "flags": [
        "string"
    ],
    "maxUses": 0,
    "countedActions": [
        "string"
    ],
    "autoDisableOnLimit": true,
    "currentUses": 0,
    "validFrom": "string",
    "validUntil": "string",
    "props": {},
    "createdAt": "string",
    "updatedAt": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "key": {
            "type": "string"
        },
        "keyid": {
            "type": "string"
        },
        "active": {
            "type": "boolean"
        },
        "accountId": {
            "type": "string"
        },
        "references": {
            "$ref": "#/components/schemas/auth.apikeyref"
        },
        "flags": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "The entitlements this API Key holds, as a list of granted names — ADR 021. Presence is the grant."
        },
        "maxUses": {
            "type": "integer",
            "nullable": true
        },
        "countedActions": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "nullable": true
        },
        "autoDisableOnLimit": {
            "type": "boolean"
        },
        "currentUses": {
            "type": "integer"
        },
        "validFrom": {
            "type": "string",
            "nullable": true
        },
        "validUntil": {
            "type": "string",
            "nullable": true
        },
        "props": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "createdAt": {
            "type": "string"
        },
        "updatedAt": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

PUT /auth/apikey

Input parameters

Parameter In Type Default Nullable Description
id query string No If true, treat the apikey body property as an apikeyid

Request body

{
    "op": "delete",
    "apikey": "string",
    "active": true,
    "accountId": "string",
    "maxUses": 0,
    "countedActions": [
        "string"
    ],
    "autoDisableOnLimit": true,
    "validFrom": "string",
    "validUntil": "string",
    "flags": [
        "string"
    ],
    "props": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "op": {
            "type": "string",
            "enum": [
                "delete",
                "merge",
                "replace"
            ]
        },
        "apikey": {
            "type": "string",
            "description": "The API Key value (or apikeyid if querystring id=true)"
        },
        "active": {
            "type": "boolean"
        },
        "accountId": {
            "type": "string"
        },
        "maxUses": {
            "type": "integer",
            "nullable": true,
            "description": "The max number of uses; null clears it"
        },
        "countedActions": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "nullable": true,
            "description": "A string array of activity that count toward maxUses. Any other activities not listed here will not count toward the maxCount."
        },
        "autoDisableOnLimit": {
            "type": "boolean",
            "nullable": true,
            "description": "If set, will disable the API Key when the limits are hit; null restores the default"
        },
        "validFrom": {
            "type": "string",
            "nullable": true,
            "description": "ISO-8601 timestamp of the time when the API Key becomes valid; null for immediately"
        },
        "validUntil": {
            "type": "string",
            "nullable": true,
            "description": "ISO-8601 timestamp that describes when the API Key will expire; null for never"
        },
        "flags": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "Entitlement names. For `merge` these are added, for `replace` they become the whole set, for `delete` they are removed."
        },
        "props": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        }
    },
    "required": [
        "op",
        "apikey"
    ]
}

Responses

{
    "key": "string",
    "keyid": "string",
    "op": null,
    "active": true,
    "accountId": "string",
    "references": {
        "accountId": "string"
    },
    "maxUses": 0,
    "countedActions": [
        "string"
    ],
    "autoDisableOnLimit": true,
    "validFrom": "string",
    "validUntil": "string",
    "flags": [
        "string"
    ],
    "props": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "key": {
            "type": "string",
            "description": "If the key is provided, it will be returned"
        },
        "keyid": {
            "type": "string"
        },
        "op": {
            "enum": [
                "delete",
                "merge",
                "replace"
            ],
            "description": "The operationt o perform"
        },
        "active": {
            "type": "boolean"
        },
        "accountId": {
            "type": "string",
            "description": "The Account associated with this API Key"
        },
        "references": {
            "type": "object",
            "properties": {
                "accountId": {
                    "type": "string"
                }
            }
        },
        "maxUses": {
            "type": "integer",
            "nullable": true,
            "description": "The max number of uses"
        },
        "countedActions": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "nullable": true,
            "description": "A string array of activity that count toward maxUses"
        },
        "autoDisableOnLimit": {
            "type": "boolean",
            "description": "If set, will disable the API Key when the limits are hit"
        },
        "validFrom": {
            "type": "string",
            "nullable": true,
            "description": "ISO-8601 timestamp of the time when the API Key becomes valid"
        },
        "validUntil": {
            "type": "string",
            "nullable": true,
            "description": "ISO-8601 timestamp that describes when the API Key will expire"
        },
        "flags": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "The entitlements this API Key holds, as a list of names"
        },
        "props": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

GET /auth/apikey/{apikeyid}

Input parameters

Parameter In Type Default Nullable Description
apikeyid path string No The API Key ID

Responses

{
    "keyid": "string",
    "active": true,
    "accountId": "string",
    "references": {
        "accountId": "string"
    },
    "flags": [
        "string"
    ],
    "maxUses": 0,
    "countedActions": [
        "string"
    ],
    "autoDisableOnLimit": true,
    "currentUses": 0,
    "validFrom": "string",
    "validUntil": "string",
    "props": {},
    "createdAt": "string",
    "updatedAt": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "keyid": {
            "type": "string"
        },
        "active": {
            "type": "boolean"
        },
        "accountId": {
            "type": "string"
        },
        "references": {
            "$ref": "#/components/schemas/auth.apikeyref"
        },
        "flags": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "The entitlements this API Key holds, as a list of granted names — ADR 021. Presence is the grant."
        },
        "maxUses": {
            "type": "integer",
            "nullable": true
        },
        "countedActions": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "nullable": true
        },
        "autoDisableOnLimit": {
            "type": "boolean"
        },
        "currentUses": {
            "type": "integer"
        },
        "validFrom": {
            "type": "string",
            "nullable": true
        },
        "validUntil": {
            "type": "string",
            "nullable": true
        },
        "props": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "createdAt": {
            "type": "string"
        },
        "updatedAt": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

DELETE /auth/apikey/{apikey}

Input parameters

Parameter In Type Default Nullable Description
apikey path string No The API Key
id query string No 'true' = treats apikey as an API Key ID, otherwise use the API Key

Responses

{
    "apikey": "string",
    "id": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "apikey": {
            "type": "string",
            "description": "The deleted API Key"
        },
        "id": {
            "type": "boolean",
            "description": "If true, the apikey is the API Key ID"
        }
    },
    "required": [
        "apikey",
        "id"
    ]
}

GET /auth/apikey/{apikeyid}/props

Input parameters

Parameter In Type Default Nullable Description
apikeyid path string No The API Key ID

Responses

{
    "keyid": "string",
    "active": true,
    "accountId": "string",
    "references": {
        "accountId": "string"
    },
    "flags": [
        "string"
    ],
    "maxUses": 0,
    "countedActions": [
        "string"
    ],
    "autoDisableOnLimit": true,
    "currentUses": 0,
    "validFrom": "string",
    "validUntil": "string",
    "props": {},
    "createdAt": "string",
    "updatedAt": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "keyid": {
            "type": "string"
        },
        "active": {
            "type": "boolean"
        },
        "accountId": {
            "type": "string"
        },
        "references": {
            "$ref": "#/components/schemas/auth.apikeyref"
        },
        "flags": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "The entitlements this API Key holds, as a list of granted names — ADR 021. Presence is the grant."
        },
        "maxUses": {
            "type": "integer",
            "nullable": true
        },
        "countedActions": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "nullable": true
        },
        "autoDisableOnLimit": {
            "type": "boolean"
        },
        "currentUses": {
            "type": "integer"
        },
        "validFrom": {
            "type": "string",
            "nullable": true
        },
        "validUntil": {
            "type": "string",
            "nullable": true
        },
        "props": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "createdAt": {
            "type": "string"
        },
        "updatedAt": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

GET /dashboard/apikey

List API keys

Description

Returns a list of all API keys

Responses

{
    "apikeys": [
        {}
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "apikeys": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {},
                "additionalProperties": true
            }
        }
    },
    "additionalProperties": true
}

POST /dashboard/apikey

Create API key

Description

Creates a new API key

Request body

{
    "name": "string",
    "accountId": "string",
    "flags": [
        "string"
    ],
    "maxUses": 0,
    "countedActions": [
        "string"
    ],
    "autoDisableOnLimit": true,
    "validFrom": "string",
    "validUntil": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        },
        "accountId": {
            "type": "string"
        },
        "flags": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "Entitlement names — ADR 021: presence is the grant"
        },
        "maxUses": {
            "type": "integer",
            "nullable": true,
            "description": "The max number of uses"
        },
        "countedActions": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "nullable": true,
            "description": "A string array of activity that count toward maxUses"
        },
        "autoDisableOnLimit": {
            "type": "boolean",
            "description": "If set, will disable the API Key when the limits are hit"
        },
        "validFrom": {
            "type": "string",
            "nullable": true,
            "description": "ISO-8601 timestamp of the time when the API Key becomes valid"
        },
        "validUntil": {
            "type": "string",
            "nullable": true,
            "description": "ISO-8601 timestamp that describes when the API Key will expire"
        }
    }
}

Responses

{
    "key": "string",
    "keyid": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "key": {
            "type": "string"
        },
        "keyid": {
            "type": "string"
        }
    },
    "additionalProperties": true
}

PUT /dashboard/apikey

Update API key

Description

Updates an existing API key. Use querystring id=true to update by apikeyid instead of key value

Input parameters

Parameter In Type Default Nullable Description
id query string No If true, treat the apikey body property as an apikeyid

Request body

{
    "op": "delete",
    "apikey": "string",
    "flags": [
        "string"
    ],
    "active": true,
    "maxUses": 0,
    "countedActions": [
        "string"
    ],
    "autoDisableOnLimit": true,
    "validFrom": "string",
    "validUntil": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "op": {
            "type": "string",
            "enum": [
                "delete",
                "merge",
                "replace"
            ],
            "description": "The operation to perform"
        },
        "apikey": {
            "type": "string",
            "description": "The API Key value (or apikeyid if querystring id=true)"
        },
        "flags": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "Entitlement names — ADR 021: presence is the grant"
        },
        "active": {
            "type": "boolean"
        },
        "maxUses": {
            "type": "integer",
            "nullable": true,
            "description": "The max number of uses; null clears it"
        },
        "countedActions": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "nullable": true,
            "description": "A string array of activity that count toward maxUses"
        },
        "autoDisableOnLimit": {
            "type": "boolean",
            "nullable": true,
            "description": "If set, will disable the API Key when the limits are hit; null restores the default"
        },
        "validFrom": {
            "type": "string",
            "nullable": true,
            "description": "ISO-8601 timestamp of the time when the API Key becomes valid; null for immediately"
        },
        "validUntil": {
            "type": "string",
            "nullable": true,
            "description": "ISO-8601 timestamp that describes when the API Key will expire; null for never"
        }
    }
}

Responses

{
    "keyid": "string",
    "op": null,
    "active": true,
    "maxUses": 0,
    "currentUses": 0,
    "countedActions": [
        "string"
    ],
    "autoDisableOnLimit": true,
    "validFrom": "string",
    "validUntil": "string",
    "flags": [
        "string"
    ],
    "props": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "keyid": {
            "type": "string"
        },
        "op": {
            "enum": [
                "delete",
                "merge",
                "replace"
            ],
            "description": "The operation performed"
        },
        "active": {
            "type": "boolean"
        },
        "maxUses": {
            "type": "integer",
            "nullable": true,
            "description": "The max number of uses"
        },
        "currentUses": {
            "type": "integer",
            "description": "The current number of uses"
        },
        "countedActions": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "nullable": true,
            "description": "Activities that count toward maxUses"
        },
        "autoDisableOnLimit": {
            "type": "boolean",
            "description": "If set, will disable the API Key when the limits are hit"
        },
        "validFrom": {
            "type": "string",
            "nullable": true,
            "description": "ISO-8601 timestamp when the API Key becomes valid"
        },
        "validUntil": {
            "type": "string",
            "nullable": true,
            "description": "ISO-8601 timestamp when the API Key will expire"
        },
        "flags": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "Entitlement names — ADR 021: presence is the grant"
        },
        "props": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    },
    "additionalProperties": true
}

GET /dashboard/apikey/{id}

Get API key

Description

Returns an API key by ID

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

{
    "keyid": "string",
    "active": true,
    "maxUses": 0,
    "currentUses": 0,
    "countedActions": [
        "string"
    ],
    "autoDisableOnLimit": true,
    "validFrom": "string",
    "validUntil": "string",
    "accountId": "string",
    "references": {},
    "flags": [
        "string"
    ],
    "props": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "keyid": {
            "type": "string"
        },
        "active": {
            "type": "boolean"
        },
        "maxUses": {
            "type": "integer",
            "nullable": true,
            "description": "The max number of uses"
        },
        "currentUses": {
            "type": "integer",
            "description": "The current number of uses"
        },
        "countedActions": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "nullable": true,
            "description": "Activities that count toward maxUses"
        },
        "autoDisableOnLimit": {
            "type": "boolean",
            "description": "If set, will disable the API Key when the limits are hit"
        },
        "validFrom": {
            "type": "string",
            "nullable": true,
            "description": "ISO-8601 timestamp when the API Key becomes valid"
        },
        "validUntil": {
            "type": "string",
            "nullable": true,
            "description": "ISO-8601 timestamp when the API Key will expire"
        },
        "accountId": {
            "type": "string"
        },
        "references": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "flags": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "Entitlement names — ADR 021: presence is the grant"
        },
        "props": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    },
    "additionalProperties": true
}

DELETE /dashboard/apikey/{id}

Delete API key

Description

Deletes an API key

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

{
    "apikey": "string",
    "id": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "apikey": {
            "type": "string",
            "description": "The apikeyid that was deleted"
        },
        "id": {
            "type": "boolean",
            "description": "Whether the identifier was read as an apikeyid — always true here"
        }
    },
    "additionalProperties": true
}

POST /dashboard/search/keyring/{keyringname}/apikey

Search keyring API keys

Description

Finds API keys with access to a keyring

Input parameters

Parameter In Type Default Nullable Description
cursor query string No Cursor for pagination
id query string No If set to 'true', will treat the keyringname as a KeyRing ID
keyringname path string No
limit query integer No Maximum number of API keys to return (default: 100, max: 10000)

Request body

{
    "accountId": "string",
    "active": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "accountId": {
            "type": "string",
            "description": "Filter by Account ID"
        },
        "active": {
            "type": "boolean",
            "description": "Filter by active status (true/false)"
        }
    }
}

Responses

{
    "data": [
        {}
    ],
    "pagination": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {},
                "additionalProperties": true
            }
        },
        "pagination": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    },
    "additionalProperties": true
}

SSO


GET /auth/sso/providers/reserve-id

Responses

{
    "id": "string",
    "callbackUrl": "string",
    "metadataUrl": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        },
        "callbackUrl": {
            "type": "string"
        },
        "metadataUrl": {
            "type": "string"
        }
    }
}

POST /auth/sso/providers

Request body

{
    "id": "string",
    "name": "string",
    "protocol": "oidc",
    "idpType": "entra",
    "enabled": true,
    "config": {},
    "spPrivateKey": "string",
    "spCertificate": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        },
        "name": {
            "type": "string"
        },
        "protocol": {
            "type": "string",
            "enum": [
                "oidc",
                "saml"
            ]
        },
        "idpType": {
            "type": "string",
            "enum": [
                "entra",
                "okta",
                "google",
                "aws-cognito",
                "custom"
            ]
        },
        "enabled": {
            "type": "boolean"
        },
        "config": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "spPrivateKey": {
            "type": "string"
        },
        "spCertificate": {
            "type": "string"
        }
    },
    "required": [
        "name",
        "protocol",
        "idpType",
        "config"
    ]
}

Responses

{
    "id": "string",
    "name": "string",
    "protocol": "string",
    "idpType": "string",
    "enabled": true,
    "config": {},
    "spCertificate": "string",
    "createdAt": "string",
    "updatedAt": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        },
        "name": {
            "type": "string"
        },
        "protocol": {
            "type": "string"
        },
        "idpType": {
            "type": "string"
        },
        "enabled": {
            "type": "boolean"
        },
        "config": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "spCertificate": {
            "type": "string"
        },
        "createdAt": {
            "type": "string"
        },
        "updatedAt": {
            "type": "string"
        }
    }
}

GET /auth/sso/providers

Responses

{
    "data": [
        {
            "id": "string",
            "name": "string",
            "protocol": "string",
            "idpType": "string",
            "enabled": true,
            "config": {},
            "spCertificate": "string",
            "createdAt": "string",
            "updatedAt": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "protocol": {
                        "type": "string"
                    },
                    "idpType": {
                        "type": "string"
                    },
                    "enabled": {
                        "type": "boolean"
                    },
                    "config": {
                        "type": "object",
                        "properties": {},
                        "required": [],
                        "additionalProperties": true
                    },
                    "spCertificate": {
                        "type": "string"
                    },
                    "createdAt": {
                        "type": "string"
                    },
                    "updatedAt": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            }
        }
    }
}

GET /auth/sso/providers/enabled

Responses

{
    "data": [
        {
            "id": "string",
            "name": "string",
            "protocol": "string",
            "idpType": "string",
            "config": {},
            "spCertificate": "string",
            "createdAt": "string",
            "updatedAt": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "protocol": {
                        "type": "string"
                    },
                    "idpType": {
                        "type": "string"
                    },
                    "config": {
                        "type": "object",
                        "properties": {},
                        "required": [],
                        "additionalProperties": true
                    },
                    "spCertificate": {
                        "type": "string"
                    },
                    "createdAt": {
                        "type": "string"
                    },
                    "updatedAt": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            }
        }
    }
}

GET /auth/sso/providers/{id}

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

{
    "id": "string",
    "name": "string",
    "protocol": "string",
    "idpType": "string",
    "enabled": true,
    "config": {},
    "spCertificate": "string",
    "createdAt": "string",
    "updatedAt": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        },
        "name": {
            "type": "string"
        },
        "protocol": {
            "type": "string"
        },
        "idpType": {
            "type": "string"
        },
        "enabled": {
            "type": "boolean"
        },
        "config": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "spCertificate": {
            "type": "string"
        },
        "createdAt": {
            "type": "string"
        },
        "updatedAt": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

PATCH /auth/sso/providers/{id}

Input parameters

Parameter In Type Default Nullable Description
id path string No

Request body

{
    "name": "string",
    "enabled": true,
    "config": {},
    "spPrivateKey": "string",
    "spCertificate": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        },
        "enabled": {
            "type": "boolean"
        },
        "config": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "spPrivateKey": {
            "type": "string"
        },
        "spCertificate": {
            "type": "string"
        }
    }
}

Responses

{
    "id": "string",
    "name": "string",
    "protocol": "string",
    "idpType": "string",
    "enabled": true,
    "config": {},
    "spCertificate": "string",
    "createdAt": "string",
    "updatedAt": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        },
        "name": {
            "type": "string"
        },
        "protocol": {
            "type": "string"
        },
        "idpType": {
            "type": "string"
        },
        "enabled": {
            "type": "boolean"
        },
        "config": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "spCertificate": {
            "type": "string"
        },
        "createdAt": {
            "type": "string"
        },
        "updatedAt": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

DELETE /auth/sso/providers/{id}

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

Schema of the response body
{
    "type": "object",
    "properties": {}
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

POST /auth/sso/providers/parse-metadata

Request body

{
    "xml": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "xml": {
            "type": "string"
        }
    },
    "required": [
        "xml"
    ]
}

Responses

{
    "config": {
        "entityId": "string",
        "idpSsoUrl": "string",
        "idpCertificate": "string"
    },
    "prefilled": {
        "idpSsoUrl": "string",
        "idpCertificate": "string",
        "spEntityId": "string"
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "config": {
            "type": "object",
            "properties": {
                "entityId": {
                    "type": "string",
                    "nullable": true
                },
                "idpSsoUrl": {
                    "type": "string",
                    "nullable": true
                },
                "idpCertificate": {
                    "type": "string",
                    "nullable": true
                }
            },
            "additionalProperties": true
        },
        "prefilled": {
            "type": "object",
            "properties": {
                "idpSsoUrl": {
                    "type": "string",
                    "nullable": true
                },
                "idpCertificate": {
                    "type": "string",
                    "nullable": true
                },
                "spEntityId": {
                    "type": "string",
                    "nullable": true
                }
            },
            "additionalProperties": true
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

GET /dashboard/sso/providers/reserve-id

Reserve SSO provider ID

Description

Returns a pre-generated provider ID and derived callback/metadata URLs

Responses

{
    "id": "string",
    "callbackUrl": "string",
    "metadataUrl": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        },
        "callbackUrl": {
            "type": "string"
        },
        "metadataUrl": {
            "type": "string"
        }
    }
}

GET /dashboard/sso/providers/enabled

List enabled SSO providers

Description

Returns all enabled SSO providers — used by the login page

Responses

{
    "data": [
        {}
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {},
                "additionalProperties": true
            }
        }
    }
}

GET /dashboard/sso/providers

List SSO providers

Description

Returns all configured SSO providers

Responses

{
    "data": [
        {}
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {},
                "additionalProperties": true
            }
        }
    }
}

POST /dashboard/sso/providers

Create SSO provider

Description

Creates a new SSO provider configuration

Request body

{
    "name": "string",
    "protocol": "oidc",
    "idpType": "entra",
    "enabled": true,
    "config": {},
    "spPrivateKey": "string",
    "spCertificate": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        },
        "protocol": {
            "type": "string",
            "enum": [
                "oidc",
                "saml"
            ]
        },
        "idpType": {
            "type": "string",
            "enum": [
                "entra",
                "okta",
                "google",
                "aws-cognito",
                "custom"
            ]
        },
        "enabled": {
            "type": "boolean"
        },
        "config": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "spPrivateKey": {
            "type": "string"
        },
        "spCertificate": {
            "type": "string"
        }
    }
}

Responses

{
    "id": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        }
    },
    "additionalProperties": true
}

GET /dashboard/sso/providers/{id}

Get SSO provider

Description

Returns a single SSO provider by ID

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

{
    "id": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        }
    },
    "additionalProperties": true
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

PATCH /dashboard/sso/providers/{id}

Update SSO provider

Description

Updates an existing SSO provider configuration

Input parameters

Parameter In Type Default Nullable Description
id path string No

Request body

{
    "name": "string",
    "enabled": true,
    "config": {},
    "spPrivateKey": "string",
    "spCertificate": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        },
        "enabled": {
            "type": "boolean"
        },
        "config": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "spPrivateKey": {
            "type": "string"
        },
        "spCertificate": {
            "type": "string"
        }
    }
}

Responses

{
    "id": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        }
    },
    "additionalProperties": true
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

DELETE /dashboard/sso/providers/{id}

Delete SSO provider

Description

Deletes an SSO provider configuration

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

Schema of the response body
{
    "type": "object",
    "properties": {}
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

POST /dashboard/sso/providers/parse-metadata

Parse IdP SAML metadata

Description

Extracts config fields from a raw IdP SAML metadata XML document

Request body

{
    "xml": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "xml": {
            "type": "string"
        }
    }
}

Responses

{
    "config": {},
    "prefilled": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "config": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "prefilled": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

POST /auth/search/keyring/{keyringname}/apikey

Input parameters

Parameter In Type Default Nullable Description
cursor query string No Cursor for pagination
id query string No If set to 'true', will treat the keyringname as a KeyRing ID
keyringname path string No The KeyRing name
limit query integer No Maximum number of API keys to return (default: 100, max: 10000)

Request body

{
    "accountId": "string",
    "active": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "accountId": {
            "type": "string",
            "description": "Filter by Account ID"
        },
        "active": {
            "type": "boolean",
            "description": "Filter by active status (true/false)"
        }
    }
}

Responses

{
    "data": [
        {
            "keyid": "string",
            "active": true,
            "accountId": "string",
            "references": {
                "accountId": "string"
            },
            "flags": [
                "string"
            ],
            "maxUses": 0,
            "countedActions": [
                "string"
            ],
            "autoDisableOnLimit": true,
            "currentUses": 0,
            "validFrom": "string",
            "validUntil": "string",
            "props": {},
            "createdAt": "string",
            "updatedAt": "string"
        }
    ],
    "pagination": {
        "limit": 10.12,
        "count": 10.12,
        "hasMore": true,
        "nextCursor": "string"
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "$ref": "#/components/schemas/auth.safeapikey"
            }
        },
        "pagination": {
            "type": "object",
            "properties": {
                "limit": {
                    "type": "number"
                },
                "count": {
                    "type": "number"
                },
                "hasMore": {
                    "type": "boolean"
                },
                "nextCursor": {
                    "type": "string"
                }
            },
            "required": [
                "limit",
                "count",
                "hasMore"
            ],
            "additionalProperties": true
        }
    }
}

POST /auth/search/activity

Input parameters

Parameter In Type Default Nullable Description
cursor query string No Cursor for next page (from previous response)
limit query integer No Page size (max 10000, default 100)

Request body

{
    "accountUid": "string",
    "accountId": "string",
    "action": "string",
    "ring": "string",
    "start": 0,
    "end": 0,
    "keyid": "string",
    "valid": true,
    "props": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "accountUid": {
            "type": "string",
            "description": "The Account UID"
        },
        "accountId": {
            "type": "string",
            "description": "The Account ID"
        },
        "action": {
            "type": "string",
            "description": "The Activity Action"
        },
        "ring": {
            "type": "string",
            "description": "The Key Ring name"
        },
        "start": {
            "type": "integer",
            "description": "Start timestamp (epoch UTC)"
        },
        "end": {
            "type": "integer",
            "description": "End timestamp (epoch UTC)"
        },
        "keyid": {
            "type": "string"
        },
        "valid": {
            "type": "boolean",
            "description": "Whether or not the Activity was granted or denied"
        },
        "props": {
            "type": "object",
            "properties": {},
            "description": "Search for activities based on any props that are set"
        }
    }
}

Responses

{
    "data": [
        {
            "id": "string",
            "keyid": "string",
            "createdAt": 0,
            "props": {}
        }
    ],
    "pagination": {
        "limit": 0,
        "count": 0,
        "hasMore": true,
        "nextCursor": "string"
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "$ref": "#/components/schemas/auth.activity"
            }
        },
        "pagination": {
            "type": "object",
            "properties": {
                "limit": {
                    "type": "integer"
                },
                "count": {
                    "type": "integer"
                },
                "hasMore": {
                    "type": "boolean"
                },
                "nextCursor": {
                    "type": "string"
                }
            },
            "required": [
                "limit",
                "count",
                "hasMore"
            ]
        }
    }
}

POST /auth/search/accounts

Input parameters

Parameter In Type Default Nullable Description
cursor query string No Cursor for next page
limit query integer No Page size (max 10000, default 100)

Request body

{
    "uid": "string",
    "notes": "string",
    "keyringName": "string",
    "keyringId": "string",
    "includeKeyCounts": true,
    "includeDeactivated": true,
    "status": "string",
    "sortBy": "string",
    "sortOrder": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "uid": {
            "type": "string",
            "description": "Substring match against uid (case-insensitive)"
        },
        "notes": {
            "type": "string",
            "description": "Substring match against notes (case-insensitive)"
        },
        "keyringName": {
            "type": "string",
            "description": "Filter to accounts with API keys that have access to this keyring (by name)"
        },
        "keyringId": {
            "type": "string",
            "description": "Filter to accounts with API keys that have access to this keyring (by ID)"
        },
        "includeKeyCounts": {
            "type": "boolean",
            "description": "Include apiKeyCount in each result"
        },
        "includeDeactivated": {
            "type": "boolean",
            "description": "When true, deactivated accounts are included in results"
        },
        "status": {
            "type": "string",
            "description": "Restrict results to accounts with this status (active|deactivated)"
        },
        "sortBy": {
            "type": "string",
            "description": "Column to sort by: uid, createdAt, or updatedAt (default: createdAt)"
        },
        "sortOrder": {
            "type": "string",
            "description": "Sort direction: asc or desc (default: asc)"
        }
    }
}

Responses

{
    "data": [
        {
            "id": "string",
            "uid": "string",
            "notes": "string",
            "status": "string",
            "props": {},
            "createdAt": "string",
            "updatedAt": "string",
            "apiKeyCount": 0
        }
    ],
    "pagination": {
        "limit": 0,
        "count": 0,
        "hasMore": true,
        "nextCursor": "string",
        "totalCount": 0
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "$ref": "#/components/schemas/auth.account"
            }
        },
        "pagination": {
            "type": "object",
            "properties": {
                "limit": {
                    "type": "integer"
                },
                "count": {
                    "type": "integer"
                },
                "hasMore": {
                    "type": "boolean"
                },
                "nextCursor": {
                    "type": "string"
                },
                "totalCount": {
                    "type": "integer"
                }
            },
            "required": [
                "limit",
                "count",
                "hasMore"
            ]
        }
    }
}

Activity


GET /auth/activity/{id}

Input parameters

Parameter In Type Default Nullable Description
id path string No The Activity ID

Responses

{
    "id": "string",
    "keyid": "string",
    "createdAt": 0,
    "props": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        },
        "keyid": {
            "type": "string"
        },
        "createdAt": {
            "type": "integer",
            "description": "Epoch UTC time"
        },
        "props": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        }
    }
}

POST /dashboard/search/activity

Search activity

Description

Searches activity logs

Request body

{
    "filter": {},
    "pagination": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "filter": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "pagination": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    }
}

Responses

{
    "data": [
        {}
    ],
    "pagination": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {},
                "additionalProperties": true
            }
        },
        "pagination": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    },
    "additionalProperties": true
}

GET /dashboard/activity/{id}

Get activity

Description

Returns an activity by ID

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

{
    "id": "string",
    "keyid": "string",
    "createdAt": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        },
        "keyid": {
            "type": "string"
        },
        "createdAt": {
            "type": "string"
        }
    },
    "additionalProperties": true
}

Asym Service


POST /asym/keyrings

Request body

{
    "name": "string",
    "algo": "aes256",
    "props": {},
    "keyProps": {},
    "signing": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        },
        "algo": {
            "type": "string",
            "enum": [
                "aes256"
            ]
        },
        "props": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "keyProps": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "signing": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        }
    },
    "required": [
        "name"
    ]
}

Responses

{
    "ring": {
        "id": "string",
        "name": "string",
        "displayName": "string",
        "activeKey": "string",
        "activeAlgorithm": null,
        "publicKey": "string",
        "createdAt": "string",
        "updatedAt": "string"
    },
    "key": {
        "type": null,
        "id": "string",
        "props": {},
        "keyData": {
            "key": "string"
        }
    },
    "privateKey": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "ring": {
            "$ref": "#/components/schemas/asym.keyring"
        },
        "key": {
            "$ref": "#/components/schemas/asym.key"
        },
        "privateKey": {
            "type": "string",
            "description": "Base64 encoded Private Key that has been generated"
        }
    }
}

GET /asym/keyrings/{ringname}/keys/{keyId}

Input parameters

Parameter In Type Default Nullable Description
id query string No If set to 'true', the ringname will be treated as the KeyRing ID
keyId path string No The Key ID
ringname path string No The KeyRIng name

Responses

{
    "type": null,
    "id": "string",
    "props": {},
    "keyData": {
        "key": "string"
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "type": {
            "enum": [
                "AES256"
            ],
            "description": "The Algorithm this Key is used for"
        },
        "id": {
            "type": "string",
            "description": "The Key ID"
        },
        "props": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true,
            "description": "Any custom properties on this Key"
        },
        "keyData": {
            "$ref": "#/components/schemas/asym.keydata",
            "description": "The Actual Key Data"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

POST /asym/rotate

Request body

{
    "ringname": "string",
    "algo": "aes256"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "ringname": {
            "type": "string",
            "description": "The KeyRing name"
        },
        "algo": {
            "type": "string",
            "enum": [
                "aes256"
            ]
        }
    },
    "required": [
        "ringname"
    ]
}

Responses

{
    "key": {
        "type": null,
        "id": "string",
        "props": {},
        "keyData": {
            "key": "string"
        }
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "key": {
            "$ref": "#/components/schemas/asym.key"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

POST /asym/keyrings/{ring}/certify

Input parameters

Parameter In Type Default Nullable Description
ring path string No The KeyRing id

Request body

{
    "alg": "string",
    "intermediate": [
        {
            "alg": "string",
            "publicKey": "string"
        }
    ],
    "requestedTtlSeconds": 10.12
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "alg": {
            "type": "string",
            "description": "The signature suite label, e.g. 'hybrid:ed25519+ml-dsa-65'"
        },
        "intermediate": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "alg": {
                        "type": "string"
                    },
                    "publicKey": {
                        "type": "string"
                    }
                },
                "required": [
                    "alg",
                    "publicKey"
                ]
            },
            "description": "The intermediate signing key public components"
        },
        "requestedTtlSeconds": {
            "type": "number",
            "description": "Requested intermediate lifetime in seconds (clamped to <= 24h)"
        }
    },
    "required": [
        "alg",
        "intermediate"
    ]
}

Responses

{
    "cert": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "cert": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    }
}

GET /asym/keyrings/{ring}/signing-keyset

Input parameters

Parameter In Type Default Nullable Description
ring path string No The KeyRing id

Responses

{
    "ring": "string",
    "suite": "string",
    "keysets": [
        {}
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "ring": {
            "type": "string"
        },
        "suite": {
            "type": "string"
        },
        "keysets": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {},
                "additionalProperties": true
            }
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

GET /asym/keyrings/{ring}/certs/{iskId}

Input parameters

Parameter In Type Default Nullable Description
iskId path string No The intermediate signing key id
ring path string No The KeyRing id

Responses

{
    "cert": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "cert": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

GET /asym/keyrings/{ring}/config

Input parameters

Parameter In Type Default Nullable Description
ring path string No The KeyRing id

Responses

{
    "ring": "string",
    "config": {},
    "paused": true,
    "effectiveBy": 10.12,
    "immediateVia": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "ring": {
            "type": "string"
        },
        "config": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "paused": {
            "type": "boolean"
        },
        "effectiveBy": {
            "type": "number",
            "description": "Epoch ms when the pause fully takes effect (latest outstanding cert expiry); absent if no outstanding certs"
        },
        "immediateVia": {
            "type": "string",
            "description": "The immediate lever to stop signing now, e.g. 'revoke'"
        }
    }
}

PUT /asym/keyrings/{ring}/config

Input parameters

Parameter In Type Default Nullable Description
ring path string No The KeyRing id

Request body

{
    "config": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "config": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true,
            "description": "The policy patch, e.g. { certifyEnabled, certTTLSeconds }"
        }
    },
    "required": [
        "config"
    ]
}

Responses

{
    "ring": "string",
    "config": {},
    "paused": true,
    "effectiveBy": 10.12,
    "immediateVia": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "ring": {
            "type": "string"
        },
        "config": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "paused": {
            "type": "boolean"
        },
        "effectiveBy": {
            "type": "number",
            "description": "Epoch ms when the pause fully takes effect (latest outstanding cert expiry); absent if no outstanding certs"
        },
        "immediateVia": {
            "type": "string",
            "description": "The immediate lever to stop signing now, e.g. 'revoke'"
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

POST /asym/keyrings/{ring}/rotate-signing-root

Input parameters

Parameter In Type Default Nullable Description
ring path string No The KeyRing id

Request body

{
    "suite": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "suite": {
            "type": "string",
            "description": "Optional suite label for the new root; defaults to the server default suite"
        }
    }
}

Responses

{
    "signing": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "signing": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    }
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

POST /asym/keyrings/{ring}/revoke-signing

Input parameters

Parameter In Type Default Nullable Description
ring path string No The KeyRing id

Responses

{
    "ring": "string",
    "revoked": 10.12,
    "certifyEnabled": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "ring": {
            "type": "string"
        },
        "revoked": {
            "type": "number"
        },
        "certifyEnabled": {
            "type": "boolean"
        }
    }
}

GET /asym/keyrings/{ring}/audit

Input parameters

Parameter In Type Default Nullable Description
cursor query string No Cursor for pagination
limit query number No Maximum number of entries to return (default: 100, max: 10000)
ring path string No The KeyRing id

Responses

{
    "data": [
        {
            "id": "string",
            "ringId": "string",
            "action": "string",
            "actionValid": true,
            "context": {},
            "data": {},
            "createdAt": 10.12
        }
    ],
    "pagination": {
        "limit": 10.12,
        "count": 10.12,
        "hasMore": true,
        "nextCursor": "string",
        "totalCount": 10.12
    }
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "ringId": {
                        "type": "string"
                    },
                    "action": {
                        "type": "string"
                    },
                    "actionValid": {
                        "type": "boolean"
                    },
                    "context": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": true
                    },
                    "data": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": true
                    },
                    "createdAt": {
                        "type": "number"
                    }
                }
            }
        },
        "pagination": {
            "type": "object",
            "properties": {
                "limit": {
                    "type": "number"
                },
                "count": {
                    "type": "number"
                },
                "hasMore": {
                    "type": "boolean"
                },
                "nextCursor": {
                    "type": "string"
                },
                "totalCount": {
                    "type": "number"
                }
            },
            "required": [
                "limit",
                "count",
                "hasMore"
            ],
            "additionalProperties": true
        }
    }
}

POST /asym/keyrings/configs

Request body

{
    "rings": [
        "string"
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "rings": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "The KeyRing ids to resolve policies for"
        }
    },
    "required": [
        "rings"
    ]
}

Responses

{
    "configs": [
        {
            "ring": "string",
            "config": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "configs": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "ring": {
                        "type": "string"
                    },
                    "config": {
                        "type": "object",
                        "properties": {},
                        "additionalProperties": true
                    }
                }
            }
        }
    }
}

Health


GET /dashboard/healthz

Health check

Description

Returns the health status of the dashboard-api

Responses

{
    "status": "string",
    "service": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "status": {
            "type": "string"
        },
        "service": {
            "type": "string"
        }
    }
}

Keyrings


GET /dashboard/keyrings

List keyrings

Description

Returns a list of all keyrings

Input parameters

Parameter In Type Default Nullable Description
cursor query string No Pagination cursor
limit query integer No Page size
sortBy query string No Column to sort by: name or createdAt (default: createdAt)
sortOrder query string No Sort direction: asc or desc (default: asc)

Responses

{
    "keyrings": [
        {}
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "keyrings": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {},
                "additionalProperties": true
            }
        }
    },
    "additionalProperties": true
}

POST /dashboard/keyrings

Create keyring

Description

Creates a new keyring

Request body

{
    "name": "string",
    "publicKey": "string",
    "props": {},
    "keyProps": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        },
        "publicKey": {
            "type": "string"
        },
        "props": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "keyProps": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    }
}

Responses

{
    "ring": {},
    "key": {},
    "privateKey": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "ring": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "key": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "privateKey": {
            "type": "string"
        }
    },
    "additionalProperties": true
}

GET /dashboard/keyrings/{id}

Get keyring

Description

Returns a keyring by ID

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

{
    "ring": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "ring": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    },
    "additionalProperties": true
}

DELETE /dashboard/keyrings/{id}

Delete keyring

Description

Deletes a keyring

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

{
    "success": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "success": {
            "type": "boolean"
        }
    }
}

GET /dashboard/keyrings/{id}/keys

Get keyring keys

Description

Returns all keys in a keyring

Input parameters

Parameter In Type Default Nullable Description
cursor query string No
id query string No If set to 'true' will treat the id as the KeyRing ID
id path string No
limit query number No

Responses

{
    "data": [
        {}
    ],
    "pagination": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {},
                "additionalProperties": true
            }
        },
        "pagination": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    },
    "additionalProperties": true
}

POST /dashboard/rotate

Rotate keys

Description

Rotates keys in a keyring

Request body

{
    "ringname": "string",
    "algo": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "ringname": {
            "type": "string"
        },
        "algo": {
            "type": "string"
        }
    }
}

Responses

{
    "key": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "key": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    },
    "additionalProperties": true
}

POST /dashboard/asym/keyrings

Create asymmetric keyring

Description

Creates a new asymmetric keyring

Request body

{
    "name": "string",
    "algo": "string",
    "props": {},
    "keyProps": {},
    "signing": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        },
        "algo": {
            "type": "string"
        },
        "props": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "keyProps": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "signing": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    }
}

Responses

{
    "ring": {},
    "key": {},
    "privateKey": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "ring": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "key": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "privateKey": {
            "type": "string"
        }
    },
    "additionalProperties": true
}

GET /dashboard/keyrings/config

Get keyring config

Description

Returns configuration for a keyring

Input parameters

Parameter In Type Default Nullable Description
ringname query string No The KeyRing name

Responses

{
    "config": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "config": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    },
    "additionalProperties": true
}

PUT /dashboard/keyrings/config

Update keyring config

Description

Updates a keyring's key-server config (signing enforcement, etc.)

Request body

{
    "ringname": "string",
    "config": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "ringname": {
            "type": "string"
        },
        "config": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    }
}

Responses

{
    "config": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "config": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    },
    "additionalProperties": true
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

GET /dashboard/keyrings/{id}/signing-policy

Get signing policy

Description

Returns a keyring's signing policy (certifyEnabled / certTTLSeconds)

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

{
    "ring": "string",
    "config": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "ring": {
            "type": "string"
        },
        "config": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    },
    "additionalProperties": true
}

PUT /dashboard/keyrings/{id}/signing-policy

Update signing policy

Description

Updates a keyring's signing policy (certifyEnabled / certTTLSeconds); shallow-merged server-side

Input parameters

Parameter In Type Default Nullable Description
id path string No

Request body

{
    "config": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "config": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    }
}

Responses

{
    "ring": "string",
    "config": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "ring": {
            "type": "string"
        },
        "config": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    },
    "additionalProperties": true
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

POST /dashboard/keyrings/signing-policies

Batch get signing policies

Description

Resolves signing policies (certifyEnabled / certTTLSeconds) for a set of keyring ids in one call

Request body

{
    "rings": [
        "string"
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "rings": {
            "type": "array",
            "items": {
                "type": "string"
            }
        }
    }
}

Responses

{
    "configs": [
        {}
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "configs": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {},
                "additionalProperties": true
            }
        }
    },
    "additionalProperties": true
}

GET /dashboard/keyrings/{ringId}/signing-audit

Get signing audit log

Description

Returns a keyring's control-plane signing audit events (certify, config changes, rotations, revocations), newest first

Input parameters

Parameter In Type Default Nullable Description
cursor query string No Pagination cursor
limit query integer No Page size (default: 100, max: 10000)
ringId path string No

Responses

{
    "data": [
        {}
    ],
    "pagination": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {},
                "additionalProperties": true
            }
        },
        "pagination": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    },
    "additionalProperties": true
}

Analytics


GET /dashboard/analytics/summary

Get analytics summary

Description

Returns aggregated KPI summary stats

Input parameters

Parameter In Type Default Nullable Description
accountId query string No
timeRange query string No

Responses

{
    "timeRange": "string",
    "startTime": "string",
    "endTime": "string",
    "totalActivities": 0,
    "cryptoOperations": 0,
    "successfulOperations": 0,
    "failedOperations": 0,
    "encryptOperations": 0,
    "decryptOperations": 0,
    "rotateOperations": 0,
    "aksOperations": 0,
    "uniqueAccounts": 0,
    "uniqueKeyrings": 0,
    "uniqueApiKeys": 0,
    "successRate": 10.12,
    "lastUpdated": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "timeRange": {
            "type": "string"
        },
        "startTime": {
            "type": "string"
        },
        "endTime": {
            "type": "string"
        },
        "totalActivities": {
            "type": "integer"
        },
        "cryptoOperations": {
            "type": "integer"
        },
        "successfulOperations": {
            "type": "integer"
        },
        "failedOperations": {
            "type": "integer"
        },
        "encryptOperations": {
            "type": "integer"
        },
        "decryptOperations": {
            "type": "integer"
        },
        "rotateOperations": {
            "type": "integer"
        },
        "aksOperations": {
            "type": "integer"
        },
        "uniqueAccounts": {
            "type": "integer"
        },
        "uniqueKeyrings": {
            "type": "integer"
        },
        "uniqueApiKeys": {
            "type": "integer"
        },
        "successRate": {
            "type": "number"
        },
        "lastUpdated": {
            "type": "string"
        }
    }
}

GET /dashboard/analytics/hourly

Get hourly distribution

Description

Returns 24-hour activity distribution

Input parameters

Parameter In Type Default Nullable Description
accountId query string No
timeRange query string No

Responses

{
    "timeRange": "string",
    "data": [
        {
            "hour": "string",
            "total": 0,
            "successful": 0,
            "failed": 0
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "timeRange": {
            "type": "string"
        },
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "hour": {
                        "type": "string"
                    },
                    "total": {
                        "type": "integer"
                    },
                    "successful": {
                        "type": "integer"
                    },
                    "failed": {
                        "type": "integer"
                    }
                }
            }
        }
    }
}

GET /dashboard/analytics/accounts

Get top accounts

Description

Returns top accounts by activity volume

Input parameters

Parameter In Type Default Nullable Description
limit query integer No
timeRange query string No

Responses

{
    "timeRange": "string",
    "data": [
        {
            "accountId": "string",
            "accountName": "string",
            "operations": 0,
            "encryptions": 0,
            "decryptions": 0,
            "rotations": 0,
            "successRate": 10.12,
            "trend": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "timeRange": {
            "type": "string"
        },
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "accountId": {
                        "type": "string"
                    },
                    "accountName": {
                        "type": "string",
                        "nullable": true
                    },
                    "operations": {
                        "type": "integer"
                    },
                    "encryptions": {
                        "type": "integer"
                    },
                    "decryptions": {
                        "type": "integer"
                    },
                    "rotations": {
                        "type": "integer"
                    },
                    "successRate": {
                        "type": "number"
                    },
                    "trend": {
                        "type": "string"
                    }
                }
            }
        }
    }
}

GET /dashboard/analytics/actions

Get action distribution

Description

Returns distribution of action types

Input parameters

Parameter In Type Default Nullable Description
accountId query string No
limit query integer No
timeRange query string No

Responses

{
    "timeRange": "string",
    "data": [
        {
            "action": "string",
            "count": 0,
            "percentage": 10.12
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "timeRange": {
            "type": "string"
        },
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "action": {
                        "type": "string"
                    },
                    "count": {
                        "type": "integer"
                    },
                    "percentage": {
                        "type": "number"
                    }
                }
            }
        }
    }
}

GET /dashboard/analytics/timeline

Get timeline data

Description

Returns time-series activity data

Input parameters

Parameter In Type Default Nullable Description
accountId query string No
granularity query string No
timeRange query string No

Responses

{
    "timeRange": "string",
    "granularity": "string",
    "data": [
        {
            "timestamp": "string",
            "total": 0,
            "successful": 0,
            "failed": 0,
            "encryptions": 0,
            "decryptions": 0,
            "rotations": 0
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "timeRange": {
            "type": "string"
        },
        "granularity": {
            "type": "string"
        },
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "timestamp": {
                        "type": "string"
                    },
                    "total": {
                        "type": "integer"
                    },
                    "successful": {
                        "type": "integer"
                    },
                    "failed": {
                        "type": "integer"
                    },
                    "encryptions": {
                        "type": "integer"
                    },
                    "decryptions": {
                        "type": "integer"
                    },
                    "rotations": {
                        "type": "integer"
                    }
                }
            }
        }
    }
}

GET /dashboard/analytics/assets

Get asset stats

Description

Returns aggregated asset statistics

Responses

{
    "totalAssets": 0,
    "recentAssets": 0,
    "activeAssets": 0,
    "unConnectedAssets": 0,
    "connectedAssets": 0,
    "avgParentsPerAsset": 10.12,
    "maxParentsPerAsset": 0,
    "lastUpdated": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "totalAssets": {
            "type": "integer"
        },
        "recentAssets": {
            "type": "integer"
        },
        "activeAssets": {
            "type": "integer"
        },
        "unConnectedAssets": {
            "type": "integer"
        },
        "connectedAssets": {
            "type": "integer"
        },
        "avgParentsPerAsset": {
            "type": "number"
        },
        "maxParentsPerAsset": {
            "type": "integer"
        },
        "lastUpdated": {
            "type": "string"
        }
    }
}

GET /dashboard/analytics/assets/trend

Get asset creation trend

Description

Returns daily asset creation counts

Input parameters

Parameter In Type Default Nullable Description
timeRange query string No

Responses

{
    "timeRange": "string",
    "data": [
        {
            "date": "string",
            "count": 0,
            "label": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "timeRange": {
            "type": "string"
        },
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "date": {
                        "type": "string"
                    },
                    "count": {
                        "type": "integer"
                    },
                    "label": {
                        "type": "string"
                    }
                }
            }
        }
    }
}

GET /dashboard/analytics/assets/activity

Get asset activity trend

Description

Returns daily asset activity counts from asset_activity table

Input parameters

Parameter In Type Default Nullable Description
timeRange query string No

Responses

{
    "timeRange": "string",
    "data": [
        {
            "date": "string",
            "count": 0,
            "label": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "timeRange": {
            "type": "string"
        },
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "date": {
                        "type": "string"
                    },
                    "count": {
                        "type": "integer"
                    },
                    "label": {
                        "type": "string"
                    }
                }
            }
        }
    }
}

GET /dashboard/analytics/keyrings/{name}/timeline

Get keyring activity timeline

Description

Returns time-series activity data for a specific keyring

Input parameters

Parameter In Type Default Nullable Description
granularity query string No
name path string No
timeRange query string No

Responses

{
    "timeRange": "string",
    "granularity": "string",
    "data": [
        {
            "timestamp": "string",
            "total": 0,
            "successful": 0,
            "failed": 0,
            "encryptions": 0,
            "decryptions": 0,
            "rotations": 0
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "timeRange": {
            "type": "string"
        },
        "granularity": {
            "type": "string"
        },
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "timestamp": {
                        "type": "string"
                    },
                    "total": {
                        "type": "integer"
                    },
                    "successful": {
                        "type": "integer"
                    },
                    "failed": {
                        "type": "integer"
                    },
                    "encryptions": {
                        "type": "integer"
                    },
                    "decryptions": {
                        "type": "integer"
                    },
                    "rotations": {
                        "type": "integer"
                    }
                }
            }
        }
    }
}

Stats


GET /dashboard/stats/counts

Get system counts

Description

Returns total entity counts across the platform, independent of filters

Responses

{
    "keyrings": 0,
    "accounts": 0,
    "users": 0,
    "assets": 0,
    "activities": 0,
    "apiKeys": 0,
    "updatedAt": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "keyrings": {
            "type": "integer"
        },
        "accounts": {
            "type": "integer"
        },
        "users": {
            "type": "integer"
        },
        "assets": {
            "type": "integer"
        },
        "activities": {
            "type": "integer"
        },
        "apiKeys": {
            "type": "integer"
        },
        "updatedAt": {
            "type": "string"
        }
    }
}

Integrations


GET /dashboard/integrations

List integrations

Description

Returns integrations joined with delivery state, paginated

Responses

{
    "data": [
        {}
    ],
    "pagination": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "data": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {},
                "additionalProperties": true
            }
        },
        "pagination": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    }
}

POST /dashboard/integrations

Create integration

Description

Creates an activity-export integration. Webhook integrations return their signing secret exactly once. A provider the catalogue reports as not deliverable is refused with 400 and the reason.

Request body

{
    "name": "string",
    "type": "webhook",
    "provider": "string",
    "config": {},
    "filters": {},
    "headers": {},
    "oauth": {},
    "credential": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        },
        "type": {
            "type": "string",
            "enum": [
                "webhook",
                "otlp"
            ]
        },
        "provider": {
            "type": "string"
        },
        "config": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "filters": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "headers": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "oauth": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "credential": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The operator credential as { kind, config }"
        }
    },
    "required": [
        "name",
        "type",
        "config"
    ]
}

Responses

{
    "id": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        }
    },
    "additionalProperties": true
}

GET /dashboard/integrations/providers

List providers

Description

Returns the destination catalogue used to build the create form. deliverable: true entries can be configured; deliverable: false entries name a destination measured as unable to receive our exports and carry reason, remedy and measuredAgainst, so the form can refuse one before the operator supplies a URL.

Responses

{
    "providers": [
        {
            "id": "string",
            "label": "string",
            "deliverable": true,
            "transports": [
                "string"
            ],
            "credential": "string",
            "operatorSuppliesUrl": true,
            "reason": "string",
            "remedy": "string",
            "measuredAgainst": "string",
            "docsPath": "string",
            "fields": [
                {
                    "name": "string",
                    "label": "string",
                    "kind": "string",
                    "required": true,
                    "options": [
                        "string"
                    ],
                    "help": "string"
                }
            ]
        }
    ],
    "vendors": [
        {
            "id": "string",
            "label": "string",
            "provider": "string",
            "transport": "string",
            "reach": "string",
            "confidence": "string",
            "measuredAgainst": "string",
            "urlHint": "string",
            "authHeader": "string",
            "note": "string",
            "docsPath": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "providers": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "label": {
                        "type": "string"
                    },
                    "deliverable": {
                        "type": "boolean"
                    },
                    "transports": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "credential": {
                        "type": "string"
                    },
                    "operatorSuppliesUrl": {
                        "type": "boolean"
                    },
                    "reason": {
                        "type": "string"
                    },
                    "remedy": {
                        "type": "string"
                    },
                    "measuredAgainst": {
                        "type": "string"
                    },
                    "docsPath": {
                        "type": "string"
                    },
                    "fields": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "label": {
                                    "type": "string"
                                },
                                "kind": {
                                    "type": "string"
                                },
                                "required": {
                                    "type": "boolean"
                                },
                                "options": {
                                    "type": "array",
                                    "items": {
                                        "type": "string"
                                    }
                                },
                                "help": {
                                    "type": "string"
                                }
                            },
                            "additionalProperties": true
                        }
                    }
                },
                "additionalProperties": true
            }
        },
        "vendors": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "label": {
                        "type": "string"
                    },
                    "provider": {
                        "type": "string"
                    },
                    "transport": {
                        "type": "string"
                    },
                    "reach": {
                        "type": "string"
                    },
                    "confidence": {
                        "type": "string"
                    },
                    "measuredAgainst": {
                        "type": "string"
                    },
                    "urlHint": {
                        "type": "string"
                    },
                    "authHeader": {
                        "type": "string"
                    },
                    "note": {
                        "type": "string"
                    },
                    "docsPath": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            }
        }
    },
    "additionalProperties": true
}

GET /dashboard/integrations/{id}

Get integration

Description

Returns a single integration by ID

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

{
    "id": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        }
    },
    "additionalProperties": true
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

PATCH /dashboard/integrations/{id}

Update integration

Description

Updates an integration, and rotates OTLP auth headers; enabled:true resumes a paused export. RE-POINTING: the destination moves when provider changes, when the ORIGIN of config.url changes FOR A PROVIDER WHOSE OPERATOR SUPPLIES THE URL, or when a config field the provider derives its endpoint from changes (New Relic's region) — and a re-point must supply headers in the same request ({} clears them), because stored auth headers are not carried to a new destination. The config must be valid for the new provider; the cursor and signing secrets are preserved.

Input parameters

Parameter In Type Default Nullable Description
id path string No

Request body

{
    "name": "string",
    "enabled": true,
    "config": {},
    "filters": {},
    "headers": {},
    "provider": "string",
    "credential": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        },
        "enabled": {
            "type": "boolean"
        },
        "config": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "filters": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "headers": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "provider": {
            "type": "string"
        },
        "credential": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "nullable": true,
            "description": "The operator credential as { kind, config }, or null to clear it"
        }
    }
}

Responses

{
    "id": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "id": {
            "type": "string"
        }
    },
    "additionalProperties": true
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

DELETE /dashboard/integrations/{id}

Delete integration

Description

Deletes an integration and its delivery state

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

Schema of the response body
{
    "type": "object",
    "properties": {}
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

GET /dashboard/integrations/{id}/secrets

List signing secrets

Description

Returns secret metadata (keyId, createdAt) — never material

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

{
    "integrationId": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "integrationId": {
            "type": "string"
        }
    },
    "additionalProperties": true
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

POST /dashboard/integrations/{id}/secrets

Add signing secret

Description

Adds a signing secret and returns it exactly once (zero-downtime rotation)

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

{
    "integrationId": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "integrationId": {
            "type": "string"
        }
    },
    "additionalProperties": true
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

POST /dashboard/integrations/{id}/replay

Replay from timestamp

Description

Rewinds the export cursor — recovery, backfill, or moving past an undeliverable event

Input parameters

Parameter In Type Default Nullable Description
id path string No

Request body

{
    "from": 10.12
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "from": {
            "type": "number"
        }
    },
    "required": [
        "from"
    ]
}

Responses

Schema of the response body
{
    "type": "object",
    "properties": {}
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

DELETE /dashboard/integrations/{id}/secrets/{keyId}

Retire signing secret

Description

Retires a signing secret; refuses to remove the last one

Input parameters

Parameter In Type Default Nullable Description
id path string No
keyId path string No

Responses

Schema of the response body
{
    "type": "object",
    "properties": {}
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

GET /dashboard/integrations/{id}/headers

List auth headers

Description

Returns header NAMES only. Values are credentials and never leave the integration service, exactly as with signing secrets — this is what lets the form show what is configured without being able to read it.

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

{
    "names": [
        "string"
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "names": {
            "type": "array",
            "items": {
                "type": "string"
            }
        }
    },
    "additionalProperties": true
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

PUT /dashboard/integrations/{id}/headers/{name}

Set auth header

Description

Sets ONE header, leaving the others untouched. Use PATCH /integrations/:id with a headers object to replace the whole set instead.

Input parameters

Parameter In Type Default Nullable Description
id path string No
name path string No

Request body

{
    "value": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "value": {
            "type": "string"
        }
    },
    "required": [
        "value"
    ]
}

Responses

{
    "ok": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "ok": {
            "type": "boolean"
        }
    },
    "additionalProperties": true
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

DELETE /dashboard/integrations/{id}/headers/{name}

Remove auth header

Description

Removes ONE header. removed: false means it was not set, which is distinct from a 404 meaning the integration is not there.

Input parameters

Parameter In Type Default Nullable Description
id path string No
name path string No

Responses

{
    "removed": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "removed": {
            "type": "boolean"
        }
    },
    "additionalProperties": true
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

GET /dashboard/integrations/{id}/oauth

Read OAuth client

Description

Returns the OAuth2 client WITHOUT its secret. secretSet says whether one is stored; the secret never leaves the integration service, exactly as with header values and signing secrets. Answers { configured: false } when there is no client.

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

{
    "tokenUrl": "string",
    "clientId": "string",
    "scope": "string",
    "secretSet": true,
    "configured": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "tokenUrl": {
            "type": "string"
        },
        "clientId": {
            "type": "string"
        },
        "scope": {
            "type": "string"
        },
        "secretSet": {
            "type": "boolean"
        },
        "configured": {
            "type": "boolean"
        }
    },
    "additionalProperties": true
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

PUT /dashboard/integrations/{id}/oauth

Replace OAuth client

Description

Replaces the OAuth2 client whole — there is no per-field merge, because a clientId from one tenant beside a clientSecret from another is a broken credential rather than a partial one. Any cached access token is discarded with it, so a rotated secret cannot keep presenting a token minted from the old client.

Input parameters

Parameter In Type Default Nullable Description
id path string No

Request body

{
    "oauth": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "oauth": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    },
    "required": [
        "oauth"
    ]
}

Responses

{
    "ok": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "ok": {
            "type": "boolean"
        }
    },
    "additionalProperties": true
}

{
    "message": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "message": {
            "type": "string"
        }
    }
}

POST /dashboard/integrations/{id}/test

Test integration

Description

Fires one synthetic event through the real channel without touching state

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

{
    "ok": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "ok": {
            "type": "boolean"
        }
    },
    "additionalProperties": true
}

GET /integrations/providers

List providers

Description

Returns the destination catalogue. Every entry carries deliverable: true entries describe a destination that can be configured (its transports, operator-supplied fields and documentation anchor); false entries name a destination we have measured as unable to receive our exports, and carry reason, remedy and the exact measuredAgainst product the finding rests on. Both are returned by design — the second list is what lets a create form refuse a known-bad destination before the operator supplies a URL. Static; safe to cache client-side for the life of a page.

Responses

{
    "providers": [
        {
            "id": "string",
            "label": "string",
            "deliverable": true,
            "transports": [
                "string"
            ],
            "credential": "string",
            "operatorSuppliesUrl": true,
            "reason": "string",
            "remedy": "string",
            "measuredAgainst": "string",
            "docsPath": "string",
            "fields": [
                {
                    "name": "string",
                    "label": "string",
                    "kind": "string",
                    "required": true,
                    "options": [
                        "string"
                    ],
                    "help": "string"
                }
            ]
        }
    ],
    "vendors": [
        {
            "id": "string",
            "label": "string",
            "provider": "string",
            "transport": "string",
            "reach": "string",
            "confidence": "string",
            "measuredAgainst": "string",
            "urlHint": "string",
            "authHeader": "string",
            "note": "string",
            "docsPath": "string"
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "providers": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "label": {
                        "type": "string"
                    },
                    "deliverable": {
                        "type": "boolean"
                    },
                    "transports": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "credential": {
                        "type": "string"
                    },
                    "operatorSuppliesUrl": {
                        "type": "boolean"
                    },
                    "reason": {
                        "type": "string"
                    },
                    "remedy": {
                        "type": "string"
                    },
                    "measuredAgainst": {
                        "type": "string"
                    },
                    "docsPath": {
                        "type": "string"
                    },
                    "fields": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "label": {
                                    "type": "string"
                                },
                                "kind": {
                                    "type": "string"
                                },
                                "required": {
                                    "type": "boolean"
                                },
                                "options": {
                                    "type": "array",
                                    "items": {
                                        "type": "string"
                                    }
                                },
                                "help": {
                                    "type": "string"
                                }
                            },
                            "additionalProperties": true
                        }
                    }
                },
                "additionalProperties": true
            }
        },
        "vendors": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "label": {
                        "type": "string"
                    },
                    "provider": {
                        "type": "string"
                    },
                    "transport": {
                        "type": "string"
                    },
                    "reach": {
                        "type": "string"
                    },
                    "confidence": {
                        "type": "string"
                    },
                    "measuredAgainst": {
                        "type": "string"
                    },
                    "urlHint": {
                        "type": "string"
                    },
                    "authHeader": {
                        "type": "string"
                    },
                    "note": {
                        "type": "string"
                    },
                    "docsPath": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            }
        }
    },
    "additionalProperties": true
}

POST /integrations

Create integration

Description

Creates an activity-export integration (webhook or OTLP). Webhook integrations return their first signing secret exactly once, in this response.

Request body

{
    "name": "string",
    "type": "webhook",
    "provider": "string",
    "config": {},
    "filters": {},
    "headers": {},
    "oauth": {},
    "credential": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        },
        "type": {
            "type": "string",
            "enum": [
                "webhook",
                "otlp"
            ]
        },
        "provider": {
            "type": "string"
        },
        "config": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "filters": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "headers": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "oauth": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "credential": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The operator credential as { kind, config }"
        }
    },
    "required": [
        "name",
        "type",
        "config"
    ]
}

GET /integrations

List integrations

Description

Returns integrations joined with delivery state, paginated

Input parameters

Parameter In Type Default Nullable Description
name query string No Filters to integrations with this name, ignoring case. May match more than one.

GET /integrations/{id}

Get integration

Description

Returns a single integration by ID (never includes secrets)

Input parameters

Parameter In Type Default Nullable Description
id path string No

PATCH /integrations/{id}

Update integration

Description

Updates name/enabled/config/filters/provider, and rotates auth headers (either transport). Setting enabled:true clears a pause and resumes delivery from the preserved cursor. RE-POINTING: the destination moves when provider changes, when the ORIGIN of config.url changes for a provider whose operator supplies the URL, or when a config field the provider derives its endpoint from changes (New Relic's region). Any of those refuses the patch unless headers is supplied in the same request ({} clears them), because stored auth headers are not carried to a destination the operator has not just named; the same applies to a stored AWS SigV4 credential and credential. A cached OAuth token is discarded on a re-point rather than refused. The config must be valid for the NEW provider, which must be deliverable and must support the integration's existing transport type. The export cursor and any signing secrets are preserved.

Input parameters

Parameter In Type Default Nullable Description
id path string No

Request body

{
    "name": "string",
    "enabled": true,
    "config": {},
    "filters": {},
    "headers": {},
    "credential": {},
    "provider": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        },
        "enabled": {
            "type": "boolean"
        },
        "config": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "filters": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "headers": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        },
        "credential": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "nullable": true,
            "description": "The operator credential as { kind, config }, or null to clear it"
        },
        "provider": {
            "type": "string"
        }
    }
}

DELETE /integrations/{id}

Delete integration

Description

Deletes an integration and its delivery state

Input parameters

Parameter In Type Default Nullable Description
id path string No

POST /integrations/{id}/secrets

Add signing secret

Description

Adds a signing secret and returns it exactly once. Deliveries immediately carry signatures from every non-expired secret — the zero-downtime half of rotation.

Input parameters

Parameter In Type Default Nullable Description
id path string No

GET /integrations/{id}/secrets

List signing secrets

Description

Returns secret METADATA only (keyId, createdAt, expiresAt) — never material

Input parameters

Parameter In Type Default Nullable Description
id path string No

POST /integrations/{id}/replay

Replay from timestamp

Description

Rewinds the export cursor to a timestamp. The operator escape hatch: recovery after a consumer-side outage, historical backfill, and the only sanctioned way past an undeliverable event. Recorded as an activity so the gap is itself auditable.

Input parameters

Parameter In Type Default Nullable Description
id path string No

Request body

{
    "from": 10.12
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "from": {
            "type": "number"
        }
    },
    "required": [
        "from"
    ]
}

DELETE /integrations/{id}/secrets/{keyId}

Retire signing secret

Description

Retires a signing secret once the consumer has migrated. Refuses to remove the last one.

Input parameters

Parameter In Type Default Nullable Description
id path string No
keyId path string No

GET /integrations/{id}/headers

List auth headers

Description

Returns header NAMES only — values are credentials and never leave the store, exactly as with signing secrets. This is what lets a UI show what is configured without being able to read it.

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

{
    "names": [
        "string"
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "names": {
            "type": "array",
            "items": {
                "type": "string"
            }
        }
    },
    "additionalProperties": true
}

PUT /integrations/{id}/headers/{name}

Set auth header

Description

Sets ONE header, leaving the others untouched — the merge. Use PATCH /:id with a headers object to replace the whole set instead.

Input parameters

Parameter In Type Default Nullable Description
id path string No
name path string No

Request body

{
    "value": "string"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "value": {
            "type": "string"
        }
    },
    "required": [
        "value"
    ]
}

Responses

{
    "ok": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "ok": {
            "type": "boolean"
        }
    },
    "additionalProperties": true
}

DELETE /integrations/{id}/headers/{name}

Remove auth header

Description

Removes ONE header. removed: false means it was not set — distinct from a 404, which means the integration is not there. Deletion needs its own route because under merge, omitting a header means "leave it alone".

Input parameters

Parameter In Type Default Nullable Description
id path string No
name path string No

Responses

{
    "removed": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "removed": {
            "type": "boolean"
        }
    },
    "additionalProperties": true
}

GET /integrations/{id}/oauth

Read OAuth client

Description

Returns the OAuth2 client WITHOUT its secret. secretSet says whether one is stored; the secret itself is never returned by any read. Answers { configured: false } when the integration has no OAuth client.

Input parameters

Parameter In Type Default Nullable Description
id path string No

Responses

{
    "tokenUrl": "string",
    "clientId": "string",
    "scope": "string",
    "secretSet": true,
    "configured": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "tokenUrl": {
            "type": "string"
        },
        "clientId": {
            "type": "string"
        },
        "scope": {
            "type": "string"
        },
        "secretSet": {
            "type": "boolean"
        },
        "configured": {
            "type": "boolean"
        }
    },
    "additionalProperties": true
}

PUT /integrations/{id}/oauth

Replace OAuth client

Description

Replaces the OAuth2 client WHOLE — unlike headers there is no per-field merge, because a clientId from one tenant beside a clientSecret from another is a broken credential rather than a partial one. Any cached access token is discarded with it, so a rotated secret cannot keep presenting a token minted from the old client. There is no delete: an OAuth integration with no client cannot deliver.

Input parameters

Parameter In Type Default Nullable Description
id path string No

Request body

{
    "oauth": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "oauth": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    },
    "required": [
        "oauth"
    ]
}

Responses

{
    "ok": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "ok": {
            "type": "boolean"
        }
    },
    "additionalProperties": true
}

PUT /integrations/{id}/credential

Set credential

Description

Writes the operator credential for whichever kind this integration's provider declares — one route for every kind, so a new credential kind needs no new endpoint. Replaced WHOLE, never merged: half of one credential beside half of another is broken rather than partial. Any cached access token is discarded with it, so a rotated secret cannot keep presenting a token minted from the old material. "kind" must match what the provider declares; it is a 400 naming both otherwise, because a credential the provider never resolves is material nothing will ever read. There is no delete — an integration whose provider declares a credential cannot deliver without one.

Input parameters

Parameter In Type Default Nullable Description
id path string No

Request body

{
    "kind": "string",
    "credential": {}
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the request body
{
    "type": "object",
    "properties": {
        "kind": {
            "type": "string"
        },
        "credential": {
            "type": "object",
            "properties": {},
            "additionalProperties": true
        }
    },
    "required": [
        "kind",
        "credential"
    ]
}

Responses

{
    "ok": true
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "type": "object",
    "properties": {
        "ok": {
            "type": "boolean"
        }
    },
    "additionalProperties": true
}

POST /integrations/{id}/test

Test integration

Description

Fires one synthetic event through the real channel without touching cursor or state. Errors are reduced to a fixed class — blocked / unreachable / timeout / http_error / config_error / oversize — and carry a hint: one actionable sentence derived only from that class, the status, and your own stored configuration.

Input parameters

Parameter In Type Default Nullable Description
id path string No

Schemas

asym.key

Name Type Description
id string The Key ID
keyData asym.keydata The Actual Key Data
props Any custom properties on this Key
type The Algorithm this Key is used for

asym.keydata

Name Type Description
key string Base64 encoded Key cryptographic data

asym.keyring

Name Type Description
activeAlgorithm The active algorithm on the KeyRing
activeKey string The Key ID that is currently active
createdAt string Creation timestamp
displayName string The KeyRing display name
id string The KeyRing ID
name string The KeyRing name
publicKey string The KeyRing's Public Key. It is base64 endcoded.
updatedAt string Updated timestamp

auth.account

Name Type Description
apiKeyCount integer | null Number of API keys for this account (only present when includeKeyCounts=true)
createdAt string
id string
notes string
props
status string Account status: 'active' or 'deactivated'
uid string The Account UID
updatedAt string

auth.activity

Name Type Description
createdAt integer Epoch UTC time
id string
keyid string
props

auth.activity.create

Name Type Description
action string
apikeyId string
createdAt integer
props
reasons Array<string> Why the action was refused, one entry per independent cause. Ignored unless validAction is false
ringname string
validAction boolean

auth.apikey

Name Type Description
accountId string
active boolean
autoDisableOnLimit boolean
countedActions Array<string>
createdAt string
currentUses integer
flags Array<string> The entitlements this API Key holds, as a list of granted names — ADR 021. Presence is the grant.
key string
keyid string
maxUses integer | null
props
references auth.apikeyref
updatedAt string
validFrom string | null
validUntil string | null

auth.apikeyref

Name Type Description
accountId string

auth.pagination

Name Type Description
count integer
hasMore boolean
limit integer
nextCursor string

auth.password.validation

Name Type Description
details Properties: minLength, newPasswordLength, minUppercase, newPasswordUppercase, minLowercase, newPasswordLowercase, minSpecialChar, newPasswordSpecialChar, minNumber, newPasswordNumber
isValid boolean

auth.safeapikey

Name Type Description
accountId string
active boolean
autoDisableOnLimit boolean
countedActions Array<string>
createdAt string
currentUses integer
flags Array<string> The entitlements this API Key holds, as a list of granted names — ADR 021. Presence is the grant.
keyid string
maxUses integer | null
props
references auth.apikeyref
updatedAt string
validFrom string | null
validUntil string | null

auth.user

Name Type Description
displayName string The User's display name
email string The User's email
firstName string The User's first name
id string The User ID
keys Array<string> A list of all API Key IDs owned by the user
lastName string The User's last name
props Any unique props stored on the User
username string The unique user name

auth.validate.trustedservice

Name Type Description
ctx auth.validate.trustedservicectx
service string The Service Name

auth.validate.trustedservicectx

Name Type Description
options Properties: suppressActivity
user Properties: userId, username

ks.algorithm

Type: string

ks.key

Name Type Description
id string The Key ID
keyData ks.keydataencrypted The encrypted Key Data
props Any unique data stored on the Key
type ks.algorithm The Algorithm

ks.keydata

Name Type Description
key string

ks.keydataencrypted

Name Type Description
encrypted Properties: key
iv string

ks.keyring

Name Type Description
activeAlgorithm The Active Algorithm
activeKey string The Active Key ID
createdAt string The created at timestamp
displayName string Upper and lowercase preserved name
id string The Keyring ID
name string The KeyRing name
props Additional properties on the KeyRing
publicKey string Base64 encoded Public Key
updatedAt string The updated at timestamp

ks.keyringconfig

Name Type Description
algos Properties: aes256
key Properties: props
props
signing Properties: mode, required

ks.signedasset

Name Type Description
data
id string
message string
valid boolean

Security schemes

Name Type Scheme Description
BearerAuth http bearer

More documentation

Grizzly Platform Documentation


For more information: https://docs.grizzlycbg.io