Cognee Auth API
Authentication endpoints for user registration, login, and token management.
Authentication endpoints for user registration, login, and token management.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/cognee:cognee-auth-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Cognee Auth API
description: Cognee API with Bearer token and Cookie auth
version: 1.0.0
servers:
- url: https://{tenant}.aws.cognee.ai
description: 'Cognee Cloud: your tenant pod, named in the platform.cognee.ai dashboard'
variables:
tenant:
default: your-tenant
description: Your tenant name, shown in the Cognee Cloud dashboard
- url: http://localhost:8000
description: 'Self-hosted: a locally running cognee server'
security:
- BearerAuth: []
- ApiKeyAuth: []
tags:
- name: Auth
description: Authentication endpoints for user registration, login, and token management.
paths:
/api/v1/auth/login:
post:
tags:
- Auth
summary: Login
description: Login — POST /api/v1/auth/login.
operationId: login_api_v1_auth_login_post
requestBody:
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/Body_login_api_v1_auth_login_post'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/auth/logout:
post:
tags:
- Auth
summary: Logout
description: Logout — POST /api/v1/auth/logout.
operationId: logout_api_v1_auth_logout_post
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
security:
- BearerAuth: []
- ApiKeyAuth: []
/api/v1/auth/me:
get:
tags:
- Auth
summary: Get Me
description: Get me — GET /api/v1/auth/me.
operationId: get_me_api_v1_auth_me_get
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
security:
- BearerAuth: []
- ApiKeyAuth: []
/api/v1/auth/register:
post:
tags:
- Auth
summary: Register:Register
operationId: register_register_api_v1_auth_register_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserCreate'
required: true
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/UserRead'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
examples:
REGISTER_USER_ALREADY_EXISTS:
summary: A user with this email already exists.
value:
detail: REGISTER_USER_ALREADY_EXISTS
REGISTER_INVALID_PASSWORD:
summary: Password validation failed.
value:
detail:
code: REGISTER_INVALID_PASSWORD
reason: Password should beat least 3 characters
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/auth/forgot-password:
post:
tags:
- Auth
summary: Reset:Forgot Password
operationId: reset_forgot_password_api_v1_auth_forgot_password_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Body_reset_forgot_password_api_v1_auth_forgot_password_post'
required: true
responses:
'202':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/auth/reset-password:
post:
tags:
- Auth
summary: Reset:Reset Password
operationId: reset_reset_password_api_v1_auth_reset_password_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Body_reset_reset_password_api_v1_auth_reset_password_post'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
examples:
RESET_PASSWORD_BAD_TOKEN:
summary: Bad or expired token.
value:
detail: RESET_PASSWORD_BAD_TOKEN
RESET_PASSWORD_INVALID_PASSWORD:
summary: Password validation failed.
value:
detail:
code: RESET_PASSWORD_INVALID_PASSWORD
reason: Password should be at least 3 characters
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/auth/request-verify-token:
post:
tags:
- Auth
summary: Verify:Request-Token
operationId: verify_request_token_api_v1_auth_request_verify_token_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Body_verify_request_token_api_v1_auth_request_verify_token_post'
required: true
responses:
'202':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/auth/verify:
post:
tags:
- Auth
summary: Verify:Verify
operationId: verify_verify_api_v1_auth_verify_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Body_verify_verify_api_v1_auth_verify_post'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/UserRead'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorModel'
examples:
VERIFY_USER_BAD_TOKEN:
summary: Bad token, not existing user or not the e-mail currently set for the user.
value:
detail: VERIFY_USER_BAD_TOKEN
VERIFY_USER_ALREADY_VERIFIED:
summary: The user is already verified.
value:
detail: VERIFY_USER_ALREADY_VERIFIED
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/auth/api-keys:
get:
tags:
- Auth
summary: Get Api Keys For User
description: Get api keys for user — GET /api/v1/auth/api-keys.
operationId: get_api_keys_for_user_api_v1_auth_api_keys_get
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
security:
- BearerAuth: []
- ApiKeyAuth: []
post:
tags:
- Auth
summary: Create Api Key For User
description: 'Create api key for user — POST /api/v1/auth/api-keys.
## Request Parameters
- **name** (Optional[str]): Human-readable label to store with the generated API
key.'
operationId: create_api_key_for_user_api_v1_auth_api_keys_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ApiKeyCreationPayload'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
- ApiKeyAuth: []
/api/v1/auth/api-keys/{api_key_id}:
delete:
tags:
- Auth
summary: Delete Api Key For User
description: 'Delete api key for user — DELETE /api/v1/auth/api-keys/\{api_key_id\}.
## Path Parameters
- **api_key_id** (UUID): UUID of the API key (from GET /api/v1/auth/api-keys).'
operationId: delete_api_key_for_user_api_v1_auth_api_keys__api_key_id__delete
security:
- BearerAuth: []
- ApiKeyAuth: []
parameters:
- name: api_key_id
in: path
required: true
schema:
type: string
format: uuid
title: Api Key Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
Body_verify_verify_api_v1_auth_verify_post:
properties:
token:
type: string
title: Token
type: object
required:
- token
title: Body_verify_verify_api_v1_auth_verify_post
ApiKeyCreationPayload:
properties:
name:
anyOf:
- type: string
- type: 'null'
title: Name
type: object
title: ApiKeyCreationPayload
UserRead:
properties:
id:
type: string
format: uuid
title: Id
email:
type: string
format: email
title: Email
is_active:
type: boolean
title: Is Active
default: true
is_superuser:
type: boolean
title: Is Superuser
default: false
is_verified:
type: boolean
title: Is Verified
default: false
tenant_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Tenant Id
parent_user_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Parent User Id
type: object
required:
- id
- email
title: UserRead
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
UserCreate:
properties:
email:
type: string
format: email
title: Email
password:
type: string
title: Password
is_active:
anyOf:
- type: boolean
- type: 'null'
title: Is Active
default: true
is_superuser:
anyOf:
- type: boolean
- type: 'null'
title: Is Superuser
default: false
is_verified:
type: boolean
title: Is Verified
default: true
type: object
required:
- email
- password
title: UserCreate
description: 'What the public sign-up route accepts. It has no ``parent_user_id``: a
parent can see its child''s agents and sessions and is granted every dataset
the child creates, so a parent is set only by ``create_agent``.'
Body_reset_forgot_password_api_v1_auth_forgot_password_post:
properties:
email:
type: string
format: email
title: Email
type: object
required:
- email
title: Body_reset_forgot_password_api_v1_auth_forgot_password_post
Body_login_api_v1_auth_login_post:
properties:
grant_type:
anyOf:
- type: string
pattern: ^password$
- type: 'null'
title: Grant Type
username:
type: string
title: Username
password:
type: string
format: password
title: Password
scope:
type: string
title: Scope
default: ''
client_id:
anyOf:
- type: string
- type: 'null'
title: Client Id
client_secret:
anyOf:
- type: string
- type: 'null'
format: password
title: Client Secret
type: object
required:
- username
- password
title: Body_login_api_v1_auth_login_post
Body_verify_request_token_api_v1_auth_request_verify_token_post:
properties:
email:
type: string
format: email
title: Email
type: object
required:
- email
title: Body_verify_request_token_api_v1_auth_request_verify_token_post
Body_reset_reset_password_api_v1_auth_reset_password_post:
properties:
token:
type: string
title: Token
password:
type: string
title: Password
type: object
required:
- token
- password
title: Body_reset_reset_password_api_v1_auth_reset_password_post
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
ErrorModel:
properties:
detail:
anyOf:
- type: string
- additionalProperties:
type: string
type: object
title: Detail
type: object
required:
- detail
title: ErrorModel
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-Api-Key
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
CookieAuth:
type: apiKey
in: cookie
name: auth_token
x-provenance:
method: harvested
publisher: Cognee
source: https://docs.cognee.ai/cognee_openapi_spec.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)