Auth method: API key via header X-API-Key (recommended) or api_key query param (GET-only fallback)
Header priority: If both are present, the header wins and the query param is ignored
Key lifecycle: Keys do not expire; they’re either valid or revoked
Scopes: Single scope (full read access for now)
Base rate limit: 100 requests/minute per API key
Pagination max: per_page up to 1000
Errors: JSON body with a stable shape (see below)
X-RateLimit-Limit — your minute-level quota
X-RateLimit-Remaining — requests left in the current window
X-RateLimit-Reset — UNIX timestamp (seconds) when the window resets
Retry-After — seconds to wait before retrying (present on 429)
Pagination model: page / per_page (offset).
Recommended per_page: start with 100–500 and adjust based on latency and your rate budget.
Large syncs: iterate pages rather than requesting max-size pages; it’s friendlier to rate limits and reduces retries on transient errors.
Client timeouts: choose a reasonable client timeout (e.g., 30–60s).
Parallelism: Not enforced by the API today; for stability, keep parallel requests proportional to your rate limit and back off on 429/5xx.
Content-Type: application/json
Typical HTTP statuses: 400–499 for client issues, 500–599 for server-side problems
The list of specific error codes (e.g., unauthorized, rate_limited, invalid_param, not_found) lives in Error Codes.
Keep keys secret: never embed in public frontends or repositories.
Use environment variables (e.g., FT_API_KEY) or your secrets manager.
Prefer the header over api_key query param.
Rotate on suspicion: if a key might be exposed, contact support to revoke and reissue immediately.
Least distribution: limit how many services/people have access to your key.
Log carefully: avoid printing full tokens to logs.
Attribution & lineage: when redistributing derived insights externally, cite the official sources (CVM, B3, IBGE, etc.) listed on each endpoint page.
No bulk re-hosting: don’t publicly re-host raw Fintatica API payloads at scale.
Respect rate limits: implement backoff and avoid automated retries that ignore headers.
Fair usage: avoid scraping behavior that attempts to circumvent limits or mimics dozens of clients.