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

# Post v1projects report

> Submit CLI translation run report. Updates locale status to "synced" or "error", stores translated content as snapshots, creates activity log entries, and clears pending diff when all locales are synced. Called by CLI after local AI translation completes.



## OpenAPI

````yaml https://hidden-wildcat-614.convex.site/v1/openapi post /v1/projects/{projectId}/report
openapi: 3.0.0
info:
  version: 2.0.0
  title: LazyLocales API
  description: >-
    AI-powered translation management REST API with CLI-first workflow.


    ## Authentication

    All endpoints require `Authorization: Bearer <token>`. Two token types:

    - **Access token** — from `lazylocales login` or user session

    - **Project API token** — prefixed `ll_`, created in project settings for
    CI/CD


    ## Workflow

    Translations are managed via the CLI using local AI translation with models
    like GPT-4o, Claude, Gemini, or Mistral. The dashboard provides read-only
    monitoring and project configuration.


    ## Error Format

    All errors follow: `{ "error": { "code": "ERROR_CODE", "message": "..." } }`
servers:
  - url: https://{deployment}.convex.site
    description: Convex deployment
    variables:
      deployment:
        default: your-deployment
        description: Your Convex deployment name
security: []
tags:
  - name: Projects
    description: Project management endpoints
  - name: Source Files
    description: Source locale file operations
  - name: Locales
    description: Locale status and management
  - name: CLI
    description: CLI config and reporting endpoints
  - name: API Tokens
    description: API token management
paths:
  /v1/projects/{projectId}/report:
    post:
      tags:
        - CLI
      description: >-
        Submit CLI translation run report. Updates locale status to "synced" or
        "error", stores translated content as snapshots, creates activity log
        entries, and clears pending diff when all locales are synced. Called by
        CLI after local AI translation completes.
      parameters:
        - schema:
            type: string
            minLength: 1
            example: proj_abc123
          required: true
          name: projectId
          in: path
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CliReport'
      responses:
        '200':
          description: Report processed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                required:
                  - success
components:
  schemas:
    CliReport:
      type: object
      properties:
        sourceFileHash:
          type: string
          example: abc123
        sourceFileVersion:
          type: number
          example: 5
        cliVersion:
          type: string
          example: 0.2.0
        runs:
          type: array
          items:
            type: object
            properties:
              locale:
                type: string
                minLength: 2
                maxLength: 10
                pattern: ^[a-z]{2,3}(-[A-Z]{2,3})?$/i
                example: nl-NL
              status:
                type: string
                enum:
                  - synced
                  - error
                example: synced
              keysTranslated:
                type: number
                example: 142
              totalKeys:
                type: number
                example: 142
              durationMs:
                type: number
                example: 8200
              content:
                type: string
                example: '{ "auth": { "signIn": { "button": "Inloggen" } } }'
            required:
              - locale
              - status
              - keysTranslated
              - totalKeys
              - durationMs
      required:
        - sourceFileHash
        - sourceFileVersion
        - runs

````