AnimGen AI Auth API

The Auth API from AnimGen AI — 10 operation(s) for auth.

Operations 10

GET /api/auth/me Auth Me #
GET /api/auth/config Auth Config #
POST /api/auth/signup-fingerprint-challenge Signup Fingerprint Challenge #
POST /api/auth/register Auth Register #
POST /api/auth/google Auth Google #
POST /api/auth/google/link Auth Google Link #
POST /api/auth/login Auth Login #
POST /api/auth/verify_email Auth Verify Email #
POST /api/auth/verify_email/resend Auth Resend Verify Email #
POST /api/auth/logout Auth Logout #

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/animgen-com:animgen-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

animgen-com-auth-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: AIAnimGenBackend Auth API
  version: 0.2.0
tags:
- name: Auth
paths:
  /api/auth/me:
    get:
      summary: Auth Me
      operationId: auth_me_api_auth_me_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserOut'
      tags:
      - Auth
  /api/auth/config:
    get:
      summary: Auth Config
      operationId: auth_config_api_auth_config_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthConfigOut'
      tags:
      - Auth
  /api/auth/signup-fingerprint-challenge:
    post:
      summary: Signup Fingerprint Challenge
      operationId: signup_fingerprint_challenge_api_auth_signup_fingerprint_challenge_post
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SignupFingerprintChallengeOut'
      tags:
      - Auth
  /api/auth/register:
    post:
      summary: Auth Register
      operationId: auth_register_api_auth_register_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthRegisterRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserOut'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Auth
  /api/auth/google:
    post:
      summary: Auth Google
      operationId: auth_google_api_auth_google_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GoogleAuthRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleAuthOut'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Auth
  /api/auth/google/link:
    post:
      summary: Auth Google Link
      operationId: auth_google_link_api_auth_google_link_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GoogleAuthRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleAuthOut'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Auth
  /api/auth/login:
    post:
      summary: Auth Login
      operationId: auth_login_api_auth_login_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthCredentials'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserOut'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Auth
  /api/auth/verify_email:
    post:
      summary: Auth Verify Email
      operationId: auth_verify_email_api_auth_verify_email_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VerifyEmailRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserOut'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Auth
  /api/auth/verify_email/resend:
    post:
      summary: Auth Resend Verify Email
      operationId: auth_resend_verify_email_api_auth_verify_email_resend_post
      parameters:
      - name: locale
        in: query
        required: false
        schema:
          enum:
          - en
          - zh
          - ja
          - ko
          - zh-Hant
          - de
          type: string
          default: en
          title: Locale
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      tags:
      - Auth
  /api/auth/logout:
    post:
      summary: Auth Logout
      operationId: auth_logout_api_auth_logout_post
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
      tags:
      - Auth
