// rest api

Referência da API

Integre o data2md no seu fluxo com um único HTTP POST. Conversão por streaming via pdftotext, máximo de 500 MB por requisição.

Endpoint

POST https://data2md.ae8.com.br/api

Content-Type: multipart/form-data

Campos da requisição

CampoTipoObrigatórioDescrição
filefileSimO arquivo a converter. Máx 500 MB.
formatstringNãoFormato do arquivo. Padrão: pdf. Suportado atualmente: pdf.

Resposta de sucesso 201 Created

{
  "success": true,
  "hash": "a3f9c12b84e7d01",
  "original_name": "report.pdf",
  "format": "pdf",
  "lines": 148,
  "characters": 9342,
  "download_url": "/download?hash=a3f9c12b84e7d01",
  "markdown": "# Report Title\n\n..."
}

Resposta de erro 4xx · 5xx

{
  "success": false,
  "message": "Validation failed.",
  "errors": ["File content does not match allowed types for this format."]
}

Limites de uso

20 requisições por minuto por IP. Exceder retorna 429 Too Many Requests com cabeçalho Retry-After: 60.

Exemplos

cURL

curl -X POST https://data2md.ae8.com.br/api \
  -F "file=@document.pdf" \
  -F "format=pdf"

PHP

// stream a file via cURL
$ch = curl_init('https://data2md.ae8.com.br/api');
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS     => [
        'file'   => new CURLFile('document.pdf', 'application/pdf', 'document.pdf'),
        'format' => 'pdf',
    ],
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
echo $data['markdown'];

Python

import requests

with open('document.pdf', 'rb') as f:
    r = requests.post('https://data2md.ae8.com.br/api', files={'file': f}, data={'format': 'pdf'})

data = r.json()
print(data['markdown'])