AutoGen Tools for Brazil CVM Filings

Need AutoGen CVM filings tools for multi-agent research crews? Expose apicvm as function calls: resolve, list, download. Keep market-data tools separate — filings are a different product surface.

The problem

AutoGen agents that "browse the CVM portal" are fragile. HTTP tools with document UUIDs let a researcher agent cite document.id in notes another agent reviews.

Tool functions

import os, requests

BASE = os.environ["APICVM_URL"]
H = {"Authorization": f"Bearer {os.environ['APICVM_KEY']}"}

def resolve_ticker(query: str):
    return requests.get(
        f"{BASE}/v1/companies/resolve",
        headers=H,
        params={"query": query, "by": "ticker"},
    ).json()

def list_filings(ticker: str, type_: str, year: int):
    return requests.get(
        f"{BASE}/v1/documents",
        headers=H,
        params={"ticker": ticker, "type": type_, "year": year, "perPage": 20},
    ).json()["data"]

Register these with your AutoGen tool adapter (Python or .NET host).

Example session goal

Researcher: list FRE 2024 for VALE3 → cite first 3 document ids
Reviewer: confirm ids via GET /v1/documents/:id
curl -H "Authorization: Bearer $APICVM_KEY" \
  "$APICVM_URL/v1/documents?ticker=VALE3&type=FRE&year=2024&perPage=10"

Extraction

Page markdown extraction stays async (POST /v1/document-text-extractions + callback). Do not block an AutoGen turn waiting on a status URL that does not exist. Pattern: async callbacks guide.

Also see CrewAI and AI agents use case.

Current limitations

  • Not a replacement for quotes/news tools inside AutoGen
  • Rate limits per API key
  • Empty document lists ≠ "issuer never filed"

Next steps

Ready to integrate?

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