Skip to content

Users & Organizations Endpoints

User account and organization management.


Overview

Users

Method Endpoint Description
GET /users/ List users
POST /users/ Create user
GET /users/me Get current user
PATCH /users/me Update current user
GET /users/{id} Get user by ID
PATCH /users/{id} Update user
DELETE /users/{id} Delete user

Organizations

Method Endpoint Description
GET /organizations/ List organizations
POST /organizations/ Create organization
GET /organizations/{id} Get organization

API Reference

Sartiq Backend Server - Users 0.1.0

users


GET /api/v1/users/

Read Users

Description

Retrieve users.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
limit query integer 100 No
search query No
skip query integer 0 No

Responses

{
    "id": "a5caf800-f8da-4e05-9a2a-14ed727494d3",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "data": [
        {
            "id": "d80cf130-87df-4fd5-86d8-f11d2fa35c85",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "email": "derp@meme.org",
            "full_name": null,
            "is_active": true,
            "is_superuser": true,
            "rework_available": 0
        }
    ],
    "count": 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
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "data": {
            "items": {
                "$ref": "#/components/schemas/UserPublic"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "UsersPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/users/

Create User

Description

Create new user.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No

Request body

{
    "email": "derp@meme.org",
    "password": "string",
    "full_name": null,
    "is_superuser": true,
    "rework_available": 0,
    "is_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
{
    "properties": {
        "email": {
            "type": "string",
            "format": "email",
            "title": "Email"
        },
        "password": {
            "type": "string",
            "maxLength": 40,
            "minLength": 8,
            "title": "Password"
        },
        "full_name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Full Name"
        },
        "is_superuser": {
            "type": "boolean",
            "title": "Is Superuser",
            "default": false
        },
        "rework_available": {
            "type": "integer",
            "title": "Rework Available",
            "default": 2
        },
        "is_active": {
            "type": "boolean",
            "title": "Is Active",
            "default": true
        }
    },
    "type": "object",
    "required": [
        "email",
        "password"
    ],
    "title": "UserCreate"
}

Responses

{
    "id": "9ed48ff8-fde6-4d92-861a-32ba6230441b",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "email": "derp@meme.org",
    "full_name": null,
    "is_active": true,
    "is_superuser": true,
    "rework_available": 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
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "email": {
            "type": "string",
            "format": "email",
            "title": "Email"
        },
        "full_name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Full Name"
        },
        "is_active": {
            "type": "boolean",
            "title": "Is Active"
        },
        "is_superuser": {
            "type": "boolean",
            "title": "Is Superuser",
            "default": false
        },
        "rework_available": {
            "type": "integer",
            "title": "Rework Available"
        }
    },
    "type": "object",
    "required": [
        "id",
        "email",
        "full_name",
        "is_active",
        "rework_available"
    ],
    "title": "UserPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/users/me

Read User Me

Description

Get current user.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No

Responses

{
    "id": "48806df0-6eb0-45c3-853e-944420b22071",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "email": "derp@meme.org",
    "full_name": null,
    "is_active": true,
    "is_superuser": true,
    "rework_available": 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
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "email": {
            "type": "string",
            "format": "email",
            "title": "Email"
        },
        "full_name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Full Name"
        },
        "is_active": {
            "type": "boolean",
            "title": "Is Active"
        },
        "is_superuser": {
            "type": "boolean",
            "title": "Is Superuser",
            "default": false
        },
        "rework_available": {
            "type": "integer",
            "title": "Rework Available"
        }
    },
    "type": "object",
    "required": [
        "id",
        "email",
        "full_name",
        "is_active",
        "rework_available"
    ],
    "title": "UserPublic"
}

PATCH /api/v1/users/me

Update User Me

Description

Update own user.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No

Request body

{
    "full_name": null,
    "email": 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 request body
{
    "properties": {
        "full_name": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Full Name"
        },
        "email": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255,
                    "format": "email"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Email"
        }
    },
    "type": "object",
    "title": "UserUpdateMe"
}

Responses

