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

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"
        }
    }
}

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"
    ],
    "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": "Assigned parent Assets"
        },
        "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"
    ],
    "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": "Assigned parent Assets"
        },
        "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
}

DELETE /dashboard/assets/{id}

Delete asset

Description

Deletes an asset

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/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
}

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/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": 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": {
        "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

{
    "ringanme": "string",
    "config": {
        "props": {},
        "key": {
            "props": {}
        },
        "algos": {
            "aes256": {
                "maxEncryptCount": 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": {
        "ringanme": {
            "type": "string",
            "description": "The KeyRing name"
        },
        "config": {
            "$ref": "#/components/schemas/ks.keyringconfig"
        }
    },
    "required": [
        "ringname",
        "config"
    ]
}

Responses

{
    "config": {
        "props": {},
        "key": {
            "props": {}
        },
        "algos": {
            "aes256": {
                "maxEncryptCount": 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": {
        "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/oauth/providers

Responses

Users


POST /auth/validate

Request body

{
    "apikey": "string",
    "activity": {},
    "requiredFlags": {},
    "trustedServiceCtx": {
        "user": {
            "userId": "string",
            "username": "string"
        },
        "options": {
            "suppressActivity": 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": {
        "apikey": {
            "type": "string"
        },
        "activity": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "requiredFlags": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "trustedServiceCtx": {
            "$ref": "#/components/schemas/auth.validate.trustedservicectx"
        }
    },
    "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": {}
}
⚠️ 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
        }
    }
}

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
        }
    }
}

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": {},
            "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": {},
            "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": {},
    "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": "object",
            "properties": {},
            "description": "The permissions for this API Key"
        },
        "maxUses": {
            "type": "integer",
            "description": "The max number of uses"
        },
        "countedActions": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "A strinf 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",
            "description": "ISO-8601 timestamp of the time when the API Key becomes valid"
        },
        "validUntil": {
            "type": "string",
            "description": "ISO-8601 timestamp that describes when the API Key will expire"
        },
        "props": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        }
    },
    "required": [
        "accountId",
        "flags"
    ]
}

Responses

{
    "key": "string",
    "keyid": "string",
    "active": true,
    "accountId": "string",
    "references": {
        "accountId": "string"
    },
    "flags": {},
    "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": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "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": {},
    "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",
            "description": "The max number of uses"
        },
        "countedActions": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "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",
            "description": "ISO-8601 timestamp of the time when the API Key becomes valid"
        },
        "validUntil": {
            "type": "string",
            "description": "ISO-8601 timestamp that describes when the API Key will expire"
        },
        "flags": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "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": {},
    "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": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "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": {},
    "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": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "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": {},
    "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": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        },
        "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": {},
    "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": "object",
            "properties": {},
            "additionalProperties": true
        },
        "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"
        }
    }
}

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": {},
    "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": "object",
            "properties": {},
            "additionalProperties": true
        },
        "active": {
            "type": "boolean"
        },
        "maxUses": {
            "type": "integer",
            "description": "The max number of uses"
        },
        "countedActions": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "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",
            "description": "ISO-8601 timestamp of the time when the API Key becomes valid"
        },
        "validUntil": {
            "type": "string",
            "description": "ISO-8601 timestamp that describes when the API Key will expire"
        }
    }
}

Responses

{
    "keyid": "string",
    "op": null,
    "active": true,
    "maxUses": 0,
    "currentUses": 0,
    "countedActions": [
        "string"
    ],
    "autoDisableOnLimit": true,
    "validFrom": "string",
    "validUntil": "string",
    "flags": {},
    "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": "object",
            "properties": {},
            "additionalProperties": true
        },
        "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": {},
    "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": "object",
            "properties": {},
            "additionalProperties": true
        },
        "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

{
    "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/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
}

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": {},
            "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": {}
}
⚠️ 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
        }
    },
    "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"
        }
    }
}

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": {}
}
⚠️ 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
        }
    }
}

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
}

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"
        }
    }
}

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
ringname string
validAction boolean

auth.apikey

Name Type Description
accountId string
active boolean
autoDisableOnLimit boolean
countedActions Array<string>
createdAt string
currentUses integer
flags
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
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

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