Try the apicvm Demo API with VALE3 (No API Key)

You want to evaluate a CVM filings API before signing up — resolve a ticker, list documents, download a PDF, maybe read text. apicvm exposes a public demo API under /v1/demo/* that requires no API key. The scope is intentionally narrow: VALE3 only (Vale S.A., CNPJ 33592510000154).

This guide walks through the full demo workflow with curl: resolve, list, download, and read cached markdown for the FRE 2025 risk factors section.

What the demo offers

The demo mirrors the production contract for a single issuer. You can:

Route Purpose
GET /v1/demo/companies/resolve Resolve VALE3 by ticker, CNPJ, or name
GET /v1/demo/documents List filings for Vale (max perPage=20)
GET /v1/demo/documents/:id Document metadata
GET /v1/demo/documents/:id/file Download original file
GET /v1/demo/documents/:id/markdown Cached page-level markdown
GET /v1/demo/document-prefixes Prefix catalog by filing type

No Authorization header is required. Rate limits apply per IP, not per key.

Scope limits

Before you copy these commands into a prototype, understand the boundaries:

  • Company: VALE3 / CNPJ 33592510000154 only. Resolving PETR4 or any other ticker returns 403 FORBIDDEN.
  • Download and markdown: only FRE 2025 with prefix DescricaoFatoresRisco (risk factors). Other documents may appear in list results but file and markdown routes reject them.
  • No async extraction: POST /v1/document-text-extractions is not available on demo. Markdown comes from cache only.
  • Rate limit: 30 requests per minute and 200 requests per UTC day per IP (configurable server-side via APICVM_DEMO_*).

The demo is for evaluation, not production workloads.

Setup

Set the base URL once. No API key needed:

export APICVM_URL='https://apicvm.dev'

Step 1: Resolve VALE3

Confirm the demo resolves Vale by ticker:

curl "$APICVM_URL/v1/demo/companies/resolve?query=VALE3&by=ticker"

The response includes id, name, cnpj, sector, and tickers[] — same shape as the authenticated resolve endpoint.

Try a non-demo company to see the gate:

curl "$APICVM_URL/v1/demo/companies/resolve?query=PETR4&by=ticker"
# → 403 FORBIDDEN

Step 2: List FRE 2025 risk factors

Filter documents to the section you can download and read as markdown:

curl "$APICVM_URL/v1/demo/documents?ticker=VALE3&type=FRE&year=2025&name=DescricaoFatoresRisco&perPage=5"

Each item in data[] includes id (UUID), type, year, name, dateRef, and nested company. Pick a document id explicitly — the API does not auto-select when filters match multiple results.

Optional: inspect the prefix catalog for FRE section names:

curl "$APICVM_URL/v1/demo/document-prefixes?type=FRE"

Step 3: Document metadata

Before downloading, confirm the document belongs to the demo scope:

curl "$APICVM_URL/v1/demo/documents/<document-id>"

Returns the same fields as list items. Use this when your agent or script receives an ID from a prior step and needs to verify type, year, and name.

Step 4: Download the PDF

Stream the original filing from the demo bucket:

curl -OJ "$APICVM_URL/v1/demo/documents/<document-id>/file"

-OJ saves the file using the Content-Disposition filename. Only FRE 2025 DescricaoFatoresRisco files succeed; other IDs return 404 DOCUMENT_NOT_FOUND or a scope error.

Step 5: Read cached markdown

When extraction has already run on the server, markdown is available synchronously:

curl "$APICVM_URL/v1/demo/documents/<document-id>/markdown"

Response shape:

{
  "documentId": "550e8400-e29b-41d4-a716-446655440000",
  "totalPages": 16,
  "pages": [
    { "number": 1, "markdown": "# Fatores de risco\n\n..." },
    { "number": 2, "markdown": "..." }
  ]
}

If no cached pages exist (ocr_text with all_pages_done=true), the route returns 404 DOCUMENT_NOT_FOUND. Demo does not let you enqueue new extractions.

Rate limit headers

Demo responses include the same rate-limit headers as authenticated routes:

Header Meaning
X-RateLimit-Limit Max requests in the current window
X-RateLimit-Remaining Requests left
X-RateLimit-Reset Window reset (Unix timestamp)

Exceeding limits returns 429 RATE_LIMIT_EXCEEDED. Plan for backoff if you run integration tests against demo from a shared CI IP.

What demo does not include

Feature Demo Full API (with key)
Other tickers (PETR4, ABEV3, …) No Yes
All filing types / years for download No Yes
POST /v1/document-text-extractions No Pro plan
Higher rate limits 30/min, 200/day per IP Per-key plan limits

For production agents, RAG pipelines, or any issuer beyond Vale, you need an API key.

Current limitations

  • Demo coverage is fixed to VALE3 and one FRE 2025 section — not a representative sample of full corpus breadth.
  • List endpoints may show metadata for documents you cannot download on demo.
  • IP rate limits can block shared office or CI egress if many developers hit demo simultaneously.
  • Markdown is cache-only; you cannot trigger fresh extraction without a Pro key.

Next steps

Ready to integrate?

Get an API key and start querying Brazilian CVM filings programmatically.