components:
  schemas:
    GoogleAuthConfigOut:
      properties:
        enabled:
          type: boolean
          title: Enabled
          default: false
        clientId:
          type: string
          title: Clientid
          default: ''
      type: object
      title: GoogleAuthConfigOut
    AcquisitionContext:
      properties:
        version:
          type: integer
          const: 1
          title: Version
        first:
          $ref: '#/components/schemas/AcquisitionTouch'
        session:
          $ref: '#/components/schemas/AcquisitionTouch'
        last_non_direct:
          anyOf:
          - $ref: '#/components/schemas/AcquisitionTouch'
          - type: 'null'
      additionalProperties: false
      type: object
      required:
      - version
      - first
      - session
      title: AcquisitionContext
    ResearchConsentChoice:
      properties:
        optIn:
          type: boolean
          title: Optin
        version:
          type: string
          maxLength: 64
          title: Version
        locale:
          type: string
          enum:
          - en
          - zh
          - ja
          - ko
          - zh-Hant
          - de
          title: Locale
      additionalProperties: false
      type: object
      required:
      - optIn
      - version
      - locale
      title: ResearchConsentChoice
    RegistrationAttribution:
      properties:
        acquisition:
          anyOf:
          - $ref: '#/components/schemas/AcquisitionContext'
          - type: 'null'
        source_surface:
          type: string
          enum:
          - public_marketing
          - documentation
          - app_entry
          title: Source Surface
        acquisition_channel:
          type: string
          enum:
          - organic_search
          - paid_search
          - email
          - social
          - referral
          - internal
          - direct
          - unknown
          title: Acquisition Channel
        acquisition_surface:
          type: string
          enum:
          - web_citation
          - web_search
          - web_campaign
          - web_referral
          - direct
          - internal
          - unknown
          title: Acquisition Surface
        ai_referrer:
          type: string
          enum:
          - chatgpt
          - claude
          - perplexity
          - gemini
          - copilot
          - yandex_alice
          - other_ai
          - none
          title: Ai Referrer
        is_organic_search:
          type: boolean
          title: Is Organic Search
        landing_path:
          type: string
          maxLength: 512
          minLength: 1
          title: Landing Path
        landing_referrer_host:
          type: string
          maxLength: 253
          title: Landing Referrer Host
          default: ''
        captured_at:
          type: string
          maxLength: 40
          minLength: 20
          title: Captured At
        cta_placement:
          anyOf:
          - type: string
            maxLength: 80
            minLength: 1
            pattern: ^[a-zA-Z0-9._~-]+$
          - type: 'null'
          title: Cta Placement
        cta_intent:
          anyOf:
          - type: string
            enum:
            - signup
            - start_generation
          - type: 'null'
          title: Cta Intent
        destination:
          anyOf:
          - type: string
            maxLength: 512
            minLength: 1
          - type: 'null'
          title: Destination
      additionalProperties: false
      type: object
      required:
      - source_surface
      - acquisition_channel
      - acquisition_surface
      - ai_referrer
      - is_organic_search
      - landing_path
      - captured_at
      title: RegistrationAttribution
      description: Privacy-safe, allowlisted web acquisition context for a new account.
    FingerprintProof:
      properties:
        version:
          type: string
          const: fingerprint-v4
          title: Version
          default: fingerprint-v4
        challenge:
          type: string
          maxLength: 256
          title: Challenge
        eventId:
          type: string
          pattern: ^[A-Za-z0-9._-]{8,128}$
          title: Eventid
      additionalProperties: false
      type: object
      required:
      - challenge
      - eventId
      title: FingerprintProof
    AuthCredentials:
      properties:
        email:
          type: string
          maxLength: 320
          format: email
          title: Email
        password:
          type: string
          maxLength: 200
          minLength: 8
          title: Password
      type: object
      required:
      - email
      - password
      title: AuthCredentials
    AuthRegisterRequest:
      properties:
        email:
          type: string
          maxLength: 320
          format: email
          title: Email
        password:
          type: string
          maxLength: 200
          minLength: 8
          title: Password
        locale:
          type: string
          enum:
          - en
          - zh
          - ja
          - ko
          - zh-Hant
          - de
          title: Locale
          default: en
        legalAcceptance:
          anyOf:
          - $ref: '#/components/schemas/LegalAcceptanceChoice'
          - type: 'null'
        researchConsent:
          anyOf:
          - $ref: '#/components/schemas/ResearchConsentChoice'
          - type: 'null'
        attribution:
          anyOf:
          - $ref: '#/components/schemas/RegistrationAttribution'
          - type: 'null'
        turnstileToken:
          anyOf:
          - type: string
            maxLength: 2048
          - type: 'null'
          title: Turnstiletoken
        fingerprintProof:
          anyOf:
          - $ref: '#/components/schemas/FingerprintProof'
          - type: 'null'
        fingerprintDiagnostic:
          anyOf:
          - $ref: '#/components/schemas/FingerprintClientDiagnostic'
          - type: 'null'
        analyticsAnonymousId:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Analyticsanonymousid
      type: object
      required:
      - email
      - password
      title: AuthRegisterRequest
    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
    SignupFingerprintChallengeOut:
      properties:
        enabled:
          type: boolean
          title: Enabled
          default: false
        version:
          type: string
          title: Version
          default: fingerprint-v4
        challenge:
          type: string
          title: Challenge
          default: ''
        publicApiKey:
          type: string
          title: Publicapikey
          default: ''
        region:
          type: string
          enum:
          - us
          - eu
          - ap
          title: Region
          default: us
      type: object
      title: SignupFingerprintChallengeOut
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    VerifyEmailRequest:
      properties:
        token:
          type: string
          maxLength: 300
          minLength: 10
          title: Token
      type: object
      required:
      - token
      title: VerifyEmailRequest
    FingerprintClientDiagnostic:
      properties:
        stage:
          type: string
          enum:
          - challenge
          - config
          - script_load
          - agent_start
          - signal_collection
          - identify
          - response
          - complete
          title: Stage
        errorCode:
          type: string
          enum:
          - none
          - challenge_request_failed
          - invalid_config
          - invalid_response
          - collection_timeout
          - unknown_error
          - api_key_missing
          - api_key_invalid
          - endpoints_misconfigured
          - invalid_endpoint
          - cache_misconfigured
          - wrong_worker_option
          - script_load_fail
          - csp_block
          - sandboxed_iframe
          - client_timeout
          - network_connection
          - network_abort
          - bad_response_format
          title: Errorcode
        durationMs:
          type: integer
          maximum: 60000.0
          minimum: 0.0
          title: Durationms
      type: object
      required:
      - stage
      - errorCode
      - durationMs
      title: FingerprintClientDiagnostic
      description: Untrusted, allowlisted telemetry. Never an input to promo eligibility.
    AcquisitionTouch:
      properties:
        source:
          type: string
          maxLength: 64
          minLength: 1
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9._~-]*$
          title: Source
        channel:
          type: string
          enum:
          - organic_search
          - paid_search
          - paid_social
          - paid_other
          - social
          - email
          - ai
          - referral
          - campaign
          - direct_unknown
          - internal
          - payment_return
          - auth_return
          title: Channel
        referrer_host:
          type: string
          maxLength: 253
          title: Referrer Host
          default: ''
        landing_path:
          type: string
          maxLength: 512
          minLength: 1
          pattern: ^/[a-zA-Z0-9/_~.-]*$
          title: Landing Path
        captured_at:
          type: string
          maxLength: 40
          minLength: 20
          title: Captured At
        evidence:
          type: string
          enum:
          - utm
          - click_id
          - referrer
          - none
          title: Evidence
        click_platform:
          type: string
          enum:
          - google
          - microsoft
          - meta
          - tiktok
          - linkedin
          - none
          title: Click Platform
        utm_source:
          anyOf:
          - type: string
            maxLength: 64
            minLength: 1
            pattern: ^[a-zA-Z0-9][a-zA-Z0-9._~-]*$
          - type: 'null'
          title: Utm Source
        utm_medium:
          anyOf:
          - type: string
            maxLength: 64
            minLength: 1
            pattern: ^[a-zA-Z0-9][a-zA-Z0-9._~-]*$
          - type: 'null'
          title: Utm Medium
        utm_campaign:
          anyOf:
          - type: string
            maxLength: 64
            minLength: 1
            pattern: ^[a-zA-Z0-9][a-zA-Z0-9._~-]*$
          - type: 'null'
          title: Utm Campaign
        utm_content:
          anyOf:
          - type: string
            maxLength: 64
            minLength: 1
            pattern: ^[a-zA-Z0-9][a-zA-Z0-9._~-]*$
          - type: 'null'
          title: Utm Content
        utm_term:
          anyOf:
          - type: string
            maxLength: 64
            minLength: 1
            pattern: ^[a-zA-Z0-9][a-zA-Z0-9._~-]*$
          - type: 'null'
          title: Utm Term
      additionalProperties: false
      type: object
      required:
      - source
      - channel
      - landing_path
      - captured_at
      - evidence
      - click_platform
      title: AcquisitionTouch
      description: Bounded campaign labels and host/path only; never raw click IDs or URLs.
    AuthConfigOut:
      properties:
        google:
          $ref: '#/components/schemas/GoogleAuthConfigOut'
        turnstile:
          $ref: '#/components/schemas/TurnstileAuthConfigOut'
      type: object
      title: AuthConfigOut
    GoogleAuthOut:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        email:
          type: string
          title: Email
        emailVerified:
          type: boolean
          title: Emailverified
          default: false
        isInternalUser:
          type: boolean
          title: Isinternaluser
          default: false
        welcomeCreditStatus:
          type: string
          enum:
          - pending
          - granted
          - withheld
          - not_applicable
          title: Welcomecreditstatus
          default: not_applicable
        emailVerificationRetryAfterSeconds:
          type: integer
          title: Emailverificationretryafterseconds
          default: 0
        researchConsentRecorded:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Researchconsentrecorded
        isNewUser:
          type: boolean
          title: Isnewuser
          default: false
      type: object
      required:
      - id
      - email
      title: GoogleAuthOut
    UserOut:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        email:
          type: string
          title: Email
        emailVerified:
          type: boolean
          title: Emailverified
          default: false
        isInternalUser:
          type: boolean
          title: Isinternaluser
          default: false
        welcomeCreditStatus:
          type: string
          enum:
          - pending
          - granted
          - withheld
          - not_applicable
          title: Welcomecreditstatus
          default: not_applicable
        emailVerificationRetryAfterSeconds:
          type: integer
          title: Emailverificationretryafterseconds
          default: 0
        researchConsentRecorded:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Researchconsentrecorded
      type: object
      required:
      - id
      - email
      title: UserOut
    LegalAcceptanceChoice:
      properties:
        accepted:
          type: boolean
          title: Accepted
        termsVersion:
          type: string
          maxLength: 64
          minLength: 1
          title: Termsversion
        privacyVersion:
          type: string
          maxLength: 64
          minLength: 1
          title: Privacyversion
        locale:
          type: string
          enum:
          - en
          - zh
          - ja
          - ko
          - zh-Hant
          - de
          title: Locale
      additionalProperties: false
      type: object
      required:
      - accepted
      - termsVersion
      - privacyVersion
      - locale
      title: LegalAcceptanceChoice
    TurnstileAuthConfigOut:
      properties:
        enabled:
          type: boolean
          title: Enabled
          default: false
        siteKey:
          type: string
          title: Sitekey
          default: ''
        action:
          type: string
          title: Action
          default: signup
      type: object
      title: TurnstileAuthConfigOut
    GoogleAuthRequest:
      properties:
        credential:
          type: string
          maxLength: 16000
          minLength: 100
          title: Credential
        legalAcceptance:
          anyOf:
          - $ref: '#/components/schemas/LegalAcceptanceChoice'
          - type: 'null'
        researchConsent:
          anyOf:
          - $ref: '#/components/schemas/ResearchConsentChoice'
          - type: 'null'
        attribution:
          anyOf:
          - $ref: '#/components/schemas/RegistrationAttribution'
          - type: 'null'
        turnstileToken:
          anyOf:
          - type: string
            maxLength: 2048
          - type: 'null'
          title: Turnstiletoken
        fingerprintProof:
          anyOf:
          - $ref: '#/components/schemas/FingerprintProof'
          - type: 'null'
        fingerprintDiagnostic:
          anyOf:
          - $ref: '#/components/schemas/FingerprintClientDiagnostic'
          - type: 'null'
        analyticsAnonymousId:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Analyticsanonymousid
      type: object
      required:
      - credential
      title: GoogleAuthRequest
  securitySchemes:
    AnimGenAPIKey:
      type: http
      description: Server-side AnimGen API key using the ag_live_ prefix
      scheme: bearer