FishyKeys API (1.0)

Download OpenAPI specification:Download

The FishyKeys API for key management

key_management

The FishyKeys server handles master key operations

create_master_key key_management

Create a new master key and split it into shares

Request Body schema: application/json
admin_password
required
string

Admin password for key management

admin_username
required
string

Admin username for key management

min_shares
required
integer <int64>

Minimum number of shares required to reconstruct the key

total_shares
required
integer <int64>

Total number of shares to create

Responses

Request samples

Content type
application/json
{
  • "admin_password": "admin_password123!",
  • "admin_username": "admin",
  • "min_shares": 3,
  • "total_shares": 5
}

Response samples

Content type
application/json
{
  • "admin_username": "admin",
  • "shares": [
    ]
}

delete_share key_management

Delete a share from the key management system

Request Body schema: application/json
index
required
integer <int64>

The index of the share to delete

Responses

Request samples

Content type
application/json
{
  • "index": 1
}

add_share key_management

Add a share to unlock the master key

Request Body schema: application/json
share
required
string

One of the shares need to unlock the master key

Responses

Request samples

Content type
application/json
{
  • "share": "EXAMPLEA5ZKwDn8Zotr3B+d+F+UzrcJ1Yhl2rU0"
}

Response samples

Content type
application/json
{
  • "index": 191041221977587000,
  • "unlocked": false
}

get_key_status key_management

Get the current status of the master key

Responses

Response samples

Content type
application/json
{
  • "current_shares": 6938986088863093000,
  • "is_locked": true,
  • "min_shares": 7961477577792691000,
  • "total_shares": 4689996537036155000
}

secrets

User service manages user accounts and authentication

create secret secrets

Create a secret

Request Body schema: application/json
authorized_members
required
Array of integers <int64> [ items <int64 > ]

Members IDs authorized to access the secret

authorized_roles
required
Array of integers <int64> [ items <int64 > ]

Role IDs authorized to access the secret

path
required
string >= 2 characters

Base64 encoded secret's path

value
required
string

The secret value

Responses

Request samples

Content type
application/json
{
  • "authorized_members": [
    ],
  • "authorized_roles": [
    ],
  • "path": "L2N1c3RvbWVycy9nb29nbGUvYXBpX2tleQ==",
  • "value": "SECRET_API_KEY123"
}

get secret secrets

Retrieve a secret's information

path Parameters
path
required
string >= 2 characters
Example: L2N1c3RvbWVycy9nb29nbGUvYXBpX2tleQ==

Base64 encoded secret's path

Responses

Response samples

Content type
application/json
{
  • "authorized_members": [
    ],
  • "authorized_roles": [
    ],
  • "created_at": "2025-06-30T12:00:00Z",
  • "owner": {
    },
  • "path": "customers/google/api_key",
  • "updated_at": "2025-06-30T15:00:00Z"
}

get secret value secrets

Retrieve a secret value

path Parameters
path
required
string >= 2 characters
Example: L2N1c3RvbWVycy9nb29nbGUvYXBpX2tleQ==

Base64 encoded secret's path

Responses

Response samples

Content type
application/json
{
  • "path": "customers/google/api_key",
  • "value": "SECRET_API_KEY"
}

users

User service manages user accounts and authentication

list users users

List all users

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    },
  • {
    },
  • {
    }
]

create user users

Create a new user

Request Body schema: application/json
password
required
string

Password (hashed or plain depending on implementation)

username
required
string >= 3 characters

Username of the new user

Responses

Request samples

Content type
application/json
{
  • "password": "s3cr3t",
  • "username": "alice"
}

Response samples

Content type
application/json
{
  • "id": 2,
  • "username": "alice"
}

auth user users

Authenticate a user with username and password

Request Body schema: application/json
password
required
string

Password

username
required
string

Username

Responses

Request samples

Content type
application/json
{
  • "password": "s3cr3t",
  • "username": "alice"
}

Response samples

Content type
application/json
{
  • "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  • "username": "alice"
}

delete user users

Delete a user by username

path Parameters
username
required
string
Example: alice

Username of the user to delete

Responses