cQnce Auth – Tenant API

Tenant / admin registration and login

GitHub OpenAPI

Operations 5

POST /v1/auth/register Register a new tenant #
GET /v1/auth/activate/{token} Activate account #
POST /v1/auth/login Tenant login #
POST /v1/auth/forgot-password Request password reset #
POST /v1/auth/reset-password Reset password #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cqnce-app:cqnce-app-auth-tenant-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

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 Specification

cqnce-app-auth-tenant-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: cQnce Auth – Tenant API
  description: 'Authorization-request routing and agent-management API for the cQnce platform.


    ## Authentication


    | Scheme | Header | Used by |

    |---|---|---|

    | Bearer JWT (tenant) | `Authorization: Bearer ` | Dashboard / admin routes |

    | Bearer JWT (agent) | `Authorization: Bearer ` | Agent mobile app routes |

    | API Key | `x-api-key: ` | Server-to-server request submission |'
  version: 1.0.0
  contact:
    name: cQnce Support
servers:
- url: https://api.cqnce.app
  description: Production
tags:
- name: Auth – Tenant
  description: Tenant / admin registration and login
paths:
  /v1/auth/register:
    post:
      tags:
      - Auth – Tenant
      summary: Register a new tenant
      description: Creates a new tenant and admin user. A confirmation email with an activation link is sent to the provided address.
      operationId: registerTenant
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - name
              - email
              - password
              properties:
                name:
                  type: string
                  description: Tenant / organisation name
                  example: Acme Corp
                email:
                  type: string
                  format: email
                  example: admin@acme.com
                password:
                  type: string
                  minLength: 8
                  description: Must contain uppercase, lowercase, digit and special character
                  example: P@ssw0rd!
                captchaToken:
                  type: string
                  description: Cloudflare Turnstile token obtained from the frontend widget. Required when TURNSTILE_SECRET_KEY is configured on the server.
      responses:
        '201':
          description: Registration successful – activation email sent
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Email already registered
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/auth/activate/{token}:
    get:
      tags:
      - Auth – Tenant
      summary: Activate account
      description: Activates a newly-registered tenant account using the token from the email link.
      operationId: activateAccount
      parameters:
      - name: token
        in: path
        required: true
        schema:
          type: string
        description: Activation token received by email
      responses:
        '200':
          description: Account activated successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '400':
          description: Invalid or expired activation link
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/auth/login:
    post:
      tags:
      - Auth – Tenant
      summary: Tenant login
      description: Authenticates a tenant admin and returns a 24-hour JWT.
      operationId: loginTenant
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - email
              - password
              properties:
                email:
                  type: string
                  format: email
                  example: admin@acme.com
                password:
                  type: string
                  example: P@ssw0rd!
      responses:
        '200':
          description: Login successful
          content:
            application/json:
              schema:
                type: object
                properties:
                  token:
                    type: string
                    description: JWT (24h)
                  user:
                    $ref: '#/components/schemas/User'
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Invalid credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Account not activated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/auth/forgot-password:
    post:
      tags:
      - Auth – Tenant
      summary: Request password reset
      description: Sends a password-reset email to the provided address. Always returns a success message to avoid leaking which emails are registered.
      operationId: forgotPassword
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - email
              properties:
                email:
                  type: string
                  format: email
                  example: admin@acme.com
      responses:
        '200':
          description: Reset email sent (or address not found – message is the same to avoid enumeration)
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /v1/auth/reset-password:
    post:
      tags:
      - Auth – Tenant
      summary: Reset password
      description: Sets a new password using the token from the reset email. The token is valid for 15 minutes.
      operationId: resetPassword
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - token
              - password
              properties:
                token:
                  type: string
                  description: Reset token from the email link
                password:
                  type: string
                  minLength: 8
                  description: New password (must meet complexity policy)
      responses:
        '200':
          description: Password reset successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '400':
          description: Invalid token or weak password
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    User:
      type: object
      properties:
        id:
          type: string
          format: uuid
        email:
          type: string
          format: email
        role:
          type: string
          enum:
          - ADMIN
          - MEMBER
        tenantId:
          type: string
          format: uuid
        tenantLanguage:
          type: string
          example: en
        tenantTimeZone:
          type: string
          example: UTC
    Error:
      type: object
      properties:
        error:
          type: string
          example: Validation failed
        details:
          type: array
          items:
            type: object
  securitySchemes:
    tenantJWT:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT issued on tenant login (`POST /v1/auth/login`)
    agentJWT:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT issued on agent login/register (`POST /v1/auth/agent/login` or `/register`)
    projectApiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: Per-project API key used for server-to-server request submission