Skip to main content
1

Get your API key

Sign up at app.vintl.io. Free tier: 500 requests/day, no credit card.Your key starts with vntl_live_ — store it in an environment variable.
export VINTL_API_KEY=vntl_live_sk_YOUR_KEY_HERE
2

Fetch some data

Pull the latest Consumer Price Index observations:
curl -H "X-API-Key: $VINTL_API_KEY" \
  "https://api.vintl.io/v1/series/CPIAUCSL/observations?limit=3"
Response
{
  "object": "observation_series",
  "request_id": "req_19d22fd0193a...",
  "status": "ok",
  "series": {
    "id": "CPIAUCSL",
    "title": "Consumer Price Index for All Urban Consumers",
    "frequency": "M"
  },
  "results": [
    { "date": "2025-02-01T00:00:00Z", "value": "320.012", "as_of_date": "2025-03-12T00:00:00Z" },
    { "date": "2025-01-01T00:00:00Z", "value": "319.086", "as_of_date": "2025-02-12T00:00:00Z" },
    { "date": "2024-12-01T00:00:00Z", "value": "317.898", "as_of_date": "2025-01-14T00:00:00Z" }
  ],
  "results_count": 3,
  "has_more": true,
  "next_cursor": "2024-11-01"
}
Values are strings ("320.012") for decimal precision. Every response includes has_more and next_cursor for pagination.
3

Try a point-in-time query

This is what makes Vintl different. Add ?as_of=2023-10-26 to see GDP as it was known the day the advance estimate dropped:
curl -H "X-API-Key: $VINTL_API_KEY" \
  "https://api.vintl.io/v1/series/GDPC1/observations?as_of=2023-10-26&limit=3"
Returns "22491.567" — the advance estimate. Today’s revised value is "22840.989". The point-in-time guide explains why this matters.

Where to go from here

Point-in-time queries

Deep dive into as_of — how it works, FRED comparison, revision tracking.

Authentication

Key format, error responses, best practices.

Treasury yields

Yield curves, spreads, and TIPS data.

Python guide

Full Python examples with pagination and point-in-time.
Last modified on March 29, 2026