Artificial Wit Auth API

The auth API from Artificial Wit — 12 operation(s) for auth.

Operations 12

POST /auth/token Token #
POST /auth/refresh_token Refresh Token #
POST /auth/forgot_password Forgot Password #
POST /auth/reset_password Reset Password #
POST /auth/users Create User #
POST /auth/change_password Change Password #
GET /auth/saml/init Saml Init #
POST /auth/saml/acs Saml Acs #
POST /auth/saml/verify Saml Verify #
POST /auth/mobile/otp/request Mobile Otp Request #
POST /auth/mobile/otp/verify Mobile Otp Verify #
POST /auth/mfa/login Mfa Login #

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/artificialwit-com:artificialwit-com-auth-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

artificialwit-com-auth-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: AI Agent Auth API
  version: 1.0.0
tags:
- name: Auth
paths:
  /auth/token:
    post:
      tags:
      - Auth
      summary: Token
      operationId: token_auth_token_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserLogin'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                title: Response Token Auth Token Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /auth/refresh_token:
    post:
      tags:
      - Auth
      summary: Refresh Token
      operationId: refresh_token_auth_refresh_token_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRefresh'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                title: Response Refresh Token Auth Refresh Token Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /auth/forgot_password:
    post:
      tags:
      - Auth
      summary: Forgot Password
      description: Public endpoint — generates a Supabase recovery link and sends via email_service.
      operationId: forgot_password_auth_forgot_password_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ForgotPassword'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseMessage'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /auth/reset_password:
    post:
      tags:
      - Auth
      summary: Reset Password
      description: 'Reset password using the recovery token from the forgot-password email link.

        No current password required — the recovery token proves identity.

        Frontend extracts the access_token from the URL hash after clicking the email link.'
      operationId: reset_password_auth_reset_password_post
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResetPassword'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseMessage'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /auth/users:
    post:
      tags:
      - Auth
      summary: Create User
      description: Admin endpoint — create a new Supabase auth user and profile.
      operationId: create_user_auth_users_post
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateUser'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseMessage'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /auth/change_password:
    post:
      tags:
      - Auth
      summary: Change Password
      description: Change the authenticated user's password. Requires a valid access token.
      operationId: change_password_auth_change_password_post
      parameters:
      - name: x-api-key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: X-Api-Key
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChangePassword'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseMessage'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /auth/saml/init:
    get:
      tags:
      - Auth
      summary: Saml Init
      description: Initiate a SAML SSO flow. Redirects the browser to the IdP login page.
      operationId: saml_init_auth_saml_init_get
      parameters:
      - name: tenant_code
        in: query
        required: true
        schema:
          type: string
          description: Tenant code to look up SAML configuration
          title: Tenant Code
        description: Tenant code to look up SAML configuration
      - name: return_url
        in: query
        required: false
        schema:
          type: string
          default: https://app.artificialwit.com/dashboard
          title: Return Url
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /auth/saml/acs:
    post:
      tags:
      - Auth
      summary: Saml Acs
      description: SAML Assertion Consumer Service — receives the IdP POST after authentication.
      operationId: saml_acs_auth_saml_acs_post
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Body_saml_acs_auth_saml_acs_post'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /auth/saml/verify:
    post:
      tags:
      - Auth
      summary: Saml Verify
      description: 'Exchange a SAML magic-link token_hash for an aw_token + aw_refresh.


        Called by the UI from /auth/saml-callback — the frontend never talks to

        Supabase directly, so this endpoint does the OTP exchange server-side.'
      operationId: saml_verify_auth_saml_verify_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SamlVerify'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                title: Response Saml Verify Auth Saml Verify Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /auth/mobile/otp/request:
    post:
      tags:
      - Auth
      summary: Mobile Otp Request
      description: Send a 4-digit OTP to the given mobile number. The number must be linked to an active profile.
      operationId: mobile_otp_request_auth_mobile_otp_request_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MobileOtpRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseMessage'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /auth/mobile/otp/verify:
    post:
      tags:
      - Auth
      summary: Mobile Otp Verify
      description: Verify the OTP and return a Supabase session (same shape as email/password login).
      operationId: mobile_otp_verify_auth_mobile_otp_verify_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MobileOtpVerify'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                title: Response Mobile Otp Verify Auth Mobile Otp Verify Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /auth/mfa/login:
    post:
      tags:
      - Auth
      summary: Mfa Login
      description: 'Verify email/password then send an OTP to the account''s linked mobile number.


        The caller must follow up with POST /auth/mobile/otp/verify to receive a session.'
      operationId: mfa_login_auth_mfa_login_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MfaLogin'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseMessage'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    Paging:
      properties:
        page_size:
          type: integer
          title: Page Size
          default: 1
        page_index:
          type: integer
          title: Page Index
          default: 1
        total_records:
          type: integer
          title: Total Records
          default: 0
      type: object
      title: Paging
    MobileOtpVerify:
      properties:
        mobile_no:
          type: string
          maxLength: 20
          minLength: 7
          title: Mobile No
        otp:
          type: string
          pattern: ^\d{4}$
          title: Otp
      type: object
      required:
      - mobile_no
      - otp
      title: MobileOtpVerify
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    MobileOtpRequest:
      properties:
        mobile_no:
          type: string
          maxLength: 20
          minLength: 7
          title: Mobile No
      type: object
      required:
      - mobile_no
      title: MobileOtpRequest
    ResponseMessage:
      properties:
        data:
          items: {}
          type: array
          title: Data
        paging:
          $ref: '#/components/schemas/Paging'
        message:
          type: string
          title: Message
          default: ''
        is_success:
          type: boolean
          title: Is Success
          default: true
        status_code:
          type: integer
          title: Status Code
          default: 200
      type: object
      title: ResponseMessage
    CreateUser:
      properties:
        email:
          type: string
          format: email
          title: Email
        password:
          type: string
          minLength: 6
          title: Password
        full_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Full Name
        data:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Data
      type: object
      required:
      - email
      - password
      title: CreateUser
    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
    ForgotPassword:
      properties:
        email:
          type: string
          format: email
          title: Email
        redirect_to:
          anyOf:
          - type: string
          - type: 'null'
          title: Redirect To
          description: Frontend reset-password page URL. Defaults to app_url setting.
      type: object
      required:
      - email
      title: ForgotPassword
    UserRefresh:
      properties:
        refresh_token:
          type: string
          minLength: 1
          title: Refresh Token
      type: object
      required:
      - refresh_token
      title: UserRefresh
    UserLogin:
      properties:
        email:
          type: string
          format: email
          title: Email
        password:
          type: string
          minLength: 1
          title: Password
      type: object
      required:
      - email
      - password
      title: UserLogin
    MfaLogin:
      properties:
        email:
          type: string
          format: email
          title: Email
        password:
          type: string
          minLength: 1
          title: Password
      type: object
      required:
      - email
      - password
      title: MfaLogin
    ChangePassword:
      properties:
        current_password:
          type: string
          minLength: 1
          title: Current Password
        password:
          type: string
          minLength: 6
          title: Password
      type: object
      required:
      - current_password
      - password
      title: ChangePassword
    SamlVerify:
      properties:
        token_hash:
          type: string
          minLength: 1
          title: Token Hash
        type:
          type: string
          title: Type
          default: magiclink
      type: object
      required:
      - token_hash
      title: SamlVerify
    ResetPassword:
      properties:
        password:
          type: string
          minLength: 6
          title: Password
      type: object
      required:
      - password
      title: ResetPassword
    Body_saml_acs_auth_saml_acs_post:
      properties:
        SAMLResponse:
          type: string
          title: Samlresponse
        RelayState:
          anyOf:
          - type: string
          - type: 'null'
          title: Relaystate
      type: object
      required:
      - SAMLResponse
      title: Body_saml_acs_auth_saml_acs_post
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer