AnomalyArmor Authentication API

The Authentication API from AnomalyArmor — 6 operation(s) for authentication.

Operations 7

POST /api/v1/auth/login Login #
PUT /api/v1/auth/tokens/current Refresh Token #
POST /api/v1/auth/logout Logout #
POST /api/v1/auth/register Register #
GET /api/v1/auth/me Get Current User Info #
PATCH /api/v1/auth/me Update Profile #
POST /api/v1/auth/change-password Change 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/anomalyarmor-ai:anomalyarmor-ai-authentication-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

anomalyarmor-ai-authentication-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Anomalyarmor Ai Authentication API
  version: 1.0.0
  contact:
    name: AnomalyArmor Support
    url: https://anomalyarmor.ai/support
  license:
    name: Proprietary
  description: 'Operations tagged Authentication across 3 of this provider''s published API definitions: anomalyarmor.ai-openapi.json, app.anomalyarmor.ai-openapi.json, docs.anomalyarmor.ai-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: http://localhost:8000
  description: Development server
- url: https://api.anomalyarmor.ai
  description: Production server
tags:
- name: Authentication
paths:
  /api/v1/auth/login:
    post:
      tags:
      - Authentication
      summary: Login
      description: 'Login with email and password.


        TECH-663: Rate limited to 5 attempts per minute per IP to prevent brute force.


        Args:

        http_request: FastAPI request for IP extraction

        request: Login credentials

        session: Database session


        Returns:

        Login response with tokens


        Raises:

        UnauthorizedError: If credentials are invalid

        ForbiddenError: If account is locked'
      operationId: login_api_v1_auth_login_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LoginRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoginResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: http://localhost:8000
      description: Development server
    - url: https://api.anomalyarmor.ai
      description: Production server
  /api/v1/auth/tokens/current:
    put:
      tags:
      - Authentication
      summary: Refresh Token
      description: 'Refresh access token using refresh token.


        Args:

        request: Refresh token request

        session: Database session


        Returns:

        New tokens


        Raises:

        UnauthorizedError: If token is invalid or expired'
      operationId: refresh_token_api_v1_auth_tokens_current_put
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefreshTokenRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefreshTokenResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: http://localhost:8000
      description: Development server
    - url: https://api.anomalyarmor.ai
      description: Production server
  /api/v1/auth/logout:
    post:
      tags:
      - Authentication
      summary: Logout
      description: 'Logout current user session.


        Args:

        current_user: Current authenticated user

        session: Database session


        Raises:

        HTTPException: If logout fails'
      operationId: logout_api_v1_auth_logout_post
      parameters:
      - name: Authorization
        in: header
        required: false
        schema:
          type: string
          title: Authorization
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: http://localhost:8000
      description: Development server
    - url: https://api.anomalyarmor.ai
      description: Production server
  /api/v1/auth/register:
    post:
      tags:
      - Authentication
      summary: Register
      description: 'Register a new user.


        TECH-663: Rate limited to 3 attempts per minute per IP.


        Args:

        http_request: FastAPI request for IP extraction

        request: Registration data

        session: Database session


        Returns:

        Created user


        Raises:

        ConflictError: If user already exists

        BadRequestError: If password is too weak'
      operationId: register_api_v1_auth_register_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterRequest'
        required: true
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: http://localhost:8000
      description: Development server
    - url: https://api.anomalyarmor.ai
      description: Production server
  /api/v1/auth/me:
    get:
      tags:
      - Authentication
      summary: Get Current User Info
      description: 'Get current user information.


        Args:

        current_user: Current authenticated user

        session: Database session


        Returns:

        User information from database


        Raises:

        HTTPException: If request fails'
      operationId: get_current_user_info_api_v1_auth_me_get
      parameters:
      - name: Authorization
        in: header
        required: false
        schema:
          type: string
          title: Authorization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    patch:
      tags:
      - Authentication
      summary: Update Profile
      description: 'Update current user profile.


        Args:

        request: Profile update data

        current_user: Current authenticated user

        session: Database session


        Returns:

        Updated user


        Raises:

        HTTPException: If update fails'
      operationId: update_profile_api_v1_auth_me_patch
      parameters:
      - name: Authorization
        in: header
        required: false
        schema:
          type: string
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateProfileRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: http://localhost:8000
      description: Development server
    - url: https://api.anomalyarmor.ai
      description: Production server
  /api/v1/auth/change-password:
    post:
      tags:
      - Authentication
      summary: Change Password
      description: 'Change current user password.


        Args:

        request: Password change data

        current_user: Current authenticated user

        session: Database session


        Raises:

        NotFoundError: If user not found

        UnauthorizedError: If old password is invalid

        BadRequestError: If new password is too weak'
      operationId: change_password_api_v1_auth_change_password_post
      parameters:
      - name: Authorization
        in: header
        required: false
        schema:
          type: string
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChangePasswordRequest'
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: http://localhost:8000
      description: Development server
    - url: https://api.anomalyarmor.ai
      description: Production server
