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

# Gerar llms.txt

> Este endpoint gera um arquivo llms.txt para uma URL informada.

## POST /generate

Este endpoint inicia a geração de um arquivo `llms.txt`. Aceita os métodos de geração "simple" e "enhanced", conforme o plano do usuário.

<Note>
  A geração enhanced usa IA para títulos e descrições de maior qualidade. Custa o dobro de créditos em relação à geração simples.
</Note>

### Corpo da requisição

<ParamField body="url" type="string" required>
  URL do site para o qual gerar o arquivo. Deve ser uma URL válida com protocolo http ou https.
</ParamField>

<ParamField body="options" type="object">
  Objeto com opções de geração.

  <Expandable title="Propriedades de options">
    <ParamField body="maxUrls" type="number" default="50">
      Número máximo de URLs a incluir. Intervalo: 1–1000.
    </ParamField>

    <ParamField body="showFullText" type="boolean" default="false">
      Se deve incluir o texto completo de cada página na saída.
    </ParamField>

    <ParamField body="includeModificationDate" type="boolean" default="false">
      Se deve incluir datas da última modificação das URLs.
    </ParamField>

    <ParamField body="generationMethod" type="string" default="enhanced">
      Pode ser `simple` ou `enhanced`. Simple usa metadados da página; enhanced usa IA para melhores títulos/descrições.
    </ParamField>

    <ParamField body="cacheAge" type="number" default="3600000">
      Idade do cache em milissegundos. O padrão é 1 hora para scraping mais rápido.
    </ParamField>
  </Expandable>
</ParamField>

### Resposta

<ResponseField name="jobId" type="string">
  Identificador único do job de geração.
</ResponseField>

<ResponseField name="status" type="string">
  Status do job: `queued`, `processing`, `completed` ou `failed`.
</ResponseField>

<ResponseField name="progress" type="number">
  Percentual de progresso (0–100).
</ResponseField>

<ResponseField name="message" type="string">
  Mensagem de status legível.
</ResponseField>

<ResponseField name="fileUrl" type="string">
  URL onde o arquivo `llms.txt` gerado pode ser acessado.
</ResponseField>

<ResponseField name="fullTextUrl" type="string">
  URL da versão com texto completo do llms.txt (se showFullText estiver habilitado).
</ResponseField>

<ResponseField name="siteId" type="string">
  ID do site criado ou atualizado nesta geração.
</ResponseField>

<ResponseField name="creditsUsed" type="number">
  Quantidade de créditos debitados nesta geração.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://api.llmgenerator.com/api/v1/generate \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
          "url": "https://www.example.com",
          "options": {
            "maxUrls": 25,
            "generationMethod": "enhanced",
            "showFullText": true
          }
        }'
  ```

  ```javascript Node.js theme={null}
  const response = await fetch('https://api.llmgenerator.com/api/v1/generate', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      url: 'https://www.example.com',
      options: {
        maxUrls: 25,
        generationMethod: 'enhanced'
      }
    })
  });

  const data = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      'https://api.llmgenerator.com/api/v1/generate',
      headers={
          'Authorization': 'Bearer YOUR_API_KEY',
          'Content-Type': 'application/json'
      },
      json={
          'url': 'https://www.example.com',
          'options': {
              'maxUrls': 25,
              'generationMethod': 'enhanced'
          }
      }
  )

  data = response.json()
  ```
</RequestExample>

<ResponseExample>
  ```json Resposta de sucesso theme={null}
  {
    "jobId": "550e8400-e29b-41d4-a716-446655440000",
    "status": "completed",
    "progress": 100,
    "message": "File generated successfully",
    "fileUrl": "https://api.llmgenerator.com/api/v1/file/site_xxxxx",
    "fullTextUrl": "https://api.llmgenerator.com/api/v1/file/site_xxxxx?full=true",
    "siteId": "site_xxxxx",
    "creditsUsed": 50
  }
  ```

  ```json Créditos insuficientes (402) theme={null}
  {
    "message": "Insufficient credits. Required: 50, Available: 10. Please purchase more credits to continue."
  }
  ```
</ResponseExample>