{
    "id": "2f553bfe-46a7-42f4-8411-7a764e78e30e",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "email": "derp@meme.org",
    "full_name": null,
    "is_active": true,
    "is_superuser": true,
    "rework_available": 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
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "email": {
            "type": "string",
            "format": "email",
            "title": "Email"
        },
        "full_name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Full Name"
        },
        "is_active": {
            "type": "boolean",
            "title": "Is Active"
        },
        "is_superuser": {
            "type": "boolean",
            "title": "Is Superuser",
            "default": false
        },
        "rework_available": {
            "type": "integer",
            "title": "Rework Available"
        }
    },
    "type": "object",
    "required": [
        "id",
        "email",
        "full_name",
        "is_active",
        "rework_available"
    ],
    "title": "UserPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

PATCH /api/v1/users/me/password

Update Password Me

Description

Update own password.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No

Request body

{
    "current_password": "string",
    "new_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
{
    "properties": {
        "current_password": {
            "type": "string",
            "maxLength": 40,
            "minLength": 8,
            "title": "Current Password"
        },
        "new_password": {
            "type": "string",
            "maxLength": 40,
            "minLength": 8,
            "title": "New Password"
        }
    },
    "type": "object",
    "required": [
        "current_password",
        "new_password"
    ],
    "title": "UpdatePassword"
}

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
{
    "properties": {
        "message": {
            "type": "string",
            "title": "Message"
        }
    },
    "type": "object",
    "required": [
        "message"
    ],
    "title": "Message"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/users/signup

Register User

Description

Create new user without the need to be logged in.

Request body

{
    "id": "c7296ed3-af77-4a7a-9c5a-23e64b285485",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "email": "derp@meme.org",
    "password": "string",
    "full_name": 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 request body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "email": {
            "type": "string",
            "maxLength": 255,
            "format": "email",
            "title": "Email"
        },
        "password": {
            "type": "string",
            "maxLength": 40,
            "minLength": 8,
            "title": "Password"
        },
        "full_name": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Full Name"
        }
    },
    "type": "object",
    "required": [
        "email",
        "password"
    ],
    "title": "UserRegister"
}

Responses

{
    "id": "f187613b-865b-4d49-839b-74bb9abc053d",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "email": "derp@meme.org",
    "full_name": null,
    "is_active": true,
    "is_superuser": true,
    "rework_available": 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
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "email": {
            "type": "string",
            "format": "email",
            "title": "Email"
        },
        "full_name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Full Name"
        },
        "is_active": {
            "type": "boolean",
            "title": "Is Active"
        },
        "is_superuser": {
            "type": "boolean",
            "title": "Is Superuser",
            "default": false
        },
        "rework_available": {
            "type": "integer",
            "title": "Rework Available"
        }
    },
    "type": "object",
    "required": [
        "id",
        "email",
        "full_name",
        "is_active",
        "rework_available"
    ],
    "title": "UserPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/users/{user_id}

Read User By Id

Description

Get a specific user by id.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
user_id path string No

Responses

{
    "id": "0bf1304d-f5a4-43ce-a61f-37bf5217c898",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "email": "derp@meme.org",
    "full_name": null,
    "is_active": true,
    "is_superuser": true,
    "rework_available": 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
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "email": {
            "type": "string",
            "format": "email",
            "title": "Email"
        },
        "full_name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Full Name"
        },
        "is_active": {
            "type": "boolean",
            "title": "Is Active"
        },
        "is_superuser": {
            "type": "boolean",
            "title": "Is Superuser",
            "default": false
        },
        "rework_available": {
            "type": "integer",
            "title": "Rework Available"
        }
    },
    "type": "object",
    "required": [
        "id",
        "email",
        "full_name",
        "is_active",
        "rework_available"
    ],
    "title": "UserPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

PATCH /api/v1/users/{user_id}

Update User

Description

Update a user.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
user_id path string No

Request body