components:
  schemas:
    UpdateProfileRequest:
      properties:
        first_name:
          anyOf:
          - type: string
          - type: 'null'
          title: First Name
        last_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Name
        email:
          anyOf:
          - type: string
            format: email
          - type: 'null'
          title: Email
        phone:
          anyOf:
          - type: string
          - type: 'null'
          title: Phone
        timezone:
          anyOf:
          - type: string
          - type: 'null'
          title: Timezone
        company_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Company Name
        notify_product_newsletters:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Notify Product Newsletters
        notify_billing_alerts:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Notify Billing Alerts
      type: object
      title: UpdateProfileRequest
      description: Update profile request model.
    RegisterRequest:
      properties:
        email:
          type: string
          format: email
          title: Email
        password:
          type: string
          title: Password
        first_name:
          anyOf:
          - type: string
          - type: 'null'
          title: First Name
        last_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Name
        company_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: Company Id
      type: object
      required:
      - email
      - password
      title: RegisterRequest
      description: 'User registration request model.


        This endpoint is currently disabled. The frontend uses Clerk OAuth.

        company_id is accepted by the schema but rejected by the endpoint in all cases

        until an invitation-based join flow is implemented.'
    LoginRequest:
      properties:
        email:
          type: string
          format: email
          title: Email
        password:
          type: string
          title: Password
      type: object
      required:
      - email
      - password
      title: LoginRequest
      description: Login request model.
    RefreshTokenRequest:
      properties:
        refresh_token:
          type: string
          title: Refresh Token
      type: object
      required:
      - refresh_token
      title: RefreshTokenRequest
      description: Refresh token request model.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ChangePasswordRequest:
      properties:
        old_password:
          type: string
          title: Old Password
        new_password:
          type: string
          title: New Password
      type: object
      required:
      - old_password
      - new_password
      title: ChangePasswordRequest
      description: Change password request model.
    RefreshTokenResponse:
      properties:
        access_token:
          type: string
          title: Access Token
        refresh_token:
          type: string
          title: Refresh Token
        token_type:
          type: string
          title: Token Type
          default: Bearer
      type: object
      required:
      - access_token
      - refresh_token
      title: RefreshTokenResponse
      description: Refresh token response model.
    UserResponse:
      properties:
        id:
          type: integer
          title: Id
        email:
          type: string
          title: Email
        first_name:
          anyOf:
          - type: string
          - type: 'null'
          title: First Name
        last_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Name
        full_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Full Name
        company_id:
          type: integer
          title: Company Id
        role:
          anyOf:
          - type: string
          - type: 'null'
          title: Role
        is_active:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Is Active
        is_locked:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Is Locked
        is_superuser:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Is Superuser
        is_allowlisted:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Is Allowlisted
        company_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Company Name
        phone:
          anyOf:
          - type: string
          - type: 'null'
          title: Phone
        timezone:
          anyOf:
          - type: string
          - type: 'null'
          title: Timezone
        clerk_user_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Clerk User Id
        created_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Created At
        updated_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Updated At
        notify_product_newsletters:
          type: boolean
          title: Notify Product Newsletters
          default: true
        notify_billing_alerts:
          type: boolean
          title: Notify Billing Alerts
          default: true
        onboarding_completed:
          type: boolean
          title: Onboarding Completed
          default: false
        is_impersonation:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Is Impersonation
        impersonated_by:
          anyOf:
          - type: integer
          - type: 'null'
          title: Impersonated By
      type: object
      required:
      - id
      - email
      - company_id
      title: UserResponse
      description: User response model.
    LoginResponse:
      properties:
        access_token:
          type: string
          title: Access Token
        refresh_token:
          type: string
          title: Refresh Token
        token_type:
          type: string
          title: Token Type
          default: Bearer
        user_id:
          type: integer
          title: User Id
        email:
          type: string
          title: Email
        role:
          type: string
          title: Role
      type: object
      required:
      - access_token
      - refresh_token
      - user_id
      - email
      - role
      title: LoginResponse
      description: Login response model.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
x-refined-from:
- anomalyarmor.ai-openapi.json
- app.anomalyarmor.ai-openapi.json
- docs.anomalyarmor.ai-openapi.json