> ## Documentation Index
> Fetch the complete documentation index at: https://docs.factrove.app/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Describe what the running code does. Do not invent hosted pricing, launch dates, or security guarantees. Share and viewer links are a configured base URL plus an artifact path. Show localhost and a placeholder origin such as https://library.example.com.

# Sign in with email and password

> Better Auth email/password sign-in. Passwords are 8 to 128 characters. Rate limited to 10 requests per 60 seconds per client address. Sets the session cookie. The response body is Better Auth JSON.



## OpenAPI

````yaml /api-reference/openapi.json post /api/auth/sign-in/email
openapi: 3.1.0
info:
  title: Factrove HTTP API
  version: 0.1.0
  description: >-
    Generated from `@factrove/contracts` schemas and the HTTP operation catalog.
    Product routes live under `/api/v1`. Auth and API key management live under
    `/api/auth`. Do not treat this file as hand-written. Run `pnpm docs:openapi`
    after contract or route-catalog changes.
servers:
  - url: http://localhost:3001
    description: Local development API origin
  - url: https://api.example.com
    description: Example self-hosted API origin
security: []
tags:
  - name: Health
    description: Process liveness.
  - name: Auth
    description: Sessions and API keys.
  - name: Artifacts
    description: Upload, list, rename, delete, detail, and content.
  - name: Shares
    description: Owner public-link and password controls.
  - name: Public
    description: Anonymous share detail, unlock, and HTML.
paths:
  /api/auth/sign-in/email:
    post:
      tags:
        - Auth
      summary: Sign in with email and password
      description: >-
        Better Auth email/password sign-in. Passwords are 8 to 128 characters.
        Rate limited to 10 requests per 60 seconds per client address. Sets the
        session cookie. The response body is Better Auth JSON.
      operationId: signInEmail
      requestBody:
        required: true
        description: Email and password (8 to 128 characters).
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SignInEmailRequest'
            example:
              email: owner@example.com
              password: replace-this-password
      responses:
        '200':
          description: Signed in. Better Auth JSON and a session cookie.
        '400':
          description: >-
            Better Auth validation failure, such as `INVALID_EMAIL` or
            `PASSWORD_TOO_LONG`.
        '401':
          description: >-
            Unknown user or wrong password. Better Auth
            `INVALID_EMAIL_OR_PASSWORD`.
        '429':
          description: Too many sign-in attempts from this client address.
      security: []
components:
  schemas:
    SignInEmailRequest:
      type: object
      properties:
        email:
          type: string
        password:
          type: string
          minLength: 8
          maxLength: 128
      required:
        - email
        - password
      additionalProperties: false

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.