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

# Generate Forms

> Trigger form generation or regeneration for a specific title entry

This endpoint synchronously generates or regenerates forms for a title entry and returns `{ "entryId": "..." }` when complete.

Forms are automatically generated when creating a title entry, but this endpoint allows you to manually trigger regeneration if account data has been updated or forms need to be recreated.

## Path Parameters

<ParamField path="id" type="string" required>
  The unique identifier (entryId) of the title entry
</ParamField>

## Response

<ResponseField name="entryId" type="string">
  The ID of the title entry whose forms were generated.
</ResponseField>

## Forms Generated

Depending on the transaction type and state, this endpoint may generate:

* **Power of Attorney (POA)** forms
* **Title Application** forms
* **Lien Addition** forms
* **Duplicate Title** forms
* **Repossession Affidavit** forms
* **Odometer Disclosure** forms
* **VIN Verification** forms
* State-specific supplementary forms

<RequestExample>
  ```bash theme={null}
  curl -X POST "https://api.cardinalgray.com/title/123e4567-e89b-12d3-a456-426614174000/forms" \
    -H "Authorization: Bearer YOUR_API_KEY"
  ```
</RequestExample>

<ResponseExample>
  ```json theme={null}
  {
    "entryId": "123e4567-e89b-12d3-a456-426614174000"
  }
  ```
</ResponseExample>


## OpenAPI

````yaml POST /title/{id}/forms
openapi: 3.0.1
info:
  title: Cardinal Gray OpenAPI
  description: OpenAPI for automating vehicle title work
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.cardinalzyn.com
    description: Staging
  - url: https://api.cardinalgray.com
    description: Production
security:
  - bearerAuth: []
  - basicAuth: []
  - cookieAuth: []
paths:
  /title/{id}/forms:
    post:
      summary: Generate forms for a title entry
      description: >-
        Synchronously generates or regenerates forms for a title entry based on
        the account data and transaction type. Partner-facing requests use the
        default form generation behavior and return the entryId when complete.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: Unique identifier of the title entry
      responses:
        '200':
          description: Forms generated or regenerated successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  entryId:
                    type: string
                    description: ID of the title entry whose forms were generated
                required:
                  - entryId
        '403':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - bearerAuth: []
        - basicAuth: []
        - cookieAuth: []
components:
  responses:
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Response'
    NotFound:
      description: Not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Response'
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Response'
  schemas:
    Response:
      type: object
      properties:
        error:
          type: string
          description: Error message
        statusCode:
          type: number
          description: >-
            HTTP status code. Present on selected success responses, such as
            DELETE /title/{id}.
        disallowedFields:
          type: array
          items:
            type: string
          description: >-
            Fields rejected by PATCH /title/{id} when attempting to modify
            restricted top-level fields
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'API key or Clerk JWT supplied as Authorization: Bearer <token>'
    basicAuth:
      type: http
      scheme: basic
      description: >-
        Legacy API key authentication supplied with Authorization: Basic
        <api_key>
    cookieAuth:
      type: apiKey
      in: cookie
      name: __session
      description: Clerk session cookie authentication

````