{
    "email": null,
    "full_name": null,
    "password": null,
    "is_superuser": null,
    "is_active": null,
    "rework_available": 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 request body
{
    "properties": {
        "email": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "email"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Email"
        },
        "full_name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Full Name"
        },
        "password": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 40,
                    "minLength": 8
                },
                {
                    "type": "null"
                }
            ],
            "title": "Password"
        },
        "is_superuser": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Is Superuser"
        },
        "is_active": {
            "anyOf": [
                {
                    "type": "boolean"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Is Active"
        },
        "rework_available": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Rework Available"
        }
    },
    "type": "object",
    "title": "UserUpdate"
}

Responses

{
    "id": "cd0f9028-5a76-4c8b-ab1e-674e95ede03a",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "email": "derp@meme.org",
    "full_name": null,
    "is_active": true,
    "is_superuser": true,
    "rework_available": 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
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "email": {
            "type": "string",
            "format": "email",
            "title": "Email"
        },
        "full_name": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Full Name"
        },
        "is_active": {
            "type": "boolean",
            "title": "Is Active"
        },
        "is_superuser": {
            "type": "boolean",
            "title": "Is Superuser",
            "default": false
        },
        "rework_available": {
            "type": "integer",
            "title": "Rework Available"
        }
    },
    "type": "object",
    "required": [
        "id",
        "email",
        "full_name",
        "is_active",
        "rework_available"
    ],
    "title": "UserPublic"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

organizations


POST /api/v1/organizations/

Create Organization

Description

Create a new organization.

The current user becomes the owner and is automatically added as a member. Avatar image should be uploaded via /uploads/presigned-url first.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No

Request body

{
    "name": "string",
    "avatar_image": null,
    "description": null,
    "rework_available": 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 request body
{
    "properties": {
        "name": {
            "type": "string",
            "maxLength": 255,
            "title": "Name"
        },
        "avatar_image": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/components/schemas/MediaInput"
                }
            ],
            "title": "Avatar Image",
            "description": "Avatar image URL (presigned URL from /uploads/presigned-url)"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 1000
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "rework_available": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Rework Available"
        }
    },
    "type": "object",
    "required": [
        "name",
        "avatar_image"
    ],
    "title": "OrganizationCreate",
    "description": "Schema for creating an organization."
}

Responses

{
    "id": "492e2498-437e-40d3-9cba-f82e62da0749",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "avatar_image_url": "string",
    "avatar_image_media": null,
    "description": null,
    "rework_available": 0,
    "owner_id": "a03a44ac-e999-42a1-8fea-f7183c737d04"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "avatar_image_url": {
            "type": "string",
            "title": "Avatar Image Url"
        },
        "avatar_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "rework_available": {
            "type": "integer",
            "title": "Rework Available"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "updated_at",
        "name",
        "avatar_image_url",
        "description",
        "rework_available",
        "owner_id"
    ],
    "title": "OrganizationPublic",
    "description": "Public response schema for an organization."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/organizations/

Read Organizations

Description

List organizations the current user is a member of.

Superusers can see all organizations.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
limit query integer 100 No
search query No
skip query integer 0 No

Responses

{
    "id": "82d17480-1ed3-4423-9123-2c4c6d59c68e",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "data": [
        {
            "id": "81cfa53e-5d59-4a9c-b50f-5a5a3b1fc8c7",
            "created_at": "2022-04-13T15:42:05.901Z",
            "updated_at": "2022-04-13T15:42:05.901Z",
            "name": "string",
            "avatar_image_url": "string",
            "avatar_image_media": null,
            "description": null,
            "rework_available": 0,
            "owner_id": "984d0045-7d04-47d7-aea0-f19e34595477"
        }
    ],
    "count": 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
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "data": {
            "items": {
                "$ref": "#/components/schemas/OrganizationPublic"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "OrganizationsPublic",
    "description": "Response schema for a list of organizations."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/organizations/{organization_id}

Read Organization

Description

Get an organization by ID.

Only members or superusers can view the organization.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id path string No

Responses

{
    "id": "db45d50c-5336-4d20-84ad-10d4b3448a88",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "avatar_image_url": "string",
    "avatar_image_media": null,
    "description": null,
    "rework_available": 0,
    "owner_id": "bea2c7e0-c7bf-4ce2-9ddd-8e13ec19d871"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "avatar_image_url": {
            "type": "string",
            "title": "Avatar Image Url"
        },
        "avatar_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "rework_available": {
            "type": "integer",
            "title": "Rework Available"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "updated_at",
        "name",
        "avatar_image_url",
        "description",
        "rework_available",
        "owner_id"
    ],
    "title": "OrganizationPublic",
    "description": "Public response schema for an organization."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

PUT /api/v1/organizations/{organization_id}

Update Organization

Description

Update an organization.

Only the owner or superusers can update. If avatar_image is provided, it should be a presigned URL from /uploads/presigned-url.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id path string No

Request body

{
    "name": null,
    "avatar_image": null,
    "description": null,
    "rework_available": null,
    "owner_id": 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 request body
{
    "properties": {
        "name": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 255
                },
                {
                    "type": "null"
                }
            ],
            "title": "Name"
        },
        "avatar_image": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "$ref": "#/components/schemas/MediaInput"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Avatar Image",
            "description": "Avatar image URL (presigned URL from /uploads/presigned-url)"
        },
        "description": {
            "anyOf": [
                {
                    "type": "string",
                    "maxLength": 1000
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "rework_available": {
            "anyOf": [
                {
                    "type": "integer"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Rework Available"
        },
        "owner_id": {
            "anyOf": [
                {
                    "type": "string",
                    "format": "uuid"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Owner Id",
            "description": "New owner user ID for ownership transfer"
        }
    },
    "type": "object",
    "title": "OrganizationUpdate",
    "description": "Schema for updating an organization. All fields are optional."
}

Responses

{
    "id": "1ade70c9-366a-424b-96c8-3297e48e3fe7",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "name": "string",
    "avatar_image_url": "string",
    "avatar_image_media": null,
    "description": null,
    "rework_available": 0,
    "owner_id": "38e9fb56-3808-4601-8b3b-ee3dc7c35abd"
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "name": {
            "type": "string",
            "title": "Name"
        },
        "avatar_image_url": {
            "type": "string",
            "title": "Avatar Image Url"
        },
        "avatar_image_media": {
            "anyOf": [
                {
                    "$ref": "#/components/schemas/MediaResourcePublic"
                },
                {
                    "type": "null"
                }
            ]
        },
        "description": {
            "anyOf": [
                {
                    "type": "string"
                },
                {
                    "type": "null"
                }
            ],
            "title": "Description"
        },
        "rework_available": {
            "type": "integer",
            "title": "Rework Available"
        },
        "owner_id": {
            "type": "string",
            "format": "uuid",
            "title": "Owner Id"
        }
    },
    "type": "object",
    "required": [
        "id",
        "created_at",
        "updated_at",
        "name",
        "avatar_image_url",
        "description",
        "rework_available",
        "owner_id"
    ],
    "title": "OrganizationPublic",
    "description": "Public response schema for an organization."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

DELETE /api/v1/organizations/{organization_id}

Delete Organization

Description

Delete an organization.

Only the owner or superusers can delete. All memberships are automatically removed via cascade.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id 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
{
    "properties": {
        "message": {
            "type": "string",
            "title": "Message"
        }
    },
    "type": "object",
    "required": [
        "message"
    ],
    "title": "Message"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

GET /api/v1/organizations/{organization_id}/members

Read Organization Members

Description

List all members of an organization.

Only members can view the member list.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
limit query integer 100 No
organization_id path string No
skip query integer 0 No

Responses

{
    "id": "12bda444-db8a-42aa-b12e-d55cd90f1052",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "data": [
        {
            "user_id": "eb6084d8-52fd-4f77-839b-ead66f8e79c9",
            "joined_at": "2022-04-13T15:42:05.901Z",
            "email": "derp@meme.org",
            "full_name": null
        }
    ],
    "count": 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
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "data": {
            "items": {
                "$ref": "#/components/schemas/OrganizationMemberPublic"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "OrganizationMembersPublic",
    "description": "Response schema for a list of organization members."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/organizations/{organization_id}/members

Add Organization Member

Description

Add a member to an organization.

Only the owner or superusers can add members.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id path string No

Request body

{
    "user_id": "2f4c02de-13db-43ca-a91e-10736ec7a8e5"
}
⚠️ 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
{
    "properties": {
        "user_id": {
            "type": "string",
            "format": "uuid",
            "title": "User Id"
        }
    },
    "type": "object",
    "required": [
        "user_id"
    ],
    "title": "AddMemberRequest",
    "description": "Request schema for adding a member to an organization."
}

Responses

{
    "id": "658fe31d-988e-42d0-88b3-9528fbb0334c",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "data": [
        {
            "user_id": "0c9ff66d-394a-42b7-8eb5-16af23656429",
            "joined_at": "2022-04-13T15:42:05.901Z",
            "email": "derp@meme.org",
            "full_name": null
        }
    ],
    "count": 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
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "data": {
            "items": {
                "$ref": "#/components/schemas/OrganizationMemberPublic"
            },
            "type": "array",
            "title": "Data"
        },
        "count": {
            "type": "integer",
            "title": "Count"
        }
    },
    "type": "object",
    "required": [
        "data",
        "count"
    ],
    "title": "OrganizationMembersPublic",
    "description": "Response schema for a list of organization members."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

DELETE /api/v1/organizations/{organization_id}/members/{user_id}

Remove Organization Member

Description

Remove a member from an organization.

  • Owner or superusers can remove any member
  • Users can remove themselves from an organization

The owner cannot be removed from the organization.

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id path string No
user_id 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
{
    "properties": {
        "message": {
            "type": "string",
            "title": "Message"
        }
    },
    "type": "object",
    "required": [
        "message"
    ],
    "title": "Message"
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

POST /api/v1/organizations/{organization_id}/migrate-resources

Migrate User Resources Endpoint

Description

Migrate user's personal resources to organization.

Migrates resources owned by the specified source user from personal (organization_id = NULL) to the specified organization. All selected resources are migrated atomically (all-or-nothing) in a single transaction.

Requirements: - Only superusers can perform migrations (admin-only operation) - Source user must be a member of the target organization - Only personal resources (organization_id IS NULL) are migrated - Only resources owned by the source user are migrated

Use Cases: - One-time production migration from single-user accounts to multi-user organizations - Admin-initiated resource transfers between user accounts and organizations

Security: - Restricted to superusers only (production data migration tool) - Source user must be organization member (prevents accidental cross-org transfers) - Transaction ensures atomicity (no partial migrations on failure)

Input parameters

Parameter In Type Default Nullable Description
OAuth2PasswordBearer header string N/A No
organization_id path string No

Request body

{
    "user_id": "25d8f77d-510a-4d61-af70-e1d1e585808d",
    "migrate_products": true,
    "migrate_subjects": true,
    "migrate_styles": true,
    "migrate_generations": true,
    "migrate_shootings": true,
    "migrate_shot_types": true,
    "migrate_stylists": true,
    "migrate_background_presets": true,
    "migrate_resolution_presets": true,
    "migrate_product_type_shot_types": true,
    "migrate_external_integrations": true,
    "migrate_shooting_guidelines": true,
    "migrate_export_configurations": 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
{
    "properties": {
        "user_id": {
            "type": "string",
            "format": "uuid",
            "title": "User Id",
            "description": "Source user whose resources will be migrated"
        },
        "migrate_products": {
            "type": "boolean",
            "title": "Migrate Products",
            "description": "Migrate personal products",
            "default": false
        },
        "migrate_subjects": {
            "type": "boolean",
            "title": "Migrate Subjects",
            "description": "Migrate personal subjects",
            "default": false
        },
        "migrate_styles": {
            "type": "boolean",
            "title": "Migrate Styles",
            "description": "Migrate personal styles",
            "default": false
        },
        "migrate_generations": {
            "type": "boolean",
            "title": "Migrate Generations",
            "description": "Migrate personal generations",
            "default": false
        },
        "migrate_shootings": {
            "type": "boolean",
            "title": "Migrate Shootings",
            "description": "Migrate personal shootings",
            "default": false
        },
        "migrate_shot_types": {
            "type": "boolean",
            "title": "Migrate Shot Types",
            "description": "Migrate personal shot types",
            "default": false
        },
        "migrate_stylists": {
            "type": "boolean",
            "title": "Migrate Stylists",
            "description": "Migrate personal stylists",
            "default": false
        },
        "migrate_background_presets": {
            "type": "boolean",
            "title": "Migrate Background Presets",
            "description": "Migrate personal background presets",
            "default": false
        },
        "migrate_resolution_presets": {
            "type": "boolean",
            "title": "Migrate Resolution Presets",
            "description": "Migrate personal resolution presets",
            "default": false
        },
        "migrate_product_type_shot_types": {
            "type": "boolean",
            "title": "Migrate Product Type Shot Types",
            "description": "Migrate personal product type shot type mappings",
            "default": false
        },
        "migrate_external_integrations": {
            "type": "boolean",
            "title": "Migrate External Integrations",
            "description": "Migrate personal external integrations",
            "default": false
        },
        "migrate_shooting_guidelines": {
            "type": "boolean",
            "title": "Migrate Shooting Guidelines",
            "description": "Migrate personal shooting guidelines",
            "default": false
        },
        "migrate_export_configurations": {
            "type": "boolean",
            "title": "Migrate Export Configurations",
            "description": "Migrate export configurations (personal → organization)",
            "default": false
        }
    },
    "type": "object",
    "required": [
        "user_id"
    ],
    "title": "ResourceMigrationRequest",
    "description": "Request schema for migrating personal resources to organization."
}

Responses

{
    "id": "4e70df8e-e83f-42e3-a963-0ee4d05519ca",
    "created_at": "2022-04-13T15:42:05.901Z",
    "updated_at": "2022-04-13T15:42:05.901Z",
    "message": "string",
    "organization_id": "94f7d605-b7b3-4f37-80d8-0a2421d04db1",
    "migrated_counts": {
        "products": 0,
        "subjects": 0,
        "styles": 0,
        "generations": 0,
        "shootings": 0,
        "shot_types": 0,
        "stylists": 0,
        "background_presets": 0,
        "resolution_presets": 0,
        "product_type_shot_types": 0,
        "external_integrations": 0,
        "shooting_guidelines": 0,
        "export_configurations": 0
    },
    "total_migrated": 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
{
    "properties": {
        "id": {
            "type": "string",
            "format": "uuid",
            "title": "Id"
        },
        "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
        },
        "updated_at": {
            "type": "string",
            "format": "date-time",
            "title": "Updated At"
        },
        "message": {
            "type": "string",
            "title": "Message",
            "description": "Success message"
        },
        "organization_id": {
            "type": "string",
            "format": "uuid",
            "title": "Organization Id",
            "description": "Target organization ID"
        },
        "migrated_counts": {
            "$ref": "#/components/schemas/ResourceMigrationCounts",
            "description": "Counts of migrated resources per type"
        },
        "total_migrated": {
            "type": "integer",
            "title": "Total Migrated",
            "description": "Total number of resources migrated across all types"
        }
    },
    "type": "object",
    "required": [
        "message",
        "organization_id",
        "migrated_counts",
        "total_migrated"
    ],
    "title": "ResourceMigrationResponse",
    "description": "Response schema for resource migration."
}

{
    "detail": [
        {
            "loc": [
                null
            ],
            "msg": "string",
            "type": "string",
            "input": null,
            "ctx": {}
        }
    ]
}
⚠️ This example has been generated automatically from the schema and it is not accurate. Refer to the schema for more information.

Schema of the response body
{
    "properties": {
        "detail": {
            "items": {
                "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
        }
    },
    "type": "object",
    "title": "HTTPValidationError"
}

Schemas

AddMemberRequest

Name Type Description
user_id string(uuid)

HTTPValidationError

Name Type Description
detail Array<ValidationError>

MediaInput

Name Type Description
alt_text
caption
color_profile
dominant_color
duration
height
media_resource_id
protected boolean
url
width

MediaResourcePublic

Name Type Description
alt_text
aspect_ratio
caption
color_profile
content_hash string
created_at string(date-time)
dominant_color
duration
extension string
file_size integer
height
id string(uuid)
orientation
protected boolean
resource_type MediaResourceType
url string
width

MediaResourceType

Type: string

Message

Name Type Description
message string

OrganizationCreate

Name Type Description
avatar_image Avatar image URL (presigned URL from /uploads/presigned-url)
description
name string
rework_available

OrganizationMemberPublic

Name Type Description
email string()
full_name
joined_at string(date-time)
user_id string(uuid)

OrganizationMembersPublic

Name Type Description
count integer
created_at string(date-time)
data Array<OrganizationMemberPublic>
id string(uuid)
updated_at string(date-time)

OrganizationPublic

Name Type Description
avatar_image_media
avatar_image_url string
created_at string(date-time)
description
id string(uuid)
name string
owner_id string(uuid)
rework_available integer
updated_at string(date-time)

OrganizationsPublic

Name Type Description
count integer
created_at string(date-time)
data Array<OrganizationPublic>
id string(uuid)
updated_at string(date-time)

OrganizationUpdate

Name Type Description
avatar_image Avatar image URL (presigned URL from /uploads/presigned-url)
description
name
owner_id New owner user ID for ownership transfer
rework_available

ResourceMigrationCounts

Name Type Description
background_presets integer
export_configurations integer
external_integrations integer
generations integer
product_type_shot_types integer
products integer
resolution_presets integer
shooting_guidelines integer
shootings integer
shot_types integer
styles integer
stylists integer
subjects integer

ResourceMigrationRequest

Name Type Description
migrate_background_presets boolean Migrate personal background presets
migrate_export_configurations boolean Migrate export configurations (personal → organization)
migrate_external_integrations boolean Migrate personal external integrations
migrate_generations boolean Migrate personal generations
migrate_product_type_shot_types boolean Migrate personal product type shot type mappings
migrate_products boolean Migrate personal products
migrate_resolution_presets boolean Migrate personal resolution presets
migrate_shooting_guidelines boolean Migrate personal shooting guidelines
migrate_shootings boolean Migrate personal shootings
migrate_shot_types boolean Migrate personal shot types
migrate_styles boolean Migrate personal styles
migrate_stylists boolean Migrate personal stylists
migrate_subjects boolean Migrate personal subjects
user_id string(uuid) Source user whose resources will be migrated

ResourceMigrationResponse

Name Type Description
created_at string(date-time)
id string(uuid)
message string Success message
migrated_counts ResourceMigrationCounts Counts of migrated resources per type
organization_id string(uuid) Target organization ID
total_migrated integer Total number of resources migrated across all types
updated_at string(date-time)

UpdatePassword

Name Type Description
current_password string
new_password string

UserCreate

Name Type Description
email string()
full_name
is_active boolean
is_superuser boolean
password string
rework_available integer

UserPublic

Name Type Description
created_at string(date-time)
email string()
full_name
id string(uuid)
is_active boolean
is_superuser boolean
rework_available integer
updated_at string(date-time)

UserRegister

Name Type Description
created_at string(date-time)
email string()
full_name
id string(uuid)
password string
updated_at string(date-time)

UsersPublic

Name Type Description
count integer
created_at string(date-time)
data Array<UserPublic>
id string(uuid)
updated_at string(date-time)

UserUpdate

Name Type Description
email
full_name
is_active
is_superuser
password
rework_available

UserUpdateMe

Name Type Description
email
full_name

ValidationError

Name Type Description
ctx
input
loc Array<>
msg string
type string

Security schemes

Name Type Scheme Description
OAuth2PasswordBearer oauth2